@lumx/react 3.20.1-alpha.3 → 3.20.1-alpha.5

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 (230) hide show
  1. package/_internal/index.js.map +1 -1
  2. package/index.d.ts +34 -35
  3. package/index.js +215 -212
  4. package/index.js.map +1 -1
  5. package/package.json +12 -10
  6. package/src/components/alert-dialog/AlertDialog.stories.tsx +1 -1
  7. package/src/components/alert-dialog/AlertDialog.test.tsx +4 -3
  8. package/src/components/autocomplete/Autocomplete.stories.tsx +1 -1
  9. package/src/components/autocomplete/Autocomplete.test.tsx +5 -3
  10. package/src/components/autocomplete/Autocomplete.tsx +1 -1
  11. package/src/components/autocomplete/AutocompleteMultiple.stories.tsx +1 -1
  12. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +2 -0
  13. package/src/components/autocomplete/AutocompleteMultiple.tsx +1 -1
  14. package/src/components/avatar/Avatar.stories.tsx +2 -0
  15. package/src/components/avatar/Avatar.test.tsx +2 -0
  16. package/src/components/avatar/Avatar.tsx +1 -1
  17. package/src/components/badge/Badge.stories.tsx +1 -0
  18. package/src/components/badge/Badge.test.tsx +2 -0
  19. package/src/components/badge/Badge.tsx +1 -1
  20. package/src/components/badge/BadgeWrapper.stories.tsx +1 -0
  21. package/src/components/badge/BadgeWrapper.test.tsx +2 -0
  22. package/src/components/badge/BadgeWrapper.tsx +1 -1
  23. package/src/components/button/Button.stories.tsx +1 -0
  24. package/src/components/button/Button.test.tsx +11 -9
  25. package/src/components/button/Button.tsx +2 -0
  26. package/src/components/button/ButtonGroup.stories.tsx +2 -0
  27. package/src/components/button/ButtonGroup.test.tsx +2 -0
  28. package/src/components/button/ButtonGroup.tsx +2 -0
  29. package/src/components/button/ButtonRoot.tsx +37 -7
  30. package/src/components/button/IconButton.test.tsx +2 -0
  31. package/src/components/button/IconButton.tsx +2 -0
  32. package/src/components/checkbox/Checkbox.test.tsx +5 -3
  33. package/src/components/chip/Chip.stories.tsx +2 -0
  34. package/src/components/chip/Chip.test.tsx +19 -19
  35. package/src/components/chip/Chip.tsx +1 -1
  36. package/src/components/chip/ChipGroup.stories.tsx +2 -0
  37. package/src/components/chip/ChipGroup.test.tsx +2 -0
  38. package/src/components/chip/ChipGroup.tsx +1 -1
  39. package/src/components/comment-block/CommentBlock.stories.tsx +1 -0
  40. package/src/components/comment-block/CommentBlock.test.tsx +1 -0
  41. package/src/components/comment-block/CommentBlock.tsx +1 -1
  42. package/src/components/date-picker/DatePicker.test.tsx +5 -3
  43. package/src/components/date-picker/DatePicker.tsx +1 -1
  44. package/src/components/date-picker/DatePickerControlled.test.tsx +8 -6
  45. package/src/components/date-picker/DatePickerField.test.tsx +5 -3
  46. package/src/components/dialog/Dialog.test.tsx +6 -4
  47. package/src/components/divider/Divider.test.tsx +2 -0
  48. package/src/components/divider/Divider.tsx +2 -0
  49. package/src/components/drag-handle/DragHandle.test.tsx +2 -0
  50. package/src/components/drag-handle/DragHandle.tsx +2 -0
  51. package/src/components/dropdown/Dropdown.stories.tsx +1 -1
  52. package/src/components/dropdown/Dropdown.test.tsx +3 -3
  53. package/src/components/dropdown/Dropdown.tsx +1 -1
  54. package/src/components/expansion-panel/ExpansionPanel.test.tsx +7 -6
  55. package/src/components/flag/Flag.test.tsx +2 -0
  56. package/src/components/flag/Flag.tsx +2 -0
  57. package/src/components/flex-box/FlexBox.stories.tsx +2 -0
  58. package/src/components/flex-box/FlexBox.test.tsx +1 -0
  59. package/src/components/flex-box/FlexBox.tsx +1 -1
  60. package/src/components/generic-block/GenericBlock.test.tsx +1 -1
  61. package/src/components/grid/Grid.tsx +2 -0
  62. package/src/components/grid/GridItem.tsx +2 -0
  63. package/src/components/grid-column/GridColumn.stories.tsx +1 -0
  64. package/src/components/grid-column/GridColumn.test.jsx +2 -0
  65. package/src/components/grid-column/GridColumn.tsx +1 -1
  66. package/src/components/heading/Heading.stories.tsx +1 -0
  67. package/src/components/heading/Heading.test.tsx +2 -0
  68. package/src/components/heading/Heading.tsx +2 -0
  69. package/src/components/heading/HeadingLevelProvider.tsx +1 -1
  70. package/src/components/icon/Icon.stories.tsx +4 -30
  71. package/src/components/icon/Icon.test.tsx +4 -85
  72. package/src/components/icon/Icon.tsx +2 -0
  73. package/src/components/image-block/ImageBlock.stories.tsx +2 -0
  74. package/src/components/image-block/ImageBlock.test.tsx +1 -0
  75. package/src/components/image-block/ImageBlock.tsx +1 -1
  76. package/src/components/image-block/ImageCaption.tsx +1 -1
  77. package/src/components/image-lightbox/ImageLightbox.stories.tsx +1 -0
  78. package/src/components/image-lightbox/ImageLightbox.test.tsx +9 -11
  79. package/src/components/image-lightbox/types.ts +2 -0
  80. package/src/components/inline-list/InlineList.stories.tsx +1 -0
  81. package/src/components/inline-list/InlineList.test.tsx +2 -0
  82. package/src/components/inline-list/InlineList.tsx +1 -1
  83. package/src/components/input-helper/InputHelper.test.tsx +2 -0
  84. package/src/components/input-helper/InputHelper.tsx +1 -1
  85. package/src/components/input-label/InputLabel.stories.tsx +2 -0
  86. package/src/components/input-label/InputLabel.test.tsx +2 -0
  87. package/src/components/input-label/InputLabel.tsx +1 -1
  88. package/src/components/lightbox/Lightbox.test.tsx +2 -0
  89. package/src/components/lightbox/Lightbox.tsx +1 -1
  90. package/src/components/link/Link.stories.tsx +1 -0
  91. package/src/components/link/Link.test.tsx +13 -13
  92. package/src/components/link/Link.tsx +22 -9
  93. package/src/components/link-preview/LinkPreview.test.tsx +2 -0
  94. package/src/components/link-preview/LinkPreview.tsx +2 -0
  95. package/src/components/list/List.stories.tsx +1 -1
  96. package/src/components/list/List.test.tsx +2 -0
  97. package/src/components/list/List.tsx +1 -1
  98. package/src/components/list/ListDivider.test.tsx +2 -0
  99. package/src/components/list/ListDivider.tsx +2 -0
  100. package/src/components/list/ListItem.test.tsx +7 -5
  101. package/src/components/list/ListItem.tsx +1 -1
  102. package/src/components/list/ListSubheader.test.tsx +2 -0
  103. package/src/components/list/ListSubheader.tsx +1 -1
  104. package/src/components/message/Message.test.tsx +2 -1
  105. package/src/components/message/Message.tsx +1 -1
  106. package/src/components/mosaic/Mosaic.test.tsx +5 -3
  107. package/src/components/mosaic/Mosaic.tsx +1 -1
  108. package/src/components/navigation/Navigation.stories.tsx +2 -0
  109. package/src/components/navigation/Navigation.test.tsx +2 -0
  110. package/src/components/navigation/Navigation.tsx +2 -0
  111. package/src/components/navigation/NavigationItem.test.tsx +2 -0
  112. package/src/components/navigation/NavigationItem.tsx +11 -7
  113. package/src/components/navigation/NavigationSection.test.tsx +2 -0
  114. package/src/components/navigation/NavigationSection.tsx +4 -5
  115. package/src/components/notification/Notification.test.tsx +5 -4
  116. package/src/components/notification/Notification.tsx +1 -1
  117. package/src/components/popover/Popover.test.tsx +2 -0
  118. package/src/components/popover/Popover.tsx +1 -1
  119. package/src/components/popover/usePopoverStyle.tsx +1 -1
  120. package/src/components/popover-dialog/PopoverDialog.test.tsx +2 -1
  121. package/src/components/popover-dialog/PopoverDialog.tsx +2 -0
  122. package/src/components/post-block/PostBlock.test.tsx +2 -0
  123. package/src/components/post-block/PostBlock.tsx +1 -1
  124. package/src/components/progress/Progress.tsx +2 -0
  125. package/src/components/progress/ProgressCircular.stories.tsx +1 -0
  126. package/src/components/progress/ProgressCircular.test.tsx +2 -0
  127. package/src/components/progress/ProgressCircular.tsx +2 -0
  128. package/src/components/progress/ProgressLinear.test.tsx +2 -0
  129. package/src/components/progress/ProgressLinear.tsx +2 -0
  130. package/src/components/progress-tracker/ProgressTracker.stories.tsx +1 -1
  131. package/src/components/progress-tracker/ProgressTracker.test.tsx +2 -0
  132. package/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +2 -0
  133. package/src/components/progress-tracker/ProgressTrackerProvider.tsx +1 -1
  134. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +2 -0
  135. package/src/components/progress-tracker/ProgressTrackerStep.tsx +1 -1
  136. package/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +2 -0
  137. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +2 -0
  138. package/src/components/radio-button/RadioButton.test.tsx +5 -3
  139. package/src/components/radio-button/RadioButton.tsx +1 -1
  140. package/src/components/radio-button/RadioGroup.stories.tsx +1 -1
  141. package/src/components/radio-button/RadioGroup.test.tsx +2 -0
  142. package/src/components/radio-button/RadioGroup.tsx +1 -1
  143. package/src/components/select/Select.stories.tsx +1 -1
  144. package/src/components/select/Select.test.tsx +9 -8
  145. package/src/components/select/Select.tsx +1 -1
  146. package/src/components/select/SelectMultiple.stories.tsx +1 -1
  147. package/src/components/select/SelectMultiple.test.tsx +7 -5
  148. package/src/components/select/SelectMultiple.tsx +1 -1
  149. package/src/components/select/WithSelectContext.tsx +1 -1
  150. package/src/components/select/constants.ts +1 -1
  151. package/src/components/side-navigation/SideNavigation.test.tsx +2 -0
  152. package/src/components/side-navigation/SideNavigation.tsx +1 -1
  153. package/src/components/side-navigation/SideNavigationItem.test.tsx +4 -2
  154. package/src/components/side-navigation/SideNavigationItem.tsx +28 -23
  155. package/src/components/skeleton/SkeletonCircle.test.tsx +2 -0
  156. package/src/components/skeleton/SkeletonCircle.tsx +2 -0
  157. package/src/components/skeleton/SkeletonRectangle.test.tsx +2 -0
  158. package/src/components/skeleton/SkeletonRectangle.tsx +2 -0
  159. package/src/components/skeleton/SkeletonTypography.stories.tsx +2 -0
  160. package/src/components/skeleton/SkeletonTypography.test.tsx +2 -0
  161. package/src/components/skeleton/SkeletonTypography.tsx +1 -1
  162. package/src/components/slider/Slider.test.tsx +3 -1
  163. package/src/components/slider/Slider.tsx +1 -1
  164. package/src/components/slideshow/Slideshow.stories.tsx +1 -0
  165. package/src/components/slideshow/Slideshow.test.tsx +2 -0
  166. package/src/components/slideshow/SlideshowControls.stories.tsx +2 -0
  167. package/src/components/slideshow/SlideshowItem.tsx +2 -0
  168. package/src/components/slideshow/useSlideFocusManagement.tsx +1 -1
  169. package/src/components/switch/Switch.test.tsx +7 -5
  170. package/src/components/switch/Switch.tsx +1 -1
  171. package/src/components/table/Table.test.tsx +2 -0
  172. package/src/components/table/Table.tsx +2 -0
  173. package/src/components/table/TableBody.test.tsx +2 -0
  174. package/src/components/table/TableBody.tsx +2 -0
  175. package/src/components/table/TableCell.test.tsx +3 -1
  176. package/src/components/table/TableCell.tsx +2 -0
  177. package/src/components/table/TableHeader.test.tsx +2 -0
  178. package/src/components/table/TableHeader.tsx +2 -0
  179. package/src/components/table/TableRow.test.tsx +2 -0
  180. package/src/components/table/TableRow.tsx +2 -0
  181. package/src/components/tabs/Tab.test.tsx +2 -0
  182. package/src/components/tabs/Tab.tsx +1 -1
  183. package/src/components/tabs/TabList.test.tsx +2 -0
  184. package/src/components/tabs/TabPanel.test.tsx +2 -0
  185. package/src/components/tabs/TabPanel.tsx +2 -0
  186. package/src/components/tabs/TabProvider.test.tsx +2 -0
  187. package/src/components/tabs/TabProvider.tsx +1 -1
  188. package/src/components/tabs/Tabs.stories.tsx +1 -1
  189. package/src/components/text/Text.stories.tsx +1 -1
  190. package/src/components/text/Text.test.tsx +2 -0
  191. package/src/components/text/Text.tsx +2 -0
  192. package/src/components/text-field/TextField.test.tsx +10 -9
  193. package/src/components/text-field/TextField.tsx +1 -1
  194. package/src/components/thumbnail/Thumbnail.test.tsx +7 -29
  195. package/src/components/thumbnail/Thumbnail.tsx +11 -11
  196. package/src/components/toolbar/Toolbar.tsx +1 -1
  197. package/src/components/tooltip/Tooltip.stories.tsx +1 -2
  198. package/src/components/tooltip/Tooltip.test.tsx +8 -14
  199. package/src/components/uploader/Uploader.test.tsx +4 -2
  200. package/src/components/user-block/UserBlock.stories.tsx +2 -0
  201. package/src/components/user-block/UserBlock.test.tsx +3 -1
  202. package/src/hooks/useId.test.tsx +1 -0
  203. package/src/hooks/useInfiniteScroll.tsx +1 -1
  204. package/src/hooks/usePreviousValue.ts +1 -0
  205. package/src/stories/decorators/withChromaticForceScreenSize.tsx +1 -0
  206. package/src/stories/decorators/withNestedProps.tsx +1 -0
  207. package/src/stories/decorators/withThemedBackground.tsx +2 -0
  208. package/src/stories/decorators/withWrapper.tsx +2 -0
  209. package/src/stories/utils/CustomLink.tsx +1 -0
  210. package/src/testing/utils/ThemeSentinel.tsx +1 -0
  211. package/src/untypped-modules.d.ts +0 -4
  212. package/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +1 -1
  213. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +1 -1
  214. package/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +1 -1
  215. package/src/utils/Portal/Portal.test.tsx +1 -0
  216. package/src/utils/Portal/PortalProvider.stories.jsx +1 -0
  217. package/src/utils/Portal/PortalProvider.test.tsx +2 -1
  218. package/src/utils/date/getYearDisplayName.test.ts +1 -1
  219. package/src/utils/disabled/DisabledStateProvider.stories.tsx +2 -0
  220. package/src/utils/disabled/useDisableStateProps.test.tsx +2 -2
  221. package/src/utils/react/OnBeforeUnmount.tsx +1 -1
  222. package/src/utils/react/renderButtonOrLink.tsx +16 -0
  223. package/src/utils/react/skipRender.tsx +2 -2
  224. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +1 -1
  225. package/src/utils/type/HasPolymorphicAs.ts +2 -0
  226. package/src/utils/type/index.ts +0 -1
  227. package/utils/index.d.ts +6 -6
  228. package/src/utils/react/RawClickable.test.tsx +0 -153
  229. package/src/utils/react/RawClickable.tsx +0 -65
  230. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
package/index.js CHANGED
@@ -1173,54 +1173,25 @@ const IS_BROWSER = typeof navigator !== 'undefined' && !navigator.userAgent.incl
1173
1173
  */
1174
1174
  const VISUALLY_HIDDEN = 'visually-hidden';
1175
1175
 
1176
- /** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */
1177
- const forwardRefPolymorphic = React__default.forwardRef;
1178
-
1179
- const _excluded$1m = ["children", "onClick", "disabled", "isDisabled", "aria-disabled", "as"];
1176
+ const _excluded$1m = ["linkAs"];
1180
1177
  /**
1181
- * Render clickable element (link, button or custom element)
1182
- * (also does some basic disabled state handling)
1178
+ * Render link with default <a> HTML component or a custom one provided by `linkAs`.
1179
+ *
1180
+ * Can be used to inject the `Link` component from `react-router` and provide better a11y on LumX components.
1181
+ *
1182
+ * @param linkAs Custom link component.
1183
+ * @param children Link children.
1184
+ * @return A link.
1183
1185
  */
1184
- const RawClickable = forwardRefPolymorphic((props, ref) => {
1185
- const {
1186
- children,
1187
- onClick,
1188
- disabled,
1189
- isDisabled = disabled,
1190
- 'aria-disabled': ariaDisabled,
1191
- as
1192
- } = props,
1193
- forwardedProps = _objectWithoutProperties(props, _excluded$1m);
1194
- const isAnyDisabled = isDisabled || ariaDisabled === 'true' || ariaDisabled === true;
1195
- const Component = as;
1196
- let clickableProps;
1197
- if (Component === 'button') {
1198
- clickableProps = {
1199
- type: forwardedProps.type || 'button',
1200
- disabled: isDisabled
1201
- };
1202
- } else {
1203
- clickableProps = {
1204
- tabIndex: isDisabled ? '-1' : forwardedProps.tabIndex
1205
- };
1206
- }
1207
- return /*#__PURE__*/jsx(Component, _objectSpread2(_objectSpread2(_objectSpread2({
1208
- ref: ref,
1209
- "aria-disabled": isAnyDisabled || undefined
1210
- }, forwardedProps), clickableProps), {}, {
1211
- onClick: event => {
1212
- if (isAnyDisabled) {
1213
- event.stopPropagation();
1214
- event.preventDefault();
1215
- return;
1216
- }
1217
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
1218
- },
1219
- children: children
1220
- }));
1221
- });
1186
+ const renderLink = (_ref, ...children) => {
1187
+ let {
1188
+ linkAs
1189
+ } = _ref,
1190
+ forwardedProps = _objectWithoutProperties(_ref, _excluded$1m);
1191
+ return /*#__PURE__*/React__default.createElement(linkAs || 'a', forwardedProps, ...children);
1192
+ };
1222
1193
 
1223
- const _excluded$1l = ["aria-label", "children", "className", "color", "emphasis", "hasBackground", "isSelected", "isActive", "isFocused", "isHovered", "linkAs", "size", "theme", "variant", "fullWidth"];
1194
+ const _excluded$1l = ["aria-label", "children", "className", "color", "emphasis", "hasBackground", "href", "isSelected", "isActive", "isFocused", "isHovered", "linkAs", "name", "size", "target", "theme", "variant", "type", "fullWidth"];
1224
1195
  /**
1225
1196
  * Component display name.
1226
1197
  */
@@ -1277,14 +1248,18 @@ const ButtonRoot = forwardRef((props, ref) => {
1277
1248
  color,
1278
1249
  emphasis,
1279
1250
  hasBackground,
1251
+ href,
1280
1252
  isSelected,
1281
1253
  isActive,
1282
1254
  isFocused,
1283
1255
  isHovered,
1284
1256
  linkAs,
1257
+ name,
1285
1258
  size,
1259
+ target,
1286
1260
  theme,
1287
1261
  variant,
1262
+ type = 'button',
1288
1263
  fullWidth
1289
1264
  } = otherProps,
1290
1265
  forwardedProps = _objectWithoutProperties(otherProps, _excluded$1l);
@@ -1300,7 +1275,7 @@ const ButtonRoot = forwardRef((props, ref) => {
1300
1275
  color: adaptedColor,
1301
1276
  emphasis,
1302
1277
  isSelected,
1303
- isDisabled: props.isDisabled || props['aria-disabled'],
1278
+ isDisabled: isAnyDisabled,
1304
1279
  isActive,
1305
1280
  isFocused,
1306
1281
  isHovered,
@@ -1310,13 +1285,33 @@ const ButtonRoot = forwardRef((props, ref) => {
1310
1285
  variant,
1311
1286
  fullWidth
1312
1287
  }));
1313
- return /*#__PURE__*/jsx(RawClickable, _objectSpread2(_objectSpread2(_objectSpread2({
1314
- as: linkAs || (forwardedProps.href ? 'a' : 'button')
1315
- }, forwardedProps), disabledStateProps), {}, {
1288
+
1289
+ /**
1290
+ * If the linkAs prop is used, we use the linkAs component instead of a <button>.
1291
+ * If there is an href attribute, we display an <a> instead of a <button>.
1292
+ *
1293
+ * However, in any case, if the component is disabled, we returned a <button> since disabled is not compatible with <a>.
1294
+ */
1295
+ if ((linkAs || !isEmpty(props.href)) && !isAnyDisabled) {
1296
+ return renderLink(_objectSpread2(_objectSpread2({
1297
+ linkAs
1298
+ }, forwardedProps), {}, {
1299
+ 'aria-label': ariaLabel,
1300
+ href,
1301
+ target,
1302
+ className: buttonClassName,
1303
+ ref: ref
1304
+ }), children);
1305
+ }
1306
+ return /*#__PURE__*/jsx("button", _objectSpread2(_objectSpread2(_objectSpread2({}, forwardedProps), disabledStateProps), {}, {
1316
1307
  "aria-disabled": isAnyDisabled,
1317
1308
  "aria-label": ariaLabel,
1318
1309
  ref: ref,
1319
1310
  className: buttonClassName,
1311
+ name: name,
1312
+ type:
1313
+ // eslint-disable-next-line react/button-has-type
1314
+ type,
1320
1315
  children: children
1321
1316
  }));
1322
1317
  });
@@ -3631,25 +3626,7 @@ const useKeyboardListNavigation = (items, ref, onListItemSelected, onListItemNav
3631
3626
  };
3632
3627
  };
3633
3628
 
3634
- const _excluded$18 = ["linkAs"];
3635
- /**
3636
- * Render link with default <a> HTML component or a custom one provided by `linkAs`.
3637
- *
3638
- * Can be used to inject the `Link` component from `react-router` and provide better a11y on LumX components.
3639
- *
3640
- * @param linkAs Custom link component.
3641
- * @param children Link children.
3642
- * @return A link.
3643
- */
3644
- const renderLink = (_ref, ...children) => {
3645
- let {
3646
- linkAs
3647
- } = _ref,
3648
- forwardedProps = _objectWithoutProperties(_ref, _excluded$18);
3649
- return /*#__PURE__*/React__default.createElement(linkAs || 'a', forwardedProps, ...children);
3650
- };
3651
-
3652
- const _excluded$17 = ["after", "before", "children", "className", "isHighlighted", "isSelected", "linkAs", "linkProps", "linkRef", "onItemSelected", "size"];
3629
+ const _excluded$18 = ["after", "before", "children", "className", "isHighlighted", "isSelected", "linkAs", "linkProps", "linkRef", "onItemSelected", "size"];
3653
3630
  /**
3654
3631
  * Component display name.
3655
3632
  */
@@ -3704,7 +3681,7 @@ const ListItem = forwardRef((props, ref) => {
3704
3681
  onItemSelected,
3705
3682
  size = DEFAULT_PROPS$R.size
3706
3683
  } = otherProps,
3707
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$17);
3684
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$18);
3708
3685
  const role = linkAs || linkProps.href ? 'link' : 'button';
3709
3686
  const onKeyDown = useMemo(() => {
3710
3687
  if (onItemSelected && role === 'link') return onEnterPressed(onItemSelected);
@@ -4192,7 +4169,7 @@ const useInteractiveList = options => {
4192
4169
  }, [items, activeItemIndex, onListItemSelected]);
4193
4170
  };
4194
4171
 
4195
- const _excluded$16 = ["children", "className", "isClickable", "itemPadding", "onListItemSelected", "tabIndex"];
4172
+ const _excluded$17 = ["children", "className", "isClickable", "itemPadding", "onListItemSelected", "tabIndex"];
4196
4173
  /**
4197
4174
  * Component display name.
4198
4175
  */
@@ -4227,7 +4204,7 @@ const InternalList = forwardRef((props, ref) => {
4227
4204
  onListItemSelected,
4228
4205
  tabIndex = DEFAULT_PROPS$Q.tabIndex
4229
4206
  } = props,
4230
- forwardedProps = _objectWithoutProperties(props, _excluded$16);
4207
+ forwardedProps = _objectWithoutProperties(props, _excluded$17);
4231
4208
  const listElementRef = useRef(null);
4232
4209
  const {
4233
4210
  items,
@@ -4255,9 +4232,6 @@ const List = Object.assign(InternalList, {
4255
4232
  useKeyboardListNavigation
4256
4233
  });
4257
4234
 
4258
- /**
4259
- * HOC component wrapping a component to skip render if predicate return falsy
4260
- */
4261
4235
  const skipRender = (predicate, Component) => {
4262
4236
  const Wrapper = /*#__PURE__*/React__default.forwardRef((props, ref) => {
4263
4237
  if (!DOCUMENT) {
@@ -6670,7 +6644,7 @@ function usePopoverStyle({
6670
6644
  };
6671
6645
  }
6672
6646
 
6673
- 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"];
6647
+ 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"];
6674
6648
  /**
6675
6649
  * Component display name.
6676
6650
  */
@@ -6721,7 +6695,7 @@ const _InnerPopover = forwardRef((props, ref) => {
6721
6695
  theme,
6722
6696
  zIndex = DEFAULT_PROPS$P.zIndex
6723
6697
  } = props,
6724
- forwardedProps = _objectWithoutProperties(props, _excluded$15);
6698
+ forwardedProps = _objectWithoutProperties(props, _excluded$16);
6725
6699
  const popoverRef = useRef(null);
6726
6700
  const {
6727
6701
  styles,
@@ -6847,7 +6821,7 @@ const useInfiniteScroll = (ref, callback, callbackOnMount = false, scrollTrigger
6847
6821
  }, [callback, callbackOnMount]);
6848
6822
  };
6849
6823
 
6850
- const _excluded$14 = ["anchorRef", "children", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "fitWithinViewportHeight", "isOpen", "offset", "focusAnchorOnClose", "onClose", "onInfiniteScroll", "placement", "shouldFocusOnOpen", "zIndex"];
6824
+ const _excluded$15 = ["anchorRef", "children", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "fitWithinViewportHeight", "isOpen", "offset", "focusAnchorOnClose", "onClose", "onInfiniteScroll", "placement", "shouldFocusOnOpen", "zIndex"];
6851
6825
  /**
6852
6826
  * Component display name.
6853
6827
  */
@@ -6898,7 +6872,7 @@ const Dropdown = forwardRef((props, ref) => {
6898
6872
  shouldFocusOnOpen = DEFAULT_PROPS$O.shouldFocusOnOpen,
6899
6873
  zIndex
6900
6874
  } = props,
6901
- forwardedProps = _objectWithoutProperties(props, _excluded$14);
6875
+ forwardedProps = _objectWithoutProperties(props, _excluded$15);
6902
6876
  const innerRef = useRef(null);
6903
6877
  const listElement = useRef(null);
6904
6878
  useInfiniteScroll(innerRef, onInfiniteScroll);
@@ -6943,7 +6917,7 @@ Dropdown.displayName = COMPONENT_NAME$10;
6943
6917
  Dropdown.className = CLASSNAME$10;
6944
6918
  Dropdown.defaultProps = DEFAULT_PROPS$O;
6945
6919
 
6946
- const _excluded$13 = ["className", "closeMode", "children", "hasBackground", "hasHeaderDivider", "isOpen", "label", "onClose", "onOpen", "onToggleOpen", "theme", "toggleButtonProps"];
6920
+ const _excluded$14 = ["className", "closeMode", "children", "hasBackground", "hasHeaderDivider", "isOpen", "label", "onClose", "onOpen", "onToggleOpen", "theme", "toggleButtonProps"];
6947
6921
  /**
6948
6922
  * Component display name.
6949
6923
  */
@@ -6987,7 +6961,7 @@ const ExpansionPanel = forwardRef((props, ref) => {
6987
6961
  theme = defaultTheme,
6988
6962
  toggleButtonProps
6989
6963
  } = props,
6990
- forwardedProps = _objectWithoutProperties(props, _excluded$13);
6964
+ forwardedProps = _objectWithoutProperties(props, _excluded$14);
6991
6965
  const children = Children.toArray(anyChildren);
6992
6966
 
6993
6967
  // Partition children by types.
@@ -7093,7 +7067,7 @@ ExpansionPanel.displayName = COMPONENT_NAME$$;
7093
7067
  ExpansionPanel.className = CLASSNAME$$;
7094
7068
  ExpansionPanel.defaultProps = DEFAULT_PROPS$N;
7095
7069
 
7096
- const _excluded$12 = ["label", "icon", "color", "className", "theme", "truncate"];
7070
+ const _excluded$13 = ["label", "icon", "color", "className", "theme", "truncate"];
7097
7071
  const COMPONENT_NAME$_ = 'Flag';
7098
7072
  const CLASSNAME$_ = getRootClassName(COMPONENT_NAME$_);
7099
7073
  const DEFAULT_PROPS$M = {};
@@ -7115,7 +7089,7 @@ const Flag = forwardRef((props, ref) => {
7115
7089
  theme = defaultTheme,
7116
7090
  truncate
7117
7091
  } = props,
7118
- forwardedProps = _objectWithoutProperties(props, _excluded$12);
7092
+ forwardedProps = _objectWithoutProperties(props, _excluded$13);
7119
7093
  const flagColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);
7120
7094
  const isTruncated = !!truncate;
7121
7095
  return /*#__PURE__*/jsxs("div", _objectSpread2(_objectSpread2({}, forwardedProps), {}, {
@@ -7142,7 +7116,7 @@ Flag.displayName = COMPONENT_NAME$_;
7142
7116
  Flag.className = CLASSNAME$_;
7143
7117
  Flag.defaultProps = DEFAULT_PROPS$M;
7144
7118
 
7145
- const _excluded$11 = ["as", "children", "className", "fillSpace", "gap", "hAlign", "marginAuto", "noShrink", "orientation", "vAlign", "wrap"];
7119
+ const _excluded$12 = ["as", "children", "className", "fillSpace", "gap", "hAlign", "marginAuto", "noShrink", "orientation", "vAlign", "wrap"];
7146
7120
  /**
7147
7121
  * Component display name.
7148
7122
  */
@@ -7174,7 +7148,7 @@ const FlexBox = forwardRef((props, ref) => {
7174
7148
  vAlign,
7175
7149
  wrap
7176
7150
  } = props,
7177
- forwardedProps = _objectWithoutProperties(props, _excluded$11);
7151
+ forwardedProps = _objectWithoutProperties(props, _excluded$12);
7178
7152
  return /*#__PURE__*/jsx(Component, _objectSpread2(_objectSpread2({
7179
7153
  ref: ref
7180
7154
  }, forwardedProps), {}, {
@@ -7191,7 +7165,7 @@ const FlexBox = forwardRef((props, ref) => {
7191
7165
  FlexBox.displayName = COMPONENT_NAME$Z;
7192
7166
  FlexBox.className = CLASSNAME$Z;
7193
7167
 
7194
- const _excluded$10 = ["className", "figure", "figureProps", "children", "actions", "actionsProps", "gap", "orientation", "contentProps"];
7168
+ const _excluded$11 = ["className", "figure", "figureProps", "children", "actions", "actionsProps", "gap", "orientation", "contentProps"];
7195
7169
  /**
7196
7170
  * Component display name.
7197
7171
  */
@@ -7240,7 +7214,7 @@ const BaseGenericBlock = forwardRef((props, ref) => {
7240
7214
  orientation = DEFAULT_PROPS$L.orientation,
7241
7215
  contentProps
7242
7216
  } = props,
7243
- forwardedProps = _objectWithoutProperties(props, _excluded$10);
7217
+ forwardedProps = _objectWithoutProperties(props, _excluded$11);
7244
7218
  const sections = React__default.useMemo(() => {
7245
7219
  // Split children by section type
7246
7220
  const [[figureChild], [contentChild], [actionsChild], ...otherChildren] = partitionMulti(Children.toArray(children), [isFigure, isContent, isActions]);
@@ -7356,7 +7330,7 @@ function wrapChildrenIconWithSpaces(children) {
7356
7330
  });
7357
7331
  }
7358
7332
 
7359
- const _excluded$$ = ["as", "children", "className", "color", "colorVariant", "noWrap", "typography", "truncate", "whiteSpace", "style"];
7333
+ const _excluded$10 = ["as", "children", "className", "color", "colorVariant", "noWrap", "typography", "truncate", "whiteSpace", "style"];
7360
7334
  /**
7361
7335
  * Component display name.
7362
7336
  */
@@ -7392,7 +7366,7 @@ const Text = forwardRef((props, ref) => {
7392
7366
  whiteSpace,
7393
7367
  style
7394
7368
  } = props,
7395
- forwardedProps = _objectWithoutProperties(props, _excluded$$);
7369
+ forwardedProps = _objectWithoutProperties(props, _excluded$10);
7396
7370
  const typographyClass = typography && getTypographyClassName(typography);
7397
7371
 
7398
7372
  // Truncate mode
@@ -7463,7 +7437,7 @@ const useHeadingLevel = () => {
7463
7437
  };
7464
7438
  };
7465
7439
 
7466
- const _excluded$_ = ["children", "as", "className"];
7440
+ const _excluded$$ = ["children", "as", "className"];
7467
7441
  /**
7468
7442
  * Component display name.
7469
7443
  */
@@ -7490,7 +7464,7 @@ const Heading = forwardRef((props, ref) => {
7490
7464
  as,
7491
7465
  className
7492
7466
  } = props,
7493
- forwardedProps = _objectWithoutProperties(props, _excluded$_);
7467
+ forwardedProps = _objectWithoutProperties(props, _excluded$$);
7494
7468
  const {
7495
7469
  headingElement
7496
7470
  } = useHeadingLevel();
@@ -7531,7 +7505,7 @@ const HeadingLevelProvider = ({
7531
7505
  });
7532
7506
  };
7533
7507
 
7534
- const _excluded$Z = ["children", "className", "gutter", "hAlign", "orientation", "vAlign", "wrap"];
7508
+ const _excluded$_ = ["children", "className", "gutter", "hAlign", "orientation", "vAlign", "wrap"];
7535
7509
  /**
7536
7510
  * Component display name.
7537
7511
  */
@@ -7567,7 +7541,7 @@ const Grid = forwardRef((props, ref) => {
7567
7541
  vAlign,
7568
7542
  wrap = DEFAULT_PROPS$I.wrap
7569
7543
  } = props,
7570
- forwardedProps = _objectWithoutProperties(props, _excluded$Z);
7544
+ forwardedProps = _objectWithoutProperties(props, _excluded$_);
7571
7545
  return /*#__PURE__*/jsx("div", _objectSpread2(_objectSpread2({
7572
7546
  ref: ref
7573
7547
  }, forwardedProps), {}, {
@@ -7588,7 +7562,7 @@ Grid.displayName = COMPONENT_NAME$V;
7588
7562
  Grid.className = CLASSNAME$V;
7589
7563
  Grid.defaultProps = DEFAULT_PROPS$I;
7590
7564
 
7591
- const _excluded$Y = ["children", "className", "width", "align", "order"];
7565
+ const _excluded$Z = ["children", "className", "width", "align", "order"];
7592
7566
  /**
7593
7567
  * Component display name.
7594
7568
  */
@@ -7614,7 +7588,7 @@ const GridItem = forwardRef((props, ref) => {
7614
7588
  align,
7615
7589
  order
7616
7590
  } = props,
7617
- forwardedProps = _objectWithoutProperties(props, _excluded$Y);
7591
+ forwardedProps = _objectWithoutProperties(props, _excluded$Z);
7618
7592
  return /*#__PURE__*/jsx("div", _objectSpread2(_objectSpread2({
7619
7593
  ref: ref
7620
7594
  }, forwardedProps), {}, {
@@ -7630,7 +7604,7 @@ const GridItem = forwardRef((props, ref) => {
7630
7604
  GridItem.displayName = COMPONENT_NAME$U;
7631
7605
  GridItem.className = CLASSNAME$U;
7632
7606
 
7633
- const _excluded$X = ["as", "gap", "maxColumns", "itemMinWidth", "children", "className", "style"];
7607
+ const _excluded$Y = ["as", "gap", "maxColumns", "itemMinWidth", "children", "className", "style"];
7634
7608
  /**
7635
7609
  * Component display name.
7636
7610
  */
@@ -7665,7 +7639,7 @@ const GridColumn = forwardRef((props, ref) => {
7665
7639
  className,
7666
7640
  style = {}
7667
7641
  } = props,
7668
- forwardedProps = _objectWithoutProperties(props, _excluded$X);
7642
+ forwardedProps = _objectWithoutProperties(props, _excluded$Y);
7669
7643
  return /*#__PURE__*/jsx(Component, _objectSpread2(_objectSpread2({}, forwardedProps), {}, {
7670
7644
  ref: ref,
7671
7645
  className: classNames(className, CLASSNAME$T),
@@ -7681,7 +7655,7 @@ GridColumn.displayName = COMPONENT_NAME$T;
7681
7655
  GridColumn.className = CLASSNAME$T;
7682
7656
  GridColumn.defaultProps = DEFAULT_PROPS$H;
7683
7657
 
7684
- const _excluded$W = ["className", "color", "colorVariant", "hasShape", "icon", "size", "theme", "alt", "ref"];
7658
+ const _excluded$X = ["className", "color", "colorVariant", "hasShape", "icon", "size", "theme", "alt", "ref"];
7685
7659
  /**
7686
7660
  * Component display name.
7687
7661
  */
@@ -7716,7 +7690,7 @@ const Icon$1 = props => {
7716
7690
  alt,
7717
7691
  ref
7718
7692
  } = props,
7719
- forwardedProps = _objectWithoutProperties(props, _excluded$W);
7693
+ forwardedProps = _objectWithoutProperties(props, _excluded$X);
7720
7694
  const [color, colorVariant] = resolveColorWithVariants(propColor, propColorVariant);
7721
7695
 
7722
7696
  // Color
@@ -7858,7 +7832,7 @@ const ImageCaption = props => {
7858
7832
  });
7859
7833
  };
7860
7834
 
7861
- const _excluded$V = ["actions", "align", "alt", "captionPosition", "captionStyle", "className", "description", "descriptionProps", "fillHeight", "image", "size", "tags", "theme", "thumbnailProps", "title", "titleProps"];
7835
+ const _excluded$W = ["actions", "align", "alt", "captionPosition", "captionStyle", "className", "description", "descriptionProps", "fillHeight", "image", "size", "tags", "theme", "thumbnailProps", "title", "titleProps"];
7862
7836
  const ImageBlockCaptionPosition = {
7863
7837
  below: 'below',
7864
7838
  over: 'over'
@@ -7917,7 +7891,7 @@ const ImageBlock = forwardRef((props, ref) => {
7917
7891
  title,
7918
7892
  titleProps
7919
7893
  } = props,
7920
- forwardedProps = _objectWithoutProperties(props, _excluded$V);
7894
+ forwardedProps = _objectWithoutProperties(props, _excluded$W);
7921
7895
  return /*#__PURE__*/jsxs("figure", _objectSpread2(_objectSpread2({
7922
7896
  ref: ref
7923
7897
  }, forwardedProps), {}, {
@@ -8298,7 +8272,7 @@ const ImageSlide = /*#__PURE__*/React__default.memo(props => {
8298
8272
  });
8299
8273
  }, isEqual);
8300
8274
 
8301
- const _excluded$U = ["image", "imgRef"];
8275
+ const _excluded$V = ["image", "imgRef"];
8302
8276
  /** Internal image slideshow component for ImageLightbox */
8303
8277
  const ImageSlideshow = ({
8304
8278
  activeImageIndex,
@@ -8404,7 +8378,7 @@ const ImageSlideshow = ({
8404
8378
  image,
8405
8379
  imgRef
8406
8380
  } = _ref,
8407
- imageProps = _objectWithoutProperties(_ref, _excluded$U);
8381
+ imageProps = _objectWithoutProperties(_ref, _excluded$V);
8408
8382
  const isActive = index === activeIndex;
8409
8383
  return /*#__PURE__*/jsx(ImageSlide, {
8410
8384
  isActive: isActive,
@@ -8616,7 +8590,7 @@ function useImageLightbox(props) {
8616
8590
  };
8617
8591
  }
8618
8592
 
8619
- const _excluded$T = ["className", "isOpen", "closeButtonProps", "onClose", "parentElement", "activeImageIndex", "slideshowControlsProps", "slideGroupLabel", "images", "zoomOutButtonProps", "zoomInButtonProps", "activeImageRef"];
8593
+ const _excluded$U = ["className", "isOpen", "closeButtonProps", "onClose", "parentElement", "activeImageIndex", "slideshowControlsProps", "slideGroupLabel", "images", "zoomOutButtonProps", "zoomInButtonProps", "activeImageRef"];
8620
8594
  const Inner = forwardRef((props, ref) => {
8621
8595
  const {
8622
8596
  className,
@@ -8632,7 +8606,7 @@ const Inner = forwardRef((props, ref) => {
8632
8606
  zoomInButtonProps,
8633
8607
  activeImageRef: propImageRef
8634
8608
  } = props,
8635
- forwardedProps = _objectWithoutProperties(props, _excluded$T);
8609
+ forwardedProps = _objectWithoutProperties(props, _excluded$U);
8636
8610
  const currentPaginationItemRef = React__default.useRef(null);
8637
8611
  const footerRef = React__default.useRef(null);
8638
8612
  const imageRef = React__default.useRef(null);
@@ -8690,7 +8664,7 @@ const ImageLightbox = Object.assign(Inner, {
8690
8664
  useImageLightbox
8691
8665
  });
8692
8666
 
8693
- const _excluded$S = ["className", "color", "colorVariant", "typography", "children", "wrap"];
8667
+ const _excluded$T = ["className", "color", "colorVariant", "typography", "children", "wrap"];
8694
8668
  /**
8695
8669
  * Component display name.
8696
8670
  */
@@ -8722,7 +8696,7 @@ const InlineList = forwardRef((props, ref) => {
8722
8696
  children,
8723
8697
  wrap
8724
8698
  } = props,
8725
- forwardedProps = _objectWithoutProperties(props, _excluded$S);
8699
+ forwardedProps = _objectWithoutProperties(props, _excluded$T);
8726
8700
  const typographyClassName = typography && getTypographyClassName(typography);
8727
8701
  return (
8728
8702
  /*#__PURE__*/
@@ -8769,7 +8743,7 @@ const INPUT_HELPER_CONFIGURATION = {
8769
8743
  }
8770
8744
  };
8771
8745
 
8772
- const _excluded$R = ["children", "className", "kind", "theme"];
8746
+ const _excluded$S = ["children", "className", "kind", "theme"];
8773
8747
  /**
8774
8748
  * Component display name.
8775
8749
  */
@@ -8802,7 +8776,7 @@ const InputHelper = forwardRef((props, ref) => {
8802
8776
  kind = DEFAULT_PROPS$D.kind,
8803
8777
  theme = defaultTheme
8804
8778
  } = props,
8805
- forwardedProps = _objectWithoutProperties(props, _excluded$R);
8779
+ forwardedProps = _objectWithoutProperties(props, _excluded$S);
8806
8780
  const {
8807
8781
  color
8808
8782
  } = INPUT_HELPER_CONFIGURATION[kind] || {};
@@ -8821,7 +8795,7 @@ InputHelper.displayName = COMPONENT_NAME$O;
8821
8795
  InputHelper.className = CLASSNAME$O;
8822
8796
  InputHelper.defaultProps = DEFAULT_PROPS$D;
8823
8797
 
8824
- const _excluded$Q = ["children", "className", "htmlFor", "isRequired", "theme", "typography"];
8798
+ const _excluded$R = ["children", "className", "htmlFor", "isRequired", "theme", "typography"];
8825
8799
  /**
8826
8800
  * Component display name.
8827
8801
  */
@@ -8854,7 +8828,7 @@ const InputLabel = forwardRef((props, ref) => {
8854
8828
  theme = defaultTheme,
8855
8829
  typography
8856
8830
  } = props,
8857
- forwardedProps = _objectWithoutProperties(props, _excluded$Q);
8831
+ forwardedProps = _objectWithoutProperties(props, _excluded$R);
8858
8832
  const typographyClass = typography && getTypographyClassName(typography);
8859
8833
  return /*#__PURE__*/jsx("label", _objectSpread2(_objectSpread2({
8860
8834
  ref: ref
@@ -8873,7 +8847,7 @@ InputLabel.displayName = COMPONENT_NAME$N;
8873
8847
  InputLabel.className = CLASSNAME$N;
8874
8848
  InputLabel.defaultProps = DEFAULT_PROPS$C;
8875
8849
 
8876
- const _excluded$P = ["aria-labelledby", "ariaLabelledBy", "aria-label", "ariaLabel", "children", "className", "closeButtonProps", "isOpen", "onClose", "parentElement", "focusElement", "preventAutoClose", "theme", "zIndex"];
8850
+ const _excluded$Q = ["aria-labelledby", "ariaLabelledBy", "aria-label", "ariaLabel", "children", "className", "closeButtonProps", "isOpen", "onClose", "parentElement", "focusElement", "preventAutoClose", "theme", "zIndex"];
8877
8851
  /**
8878
8852
  * Component display name.
8879
8853
  */
@@ -8908,7 +8882,7 @@ const Lightbox = forwardRef((props, ref) => {
8908
8882
  theme,
8909
8883
  zIndex
8910
8884
  } = props,
8911
- forwardedProps = _objectWithoutProperties(props, _excluded$P);
8885
+ forwardedProps = _objectWithoutProperties(props, _excluded$Q);
8912
8886
  if (!DOCUMENT) {
8913
8887
  // Can't render in SSR.
8914
8888
  return null;
@@ -9008,7 +8982,7 @@ const Lightbox = forwardRef((props, ref) => {
9008
8982
  Lightbox.displayName = COMPONENT_NAME$M;
9009
8983
  Lightbox.className = CLASSNAME$M;
9010
8984
 
9011
- const _excluded$O = ["children", "className", "color", "colorVariant", "leftIcon", "rightIcon", "typography", "linkAs"];
8985
+ const _excluded$P = ["children", "className", "color", "colorVariant", "href", "leftIcon", "linkAs", "rightIcon", "target", "typography"];
9012
8986
  /**
9013
8987
  * Component display name.
9014
8988
  */
@@ -9028,6 +9002,7 @@ const CLASSNAME$L = getRootClassName(COMPONENT_NAME$L);
9028
9002
  */
9029
9003
  const Link = forwardRef((props, ref) => {
9030
9004
  const {
9005
+ isAnyDisabled,
9031
9006
  disabledStateProps,
9032
9007
  otherProps
9033
9008
  } = useDisableStateProps(props);
@@ -9036,17 +9011,28 @@ const Link = forwardRef((props, ref) => {
9036
9011
  className,
9037
9012
  color: propColor,
9038
9013
  colorVariant: propColorVariant,
9014
+ href,
9039
9015
  leftIcon,
9016
+ linkAs,
9040
9017
  rightIcon,
9041
- typography,
9042
- linkAs
9018
+ target,
9019
+ typography
9043
9020
  } = otherProps,
9044
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$O);
9021
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$P);
9045
9022
  const [color, colorVariant] = resolveColorWithVariants(propColor, propColorVariant);
9046
- return /*#__PURE__*/jsx(RawClickable, _objectSpread2(_objectSpread2(_objectSpread2({
9047
- ref: ref,
9048
- as: linkAs || (forwardedProps.href ? 'a' : 'button')
9049
- }, forwardedProps), disabledStateProps), {}, {
9023
+ const isLink = linkAs || href;
9024
+ const Component = isLink && !isAnyDisabled ? linkAs || 'a' : 'button';
9025
+ const baseProps = {};
9026
+ if (Component === 'button') {
9027
+ baseProps.type = 'button';
9028
+ Object.assign(baseProps, disabledStateProps);
9029
+ } else if (isLink) {
9030
+ baseProps.href = href;
9031
+ baseProps.target = target;
9032
+ }
9033
+ return /*#__PURE__*/jsx(Component, _objectSpread2(_objectSpread2(_objectSpread2({
9034
+ ref: ref
9035
+ }, forwardedProps), baseProps), {}, {
9050
9036
  className: classNames(className, handleBasicClasses({
9051
9037
  prefix: CLASSNAME$L,
9052
9038
  color,
@@ -9070,7 +9056,7 @@ const Link = forwardRef((props, ref) => {
9070
9056
  Link.displayName = COMPONENT_NAME$L;
9071
9057
  Link.className = CLASSNAME$L;
9072
9058
 
9073
- const _excluded$N = ["className", "description", "link", "linkAs", "linkProps", "size", "theme", "thumbnailProps", "title", "titleHeading"];
9059
+ const _excluded$O = ["className", "description", "link", "linkAs", "linkProps", "size", "theme", "thumbnailProps", "title", "titleHeading"];
9074
9060
  /**
9075
9061
  * Component display name.
9076
9062
  */
@@ -9110,7 +9096,7 @@ const LinkPreview = forwardRef((props, ref) => {
9110
9096
  title,
9111
9097
  titleHeading = DEFAULT_PROPS$B.titleHeading
9112
9098
  } = props,
9113
- forwardedProps = _objectWithoutProperties(props, _excluded$N);
9099
+ forwardedProps = _objectWithoutProperties(props, _excluded$O);
9114
9100
  // Use title heading as title wrapper (see DEFAULT_PROPS for the default value).
9115
9101
  const TitleHeading = titleHeading;
9116
9102
  return /*#__PURE__*/jsx("article", _objectSpread2(_objectSpread2({
@@ -9174,7 +9160,7 @@ LinkPreview.displayName = COMPONENT_NAME$K;
9174
9160
  LinkPreview.className = CLASSNAME$K;
9175
9161
  LinkPreview.defaultProps = DEFAULT_PROPS$B;
9176
9162
 
9177
- const _excluded$M = ["className"];
9163
+ const _excluded$N = ["className"];
9178
9164
  /**
9179
9165
  * Component display name.
9180
9166
  */
@@ -9196,7 +9182,7 @@ const ListDivider = forwardRef((props, ref) => {
9196
9182
  const {
9197
9183
  className
9198
9184
  } = props,
9199
- forwardedProps = _objectWithoutProperties(props, _excluded$M);
9185
+ forwardedProps = _objectWithoutProperties(props, _excluded$N);
9200
9186
  return /*#__PURE__*/jsx("li", _objectSpread2(_objectSpread2({
9201
9187
  ref: ref
9202
9188
  }, forwardedProps), {}, {
@@ -9206,7 +9192,7 @@ const ListDivider = forwardRef((props, ref) => {
9206
9192
  ListDivider.displayName = COMPONENT_NAME$J;
9207
9193
  ListDivider.className = CLASSNAME$J;
9208
9194
 
9209
- const _excluded$L = ["children", "className"];
9195
+ const _excluded$M = ["children", "className"];
9210
9196
  /**
9211
9197
  * Component display name.
9212
9198
  */
@@ -9229,7 +9215,7 @@ const ListSubheader = forwardRef((props, ref) => {
9229
9215
  children,
9230
9216
  className
9231
9217
  } = props,
9232
- forwardedProps = _objectWithoutProperties(props, _excluded$L);
9218
+ forwardedProps = _objectWithoutProperties(props, _excluded$M);
9233
9219
  return /*#__PURE__*/jsx("li", _objectSpread2(_objectSpread2({
9234
9220
  ref: ref
9235
9221
  }, forwardedProps), {}, {
@@ -9240,7 +9226,7 @@ const ListSubheader = forwardRef((props, ref) => {
9240
9226
  ListSubheader.displayName = COMPONENT_NAME$I;
9241
9227
  ListSubheader.className = CLASSNAME$I;
9242
9228
 
9243
- const _excluded$K = ["children", "className", "hasBackground", "kind", "icon", "closeButtonProps"];
9229
+ const _excluded$L = ["children", "className", "hasBackground", "kind", "icon", "closeButtonProps"];
9244
9230
  /**
9245
9231
  * Component display name.
9246
9232
  */
@@ -9289,7 +9275,7 @@ const Message = forwardRef((props, ref) => {
9289
9275
  icon: customIcon,
9290
9276
  closeButtonProps
9291
9277
  } = props,
9292
- forwardedProps = _objectWithoutProperties(props, _excluded$K);
9278
+ forwardedProps = _objectWithoutProperties(props, _excluded$L);
9293
9279
  const {
9294
9280
  color,
9295
9281
  icon
@@ -9327,7 +9313,7 @@ const Message = forwardRef((props, ref) => {
9327
9313
  Message.displayName = COMPONENT_NAME$H;
9328
9314
  Message.className = CLASSNAME$H;
9329
9315
 
9330
- const _excluded$J = ["className", "theme", "thumbnails", "onImageClick"],
9316
+ const _excluded$K = ["className", "theme", "thumbnails", "onImageClick"],
9331
9317
  _excluded2$2 = ["image", "onClick", "align"];
9332
9318
  /**
9333
9319
  * Component display name.
@@ -9359,7 +9345,7 @@ const Mosaic = forwardRef((props, ref) => {
9359
9345
  thumbnails,
9360
9346
  onImageClick
9361
9347
  } = props,
9362
- forwardedProps = _objectWithoutProperties(props, _excluded$J);
9348
+ forwardedProps = _objectWithoutProperties(props, _excluded$K);
9363
9349
  const handleImageClick = useMemo(() => {
9364
9350
  if (!onImageClick) return undefined;
9365
9351
  return (index, onClick) => event => {
@@ -9412,7 +9398,10 @@ Mosaic.displayName = COMPONENT_NAME$G;
9412
9398
  Mosaic.className = CLASSNAME$G;
9413
9399
  Mosaic.defaultProps = DEFAULT_PROPS$A;
9414
9400
 
9415
- const _excluded$I = ["className", "icon", "label", "isCurrentPage", "as"];
9401
+ /** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */
9402
+ const forwardRefPolymorphic = React__default.forwardRef;
9403
+
9404
+ const _excluded$J = ["className", "icon", "label", "isCurrentPage", "as"];
9416
9405
  /**
9417
9406
  * Component display name.
9418
9407
  */
@@ -9430,12 +9419,15 @@ const NavigationItem = Object.assign(forwardRefPolymorphic((props, ref) => {
9430
9419
  isCurrentPage,
9431
9420
  as: Element = 'a'
9432
9421
  } = props,
9433
- forwardedProps = _objectWithoutProperties(props, _excluded$I);
9422
+ forwardedProps = _objectWithoutProperties(props, _excluded$J);
9434
9423
  const theme = useTheme();
9435
9424
  const {
9436
9425
  tooltipLabel,
9437
9426
  labelRef
9438
9427
  } = useOverflowTooltipLabel(label);
9428
+ const buttonProps = Element === 'button' ? {
9429
+ type: 'button'
9430
+ } : {};
9439
9431
  return /*#__PURE__*/jsx("li", {
9440
9432
  className: classNames(className, handleBasicClasses({
9441
9433
  prefix: CLASSNAME$F,
@@ -9444,15 +9436,14 @@ const NavigationItem = Object.assign(forwardRefPolymorphic((props, ref) => {
9444
9436
  children: /*#__PURE__*/jsx(Tooltip, {
9445
9437
  label: tooltipLabel,
9446
9438
  placement: Placement.TOP,
9447
- children: /*#__PURE__*/jsxs(RawClickable, _objectSpread2(_objectSpread2({
9448
- as: Element,
9439
+ children: /*#__PURE__*/jsxs(Element, _objectSpread2(_objectSpread2(_objectSpread2({
9449
9440
  className: handleBasicClasses({
9450
9441
  prefix: `${CLASSNAME$F}__link`,
9451
9442
  isSelected: isCurrentPage
9452
9443
  }),
9453
9444
  ref: ref,
9454
9445
  "aria-current": isCurrentPage ? 'page' : undefined
9455
- }, forwardedProps), {}, {
9446
+ }, buttonProps), forwardedProps), {}, {
9456
9447
  children: [icon ? /*#__PURE__*/jsx(Icon, {
9457
9448
  className: `${CLASSNAME$F}__icon`,
9458
9449
  icon: icon,
@@ -9477,7 +9468,7 @@ const NavigationContext = /*#__PURE__*/createContext({
9477
9468
  orientation: Orientation.vertical
9478
9469
  });
9479
9470
 
9480
- const _excluded$H = ["children", "className", "label", "icon"];
9471
+ const _excluded$I = ["children", "className", "label", "icon"];
9481
9472
  /**
9482
9473
  * Component display name.
9483
9474
  */
@@ -9494,7 +9485,7 @@ const NavigationSection = forwardRef((props, ref) => {
9494
9485
  label,
9495
9486
  icon
9496
9487
  } = props,
9497
- forwardedProps = _objectWithoutProperties(props, _excluded$H);
9488
+ forwardedProps = _objectWithoutProperties(props, _excluded$I);
9498
9489
  const [isOpen, setIsOpen] = useState(false);
9499
9490
  const buttonRef = useRef(null);
9500
9491
  const sectionId = useId();
@@ -9509,9 +9500,7 @@ const NavigationSection = forwardRef((props, ref) => {
9509
9500
  theme
9510
9501
  })),
9511
9502
  ref: ref,
9512
- children: [/*#__PURE__*/jsxs(RawClickable, _objectSpread2(_objectSpread2({
9513
- as: "button"
9514
- }, forwardedProps), {}, {
9503
+ children: [/*#__PURE__*/jsxs("button", _objectSpread2(_objectSpread2({}, forwardedProps), {}, {
9515
9504
  "aria-controls": sectionId,
9516
9505
  "aria-expanded": isOpen,
9517
9506
  className: classNames(`${CLASSNAME$F}__link`),
@@ -9520,6 +9509,7 @@ const NavigationSection = forwardRef((props, ref) => {
9520
9509
  setIsOpen(!isOpen);
9521
9510
  event.stopPropagation();
9522
9511
  },
9512
+ type: "button",
9523
9513
  children: [icon ? /*#__PURE__*/jsx(Icon, {
9524
9514
  className: `${CLASSNAME$F}__icon`,
9525
9515
  icon: icon,
@@ -9567,7 +9557,7 @@ const NavigationSection = forwardRef((props, ref) => {
9567
9557
  NavigationSection.displayName = COMPONENT_NAME$E;
9568
9558
  NavigationSection.className = CLASSNAME$E;
9569
9559
 
9570
- const _excluded$G = ["children", "className", "theme", "orientation"];
9560
+ const _excluded$H = ["children", "className", "theme", "orientation"];
9571
9561
  /**
9572
9562
  * Component display name.
9573
9563
  */
@@ -9592,7 +9582,7 @@ const Navigation = forwardRef((props, ref) => {
9592
9582
  theme = defaultTheme,
9593
9583
  orientation = DEFAULT_PROPS$z.orientation
9594
9584
  } = props,
9595
- forwardedProps = _objectWithoutProperties(props, _excluded$G);
9585
+ forwardedProps = _objectWithoutProperties(props, _excluded$H);
9596
9586
  return /*#__PURE__*/jsx(ThemeProvider, {
9597
9587
  value: theme,
9598
9588
  children: /*#__PURE__*/jsx("nav", _objectSpread2(_objectSpread2({
@@ -9645,7 +9635,7 @@ const NOTIFICATION_CONFIGURATION = {
9645
9635
  }
9646
9636
  };
9647
9637
 
9648
- const _excluded$F = ["actionLabel", "className", "content", "isOpen", "onActionClick", "onClick", "theme", "type", "zIndex", "usePortal", "style"];
9638
+ const _excluded$G = ["actionLabel", "className", "content", "isOpen", "onActionClick", "onClick", "theme", "type", "zIndex", "usePortal", "style"];
9649
9639
  /**
9650
9640
  * Component display name.
9651
9641
  */
@@ -9687,7 +9677,7 @@ const Notification = forwardRef((props, ref) => {
9687
9677
  usePortal = DEFAULT_PROPS$y.usePortal,
9688
9678
  style
9689
9679
  } = props,
9690
- forwardedProps = _objectWithoutProperties(props, _excluded$F);
9680
+ forwardedProps = _objectWithoutProperties(props, _excluded$G);
9691
9681
  if (!DOCUMENT) {
9692
9682
  // Can't render in SSR.
9693
9683
  return null;
@@ -9751,7 +9741,7 @@ Notification.displayName = COMPONENT_NAME$C;
9751
9741
  Notification.className = CLASSNAME$C;
9752
9742
  Notification.defaultProps = DEFAULT_PROPS$y;
9753
9743
 
9754
- const _excluded$E = ["children", "isOpen", "focusElement", "aria-label", "label", "className"];
9744
+ const _excluded$F = ["children", "isOpen", "focusElement", "aria-label", "label", "className"];
9755
9745
  /**
9756
9746
  * Component display name.
9757
9747
  */
@@ -9783,7 +9773,7 @@ const PopoverDialog = forwardRef((props, ref) => {
9783
9773
  label = ariaLabel,
9784
9774
  className
9785
9775
  } = props,
9786
- forwardedProps = _objectWithoutProperties(props, _excluded$E);
9776
+ forwardedProps = _objectWithoutProperties(props, _excluded$F);
9787
9777
  return /*#__PURE__*/jsx(Popover, _objectSpread2(_objectSpread2({}, forwardedProps), {}, {
9788
9778
  ref: ref,
9789
9779
  className: classNames(className, CLASSNAME$B),
@@ -9809,7 +9799,7 @@ PopoverDialog.displayName = COMPONENT_NAME$B;
9809
9799
  PopoverDialog.className = CLASSNAME$B;
9810
9800
  PopoverDialog.defaultProps = DEFAULT_PROPS$x;
9811
9801
 
9812
- const _excluded$D = ["actions", "attachments", "author", "className", "meta", "onClick", "orientation", "tags", "text", "theme", "thumbnailProps", "title"];
9802
+ const _excluded$E = ["actions", "attachments", "author", "className", "meta", "onClick", "orientation", "tags", "text", "theme", "thumbnailProps", "title"];
9813
9803
  /**
9814
9804
  * Component display name.
9815
9805
  */
@@ -9850,7 +9840,7 @@ const PostBlock = forwardRef((props, ref) => {
9850
9840
  thumbnailProps,
9851
9841
  title
9852
9842
  } = props,
9853
- forwardedProps = _objectWithoutProperties(props, _excluded$D);
9843
+ forwardedProps = _objectWithoutProperties(props, _excluded$E);
9854
9844
  return /*#__PURE__*/jsxs("div", _objectSpread2(_objectSpread2({
9855
9845
  ref: ref,
9856
9846
  className: classNames(className, handleBasicClasses({
@@ -9907,7 +9897,7 @@ PostBlock.displayName = COMPONENT_NAME$A;
9907
9897
  PostBlock.className = CLASSNAME$A;
9908
9898
  PostBlock.defaultProps = DEFAULT_PROPS$w;
9909
9899
 
9910
- const _excluded$C = ["className", "theme"];
9900
+ const _excluded$D = ["className", "theme"];
9911
9901
  /**
9912
9902
  * Component display name.
9913
9903
  */
@@ -9936,7 +9926,7 @@ const ProgressLinear = forwardRef((props, ref) => {
9936
9926
  className,
9937
9927
  theme = defaultTheme
9938
9928
  } = props,
9939
- forwardedProps = _objectWithoutProperties(props, _excluded$C);
9929
+ forwardedProps = _objectWithoutProperties(props, _excluded$D);
9940
9930
  return /*#__PURE__*/jsxs("div", _objectSpread2(_objectSpread2({
9941
9931
  ref: ref
9942
9932
  }, forwardedProps), {}, {
@@ -9955,7 +9945,7 @@ ProgressLinear.displayName = COMPONENT_NAME$z;
9955
9945
  ProgressLinear.className = CLASSNAME$z;
9956
9946
  ProgressLinear.defaultProps = DEFAULT_PROPS$v;
9957
9947
 
9958
- const _excluded$B = ["className", "theme", "size", "display"];
9948
+ const _excluded$C = ["className", "theme", "size", "display"];
9959
9949
  /**
9960
9950
  * Component display name.
9961
9951
  */
@@ -9989,7 +9979,7 @@ const ProgressCircular = forwardRef((props, ref) => {
9989
9979
  size = DEFAULT_PROPS$u.size,
9990
9980
  display = DEFAULT_PROPS$u.display
9991
9981
  } = props,
9992
- forwardedProps = _objectWithoutProperties(props, _excluded$B);
9982
+ forwardedProps = _objectWithoutProperties(props, _excluded$C);
9993
9983
  const Element = display === 'block' ? 'div' : 'span';
9994
9984
  return /*#__PURE__*/jsxs(Element, _objectSpread2(_objectSpread2({
9995
9985
  ref: ref
@@ -10022,7 +10012,7 @@ ProgressCircular.displayName = COMPONENT_NAME$y;
10022
10012
  ProgressCircular.className = CLASSNAME$y;
10023
10013
  ProgressCircular.defaultProps = DEFAULT_PROPS$u;
10024
10014
 
10025
- const _excluded$A = ["className", "theme", "variant"];
10015
+ const _excluded$B = ["className", "theme", "variant"];
10026
10016
  const ProgressVariant = {
10027
10017
  linear: 'linear',
10028
10018
  circular: 'circular'
@@ -10064,7 +10054,7 @@ const Progress = forwardRef((props, ref) => {
10064
10054
  theme = defaultTheme,
10065
10055
  variant = DEFAULT_PROPS$t.variant
10066
10056
  } = props,
10067
- forwardedProps = _objectWithoutProperties(props, _excluded$A);
10057
+ forwardedProps = _objectWithoutProperties(props, _excluded$B);
10068
10058
  return /*#__PURE__*/jsxs("div", _objectSpread2(_objectSpread2({
10069
10059
  ref: ref
10070
10060
  }, forwardedProps), {}, {
@@ -10202,7 +10192,7 @@ const useTabProviderContextState = () => {
10202
10192
  return context === null || context === void 0 ? void 0 : context[0];
10203
10193
  };
10204
10194
 
10205
- const _excluded$z = ["children", "onChange"];
10195
+ const _excluded$A = ["children", "onChange"];
10206
10196
  const DEFAULT_PROPS$s = {
10207
10197
  isLazy: INIT_STATE.isLazy,
10208
10198
  shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus
@@ -10224,7 +10214,7 @@ const ProgressTrackerProvider = props => {
10224
10214
  children,
10225
10215
  onChange
10226
10216
  } = props,
10227
- propState = _objectWithoutProperties(props, _excluded$z);
10217
+ propState = _objectWithoutProperties(props, _excluded$A);
10228
10218
  const [state, dispatch] = useReducer(reducer, INIT_STATE);
10229
10219
 
10230
10220
  // On prop state change => dispatch update.
@@ -10328,7 +10318,7 @@ const useRovingTabIndex = ({
10328
10318
  [parentRef, ...extraDependencies]);
10329
10319
  };
10330
10320
 
10331
- const _excluded$y = ["aria-label", "children", "className"];
10321
+ const _excluded$z = ["aria-label", "children", "className"];
10332
10322
  /**
10333
10323
  * Component display name.
10334
10324
  */
@@ -10360,7 +10350,7 @@ const ProgressTracker = forwardRef((props, ref) => {
10360
10350
  children,
10361
10351
  className
10362
10352
  } = props,
10363
- forwardedProps = _objectWithoutProperties(props, _excluded$y);
10353
+ forwardedProps = _objectWithoutProperties(props, _excluded$z);
10364
10354
  const stepListRef = React__default.useRef(null);
10365
10355
  useRovingTabIndex({
10366
10356
  parentRef: stepListRef,
@@ -10401,7 +10391,7 @@ ProgressTracker.displayName = COMPONENT_NAME$w;
10401
10391
  ProgressTracker.className = CLASSNAME$w;
10402
10392
  ProgressTracker.defaultProps = DEFAULT_PROPS$r;
10403
10393
 
10404
- const _excluded$x = ["className", "hasError", "helper", "id", "isActive", "isComplete", "label", "onFocus", "onKeyPress", "tabIndex"];
10394
+ const _excluded$y = ["className", "hasError", "helper", "id", "isActive", "isComplete", "label", "onFocus", "onKeyPress", "tabIndex"];
10405
10395
  /**
10406
10396
  * Component display name.
10407
10397
  */
@@ -10443,7 +10433,7 @@ const ProgressTrackerStep = forwardRef((props, ref) => {
10443
10433
  onKeyPress,
10444
10434
  tabIndex = -1
10445
10435
  } = otherProps,
10446
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$x);
10436
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$y);
10447
10437
  const state = useTabProviderContext('tab', id);
10448
10438
  const isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
10449
10439
  const changeToCurrentTab = useCallback(() => {
@@ -10513,7 +10503,7 @@ ProgressTrackerStep.displayName = COMPONENT_NAME$v;
10513
10503
  ProgressTrackerStep.className = CLASSNAME$v;
10514
10504
  ProgressTrackerStep.defaultProps = DEFAULT_PROPS$q;
10515
10505
 
10516
- const _excluded$w = ["children", "id", "className", "isActive"];
10506
+ const _excluded$x = ["children", "id", "className", "isActive"];
10517
10507
  /**
10518
10508
  * Component display name.
10519
10509
  */
@@ -10545,7 +10535,7 @@ const ProgressTrackerStepPanel = forwardRef((props, ref) => {
10545
10535
  className,
10546
10536
  isActive: propIsActive
10547
10537
  } = props,
10548
- forwardedProps = _objectWithoutProperties(props, _excluded$w);
10538
+ forwardedProps = _objectWithoutProperties(props, _excluded$x);
10549
10539
  const state = useTabProviderContext('tabPanel', id);
10550
10540
  const isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
10551
10541
  return /*#__PURE__*/jsx("div", _objectSpread2(_objectSpread2({
@@ -10566,7 +10556,7 @@ ProgressTrackerStepPanel.displayName = COMPONENT_NAME$u;
10566
10556
  ProgressTrackerStepPanel.className = CLASSNAME$u;
10567
10557
  ProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS$p;
10568
10558
 
10569
- const _excluded$v = ["checked", "className", "helper", "id", "inputRef", "isChecked", "label", "name", "onChange", "theme", "value", "inputProps"];
10559
+ const _excluded$w = ["checked", "className", "helper", "id", "inputRef", "isChecked", "label", "name", "onChange", "theme", "value", "inputProps"];
10570
10560
  /**
10571
10561
  * Component display name.
10572
10562
  */
@@ -10610,7 +10600,7 @@ const RadioButton = forwardRef((props, ref) => {
10610
10600
  value,
10611
10601
  inputProps
10612
10602
  } = otherProps,
10613
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$v);
10603
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$w);
10614
10604
  const generatedInputId = useId();
10615
10605
  const inputId = id || generatedInputId;
10616
10606
  const handleChange = event => {
@@ -10670,7 +10660,7 @@ RadioButton.displayName = COMPONENT_NAME$t;
10670
10660
  RadioButton.className = CLASSNAME$t;
10671
10661
  RadioButton.defaultProps = DEFAULT_PROPS$o;
10672
10662
 
10673
- const _excluded$u = ["children", "className"];
10663
+ const _excluded$v = ["children", "className"];
10674
10664
  /**
10675
10665
  * Component display name.
10676
10666
  */
@@ -10693,7 +10683,7 @@ const RadioGroup = forwardRef((props, ref) => {
10693
10683
  children,
10694
10684
  className
10695
10685
  } = props,
10696
- forwardedProps = _objectWithoutProperties(props, _excluded$u);
10686
+ forwardedProps = _objectWithoutProperties(props, _excluded$v);
10697
10687
  return /*#__PURE__*/jsx("div", _objectSpread2(_objectSpread2({
10698
10688
  ref: ref
10699
10689
  }, forwardedProps), {}, {
@@ -10728,7 +10718,7 @@ function useListenFocus(ref) {
10728
10718
  return isFocus;
10729
10719
  }
10730
10720
 
10731
- 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"];
10721
+ 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"];
10732
10722
  /** The display name of the component. */
10733
10723
  const COMPONENT_NAME$r = 'Select';
10734
10724
 
@@ -10762,7 +10752,7 @@ const WithSelectContext = (SelectElement, props, ref) => {
10762
10752
  value,
10763
10753
  variant
10764
10754
  } = props,
10765
- forwardedProps = _objectWithoutProperties(props, _excluded$t);
10755
+ forwardedProps = _objectWithoutProperties(props, _excluded$u);
10766
10756
  const generatedSelectId = useId();
10767
10757
  const selectId = id || generatedSelectId;
10768
10758
  const anchorRef = useRef(null);
@@ -10849,7 +10839,7 @@ const SelectVariant = {
10849
10839
  chip: 'chip'
10850
10840
  };
10851
10841
 
10852
- const _excluded$s = ["anchorRef", "clearButtonProps", "handleKeyboardNav", "hasError", "hasInputClear", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10842
+ const _excluded$t = ["anchorRef", "clearButtonProps", "handleKeyboardNav", "hasError", "hasInputClear", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10853
10843
 
10854
10844
  /** The display name of the component. */
10855
10845
  const COMPONENT_NAME$q = 'Select';
@@ -10891,7 +10881,7 @@ const SelectField = props => {
10891
10881
  variant,
10892
10882
  selectElementRef
10893
10883
  } = props,
10894
- forwardedProps = _objectWithoutProperties(props, _excluded$s);
10884
+ forwardedProps = _objectWithoutProperties(props, _excluded$t);
10895
10885
  return /*#__PURE__*/jsxs(Fragment, {
10896
10886
  children: [variant === SelectVariant.input && /*#__PURE__*/jsxs(Fragment, {
10897
10887
  children: [label && /*#__PURE__*/jsx("div", {
@@ -10992,7 +10982,7 @@ Select.className = CLASSNAME$q;
10992
10982
  Select.defaultProps = DEFAULT_PROPS$n;
10993
10983
  Select.className = CLASSNAME$q;
10994
10984
 
10995
- const _excluded$r = ["anchorRef", "handleKeyboardNav", "hasError", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedChipRender", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10985
+ const _excluded$s = ["anchorRef", "handleKeyboardNav", "hasError", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedChipRender", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10996
10986
  /** The display name of the component. */
10997
10987
  const COMPONENT_NAME$p = 'Select';
10998
10988
 
@@ -11042,7 +11032,7 @@ const SelectMultipleField = props => {
11042
11032
  variant,
11043
11033
  selectElementRef
11044
11034
  } = props,
11045
- forwardedProps = _objectWithoutProperties(props, _excluded$r);
11035
+ forwardedProps = _objectWithoutProperties(props, _excluded$s);
11046
11036
  return /*#__PURE__*/jsxs(Fragment, {
11047
11037
  children: [variant === SelectVariant.input && /*#__PURE__*/jsxs(Fragment, {
11048
11038
  children: [label && /*#__PURE__*/jsx("div", {
@@ -11136,7 +11126,7 @@ SelectMultiple.displayName = COMPONENT_NAME$p;
11136
11126
  SelectMultiple.className = CLASSNAME$p;
11137
11127
  SelectMultiple.defaultProps = DEFAULT_PROPS$m;
11138
11128
 
11139
- const _excluded$q = ["children", "className", "theme"];
11129
+ const _excluded$r = ["children", "className", "theme"];
11140
11130
  /**
11141
11131
  * Component display name.
11142
11132
  */
@@ -11161,7 +11151,7 @@ const SideNavigation = forwardRef((props, ref) => {
11161
11151
  className,
11162
11152
  theme = defaultTheme
11163
11153
  } = props,
11164
- forwardedProps = _objectWithoutProperties(props, _excluded$q);
11154
+ forwardedProps = _objectWithoutProperties(props, _excluded$r);
11165
11155
  const content = Children.toArray(children).filter(isComponent(SideNavigationItem));
11166
11156
  return /*#__PURE__*/jsx("ul", _objectSpread2(_objectSpread2({
11167
11157
  ref: ref
@@ -11173,6 +11163,22 @@ const SideNavigation = forwardRef((props, ref) => {
11173
11163
  SideNavigation.displayName = COMPONENT_NAME$o;
11174
11164
  SideNavigation.className = CLASSNAME$o;
11175
11165
 
11166
+ const _excluded$q = ["linkAs", "href"];
11167
+ /**
11168
+ * Render <button> HTML component, fallbacks to `<a>` when a `href` is provided or a custom component with `linkAs`.
11169
+ */
11170
+ const renderButtonOrLink = (props, ...children) => {
11171
+ const {
11172
+ linkAs,
11173
+ href
11174
+ } = props,
11175
+ forwardedProps = _objectWithoutProperties(props, _excluded$q);
11176
+ if (linkAs || href) return renderLink(props, ...children);
11177
+ return /*#__PURE__*/React__default.createElement('button', _objectSpread2({
11178
+ type: 'button'
11179
+ }, forwardedProps), ...children);
11180
+ };
11181
+
11176
11182
  const _excluded$p = ["children", "className", "emphasis", "icon", "isOpen", "isSelected", "label", "linkAs", "linkProps", "onActionClick", "onClick", "toggleButtonProps", "closeMode"];
11177
11183
  /**
11178
11184
  * Component display name.
@@ -11238,18 +11244,18 @@ const SideNavigationItem = forwardRef((props, ref) => {
11238
11244
  })),
11239
11245
  children: [shouldSplitActions ? /*#__PURE__*/jsxs("div", {
11240
11246
  className: `${CLASSNAME$n}__wrapper`,
11241
- children: [/*#__PURE__*/jsxs(RawClickable, _objectSpread2(_objectSpread2({
11242
- as: linkAs || (linkProps !== null && linkProps !== void 0 && linkProps.href ? 'a' : 'button')
11247
+ children: [renderLink(_objectSpread2(_objectSpread2({
11248
+ linkAs
11243
11249
  }, linkProps), {}, {
11244
11250
  className: `${CLASSNAME$n}__link`,
11245
- onClick: onClick,
11246
- children: [icon && /*#__PURE__*/jsx(Icon, {
11247
- className: `${CLASSNAME$n}__icon`,
11248
- icon: icon,
11249
- size: Size.xs
11250
- }), /*#__PURE__*/jsx("span", {
11251
- children: label
11252
- })]
11251
+ onClick,
11252
+ tabIndex: 0
11253
+ }), icon && /*#__PURE__*/jsx(Icon, {
11254
+ className: `${CLASSNAME$n}__icon`,
11255
+ icon: icon,
11256
+ size: Size.xs
11257
+ }), /*#__PURE__*/jsx("span", {
11258
+ children: label
11253
11259
  })), /*#__PURE__*/jsx(IconButton, _objectSpread2(_objectSpread2({}, toggleButtonProps), {}, {
11254
11260
  className: `${CLASSNAME$n}__toggle`,
11255
11261
  icon: isOpen ? mdiChevronUp : mdiChevronDown,
@@ -11257,23 +11263,22 @@ const SideNavigationItem = forwardRef((props, ref) => {
11257
11263
  emphasis: Emphasis.low,
11258
11264
  onClick: onActionClick
11259
11265
  }, ariaProps))]
11260
- }) : /*#__PURE__*/jsxs(RawClickable, _objectSpread2(_objectSpread2(_objectSpread2({
11261
- as: linkAs || (linkProps !== null && linkProps !== void 0 && linkProps.href ? 'a' : 'button')
11266
+ }) : renderButtonOrLink(_objectSpread2(_objectSpread2({
11267
+ linkAs
11262
11268
  }, linkProps), {}, {
11263
11269
  className: `${CLASSNAME$n}__link`,
11264
- onClick: onClick
11265
- }, ariaProps), {}, {
11266
- children: [icon && /*#__PURE__*/jsx(Icon, {
11267
- className: `${CLASSNAME$n}__icon`,
11268
- icon: icon,
11269
- size: Size.xs
11270
- }), /*#__PURE__*/jsx("span", {
11271
- children: label
11272
- }), hasContent && /*#__PURE__*/jsx(Icon, {
11273
- className: `${CLASSNAME$n}__chevron`,
11274
- icon: isOpen ? mdiChevronUp : mdiChevronDown,
11275
- size: Size.xs
11276
- })]
11270
+ tabIndex: 0,
11271
+ onClick
11272
+ }, ariaProps), icon && /*#__PURE__*/jsx(Icon, {
11273
+ className: `${CLASSNAME$n}__icon`,
11274
+ icon: icon,
11275
+ size: Size.xs
11276
+ }), /*#__PURE__*/jsx("span", {
11277
+ children: label
11278
+ }), hasContent && /*#__PURE__*/jsx(Icon, {
11279
+ className: `${CLASSNAME$n}__chevron`,
11280
+ icon: isOpen ? mdiChevronUp : mdiChevronDown,
11281
+ size: Size.xs
11277
11282
  })), (closeMode === 'hide' || showChildren) && /*#__PURE__*/jsx("ul", {
11278
11283
  className: `${CLASSNAME$n}__children`,
11279
11284
  id: contentId,
@@ -13720,8 +13725,7 @@ const Thumbnail = forwardRef((props, ref) => {
13720
13725
  var _loadingPlaceholderIm;
13721
13726
  const {
13722
13727
  isAnyDisabled,
13723
- otherProps,
13724
- disabledStateProps
13728
+ otherProps
13725
13729
  } = useDisableStateProps(props);
13726
13730
  const defaultTheme = useTheme() || Theme.light;
13727
13731
  const {
@@ -13771,18 +13775,17 @@ const Thumbnail = forwardRef((props, ref) => {
13771
13775
  imageErrorStyle.display = 'none';
13772
13776
  }
13773
13777
  const isLink = Boolean((linkProps === null || linkProps === void 0 ? void 0 : linkProps.href) || linkAs);
13774
- const isClickable = !isAnyDisabled && Boolean(isLink || !!forwardedProps.onClick);
13775
- const Wrapper = isClickable ? RawClickable : 'div';
13778
+ const isButton = !!forwardedProps.onClick;
13779
+ const isClickable = !isAnyDisabled && (isButton || isLink);
13780
+ let Wrapper = 'div';
13776
13781
  const wrapperProps = _objectSpread2({}, forwardedProps);
13777
- if (isClickable) {
13778
- Object.assign(wrapperProps, {
13779
- as: linkAs || (linkProps !== null && linkProps !== void 0 && linkProps.href ? 'a' : 'button')
13780
- }, disabledStateProps);
13781
- if (isLink) {
13782
- Object.assign(wrapperProps, linkProps);
13783
- } else {
13784
- wrapperProps['aria-label'] = forwardedProps['aria-label'] || alt;
13785
- }
13782
+ if (!isAnyDisabled && isLink) {
13783
+ Wrapper = linkAs || 'a';
13784
+ Object.assign(wrapperProps, linkProps);
13785
+ } else if (!isAnyDisabled && isButton) {
13786
+ Wrapper = 'button';
13787
+ wrapperProps.type = forwardedProps.type || 'button';
13788
+ wrapperProps['aria-label'] = forwardedProps['aria-label'] || alt;
13786
13789
  }
13787
13790
 
13788
13791
  // If we have a loading placeholder image that is really loaded (complete)