@carbon/react 1.78.1 → 1.78.2

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 (217) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +764 -764
  2. package/es/components/Accordion/AccordionItem.js +2 -2
  3. package/es/components/Button/Button.d.ts +3 -2
  4. package/es/components/Button/Button.js +2 -1
  5. package/es/components/Button/ButtonBase.js +1 -1
  6. package/es/components/ChatButton/ChatButton.d.ts +3 -2
  7. package/es/components/ChatButton/ChatButton.js +2 -1
  8. package/es/components/ComboBox/ComboBox.js +24 -34
  9. package/es/components/ComposedModal/ComposedModal.js +51 -65
  10. package/es/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +2 -2
  11. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -1
  12. package/es/components/ContentSwitcher/ContentSwitcher.js +3 -3
  13. package/es/components/DataTable/TableBatchAction.d.ts +3 -3
  14. package/es/components/DataTable/TableBatchAction.js +1 -1
  15. package/es/components/DataTable/TableContainer.d.ts +1 -1
  16. package/es/components/DataTable/TableContainer.js +3 -3
  17. package/es/components/DataTable/TableExpandHeader.d.ts +5 -6
  18. package/es/components/DataTable/TableToolbarMenu.d.ts +2 -2
  19. package/es/components/DataTable/TableToolbarMenu.js +1 -1
  20. package/es/components/DatePicker/DatePicker.js +2 -2
  21. package/es/components/DatePicker/plugins/fixEventsPlugin.js +1 -1
  22. package/es/components/Dialog/index.d.ts +4 -42
  23. package/es/components/ExpandableSearch/ExpandableSearch.js +2 -2
  24. package/es/components/FeatureFlags/index.d.ts +1 -3
  25. package/es/components/FeatureFlags/index.js +0 -3
  26. package/es/components/FileUploader/FileUploader.d.ts +1 -1
  27. package/es/components/FileUploader/FileUploader.js +2 -2
  28. package/es/components/FileUploader/FileUploaderButton.js +2 -2
  29. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
  30. package/es/components/FileUploader/FileUploaderDropContainer.js +4 -6
  31. package/es/components/FileUploader/FileUploaderItem.d.ts +1 -1
  32. package/es/components/FileUploader/FileUploaderItem.js +2 -2
  33. package/es/components/Grid/CSSGrid.js +14 -18
  34. package/es/components/Grid/FlexGrid.js +6 -7
  35. package/es/components/Grid/GridTypes.d.ts +3 -5
  36. package/es/components/IconButton/index.js +3 -3
  37. package/es/components/Layer/index.d.ts +6 -4
  38. package/es/components/Layer/index.js +6 -5
  39. package/es/components/Link/Link.d.ts +3 -2
  40. package/es/components/Link/Link.js +2 -1
  41. package/es/components/ListBox/ListBoxMenuItem.d.ts +3 -3
  42. package/es/components/ListBox/ListBoxMenuItem.js +15 -37
  43. package/es/components/Menu/Menu.js +2 -2
  44. package/es/components/Menu/MenuItem.d.ts +2 -2
  45. package/es/components/Menu/MenuItem.js +3 -3
  46. package/es/components/Modal/Modal.js +49 -121
  47. package/es/components/Modal/next/index.d.ts +171 -0
  48. package/es/components/ModalWrapper/ModalWrapper.js +1 -1
  49. package/es/components/MultiSelect/FilterableMultiSelect.js +3 -3
  50. package/es/components/MultiSelect/MultiSelect.js +2 -2
  51. package/es/components/Notification/Notification.d.ts +13 -5
  52. package/es/components/Notification/Notification.js +4 -3
  53. package/es/components/OverflowMenu/OverflowMenu.d.ts +8 -4
  54. package/es/components/OverflowMenu/OverflowMenu.js +3 -3
  55. package/es/components/OverflowMenu/next/index.d.ts +2 -2
  56. package/es/components/OverflowMenu/next/index.js +1 -1
  57. package/es/components/OverflowMenuItem/OverflowMenuItem.js +2 -2
  58. package/es/components/ProgressIndicator/ProgressIndicator.js +2 -2
  59. package/es/components/RadioTile/RadioTile.js +2 -2
  60. package/es/components/Search/Search.d.ts +3 -2
  61. package/es/components/Search/Search.js +6 -4
  62. package/es/components/Slider/Slider.d.ts +15 -16
  63. package/es/components/Slider/Slider.js +22 -22
  64. package/es/components/Tabs/Tabs.d.ts +6 -3
  65. package/es/components/Tabs/Tabs.js +9 -8
  66. package/es/components/Tag/DismissibleTag.d.ts +5 -3
  67. package/es/components/Tag/DismissibleTag.js +2 -1
  68. package/es/components/Tag/OperationalTag.d.ts +3 -2
  69. package/es/components/Tag/OperationalTag.js +2 -1
  70. package/es/components/Tag/SelectableTag.d.ts +5 -3
  71. package/es/components/Tag/SelectableTag.js +2 -1
  72. package/es/components/Tag/Tag.d.ts +3 -2
  73. package/es/components/Tag/Tag.js +2 -1
  74. package/es/components/Tile/Tile.d.ts +5 -3
  75. package/es/components/Tile/Tile.js +6 -8
  76. package/es/components/Toggletip/index.js +2 -2
  77. package/es/components/Tooltip/DefinitionTooltip.js +2 -2
  78. package/es/components/Tooltip/Tooltip.d.ts +1 -1
  79. package/es/components/Tooltip/Tooltip.js +2 -2
  80. package/es/components/TreeView/TreeNode.d.ts +5 -3
  81. package/es/components/TreeView/TreeNode.js +4 -3
  82. package/es/components/TreeView/TreeView.js +2 -2
  83. package/es/components/UIShell/HeaderContainer.js +2 -2
  84. package/es/components/UIShell/HeaderMenu.js +2 -2
  85. package/es/components/UIShell/HeaderPanel.js +2 -2
  86. package/es/components/UIShell/SideNav.d.ts +1 -1
  87. package/es/components/UIShell/SideNav.js +2 -2
  88. package/es/components/UIShell/SideNavHeader.d.ts +3 -2
  89. package/es/components/UIShell/SideNavHeader.js +2 -1
  90. package/es/components/UIShell/SideNavLink.d.ts +2 -2
  91. package/es/components/UIShell/SideNavLink.js +1 -1
  92. package/es/components/UIShell/SideNavMenu.d.ts +2 -2
  93. package/es/components/UIShell/SideNavMenu.js +3 -3
  94. package/es/components/UIShell/SwitcherItem.js +2 -2
  95. package/es/internal/FloatingMenu.js +4 -4
  96. package/es/internal/OptimizedResize.js +24 -21
  97. package/es/internal/focus/index.js +15 -0
  98. package/es/internal/keyboard/keys.js +2 -2
  99. package/es/internal/keyboard/match.js +41 -17
  100. package/es/internal/keyboard/navigation.js +27 -15
  101. package/es/internal/useMergedRefs.js +0 -3
  102. package/lib/components/Accordion/AccordionItem.js +2 -2
  103. package/lib/components/Button/Button.d.ts +3 -2
  104. package/lib/components/Button/Button.js +2 -1
  105. package/lib/components/Button/ButtonBase.js +1 -1
  106. package/lib/components/ChatButton/ChatButton.d.ts +3 -2
  107. package/lib/components/ChatButton/ChatButton.js +2 -1
  108. package/lib/components/ComboBox/ComboBox.js +24 -34
  109. package/lib/components/ComposedModal/ComposedModal.js +50 -64
  110. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +2 -2
  111. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -1
  112. package/lib/components/ContentSwitcher/ContentSwitcher.js +3 -3
  113. package/lib/components/DataTable/TableBatchAction.d.ts +3 -3
  114. package/lib/components/DataTable/TableBatchAction.js +1 -1
  115. package/lib/components/DataTable/TableContainer.d.ts +1 -1
  116. package/lib/components/DataTable/TableContainer.js +3 -3
  117. package/lib/components/DataTable/TableExpandHeader.d.ts +5 -6
  118. package/lib/components/DataTable/TableToolbarMenu.d.ts +2 -2
  119. package/lib/components/DataTable/TableToolbarMenu.js +1 -1
  120. package/lib/components/DatePicker/DatePicker.js +2 -2
  121. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +1 -1
  122. package/lib/components/Dialog/index.d.ts +4 -42
  123. package/lib/components/ExpandableSearch/ExpandableSearch.js +2 -2
  124. package/lib/components/FeatureFlags/index.d.ts +1 -3
  125. package/lib/components/FeatureFlags/index.js +0 -3
  126. package/lib/components/FileUploader/FileUploader.d.ts +1 -1
  127. package/lib/components/FileUploader/FileUploader.js +2 -2
  128. package/lib/components/FileUploader/FileUploaderButton.js +2 -2
  129. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
  130. package/lib/components/FileUploader/FileUploaderDropContainer.js +4 -6
  131. package/lib/components/FileUploader/FileUploaderItem.d.ts +1 -1
  132. package/lib/components/FileUploader/FileUploaderItem.js +2 -2
  133. package/lib/components/Grid/CSSGrid.js +14 -18
  134. package/lib/components/Grid/FlexGrid.js +6 -7
  135. package/lib/components/Grid/GridTypes.d.ts +3 -5
  136. package/lib/components/IconButton/index.js +3 -3
  137. package/lib/components/Layer/index.d.ts +6 -4
  138. package/lib/components/Layer/index.js +6 -5
  139. package/lib/components/Link/Link.d.ts +3 -2
  140. package/lib/components/Link/Link.js +2 -1
  141. package/lib/components/ListBox/ListBoxMenuItem.d.ts +3 -3
  142. package/lib/components/ListBox/ListBoxMenuItem.js +14 -36
  143. package/lib/components/Menu/Menu.js +2 -2
  144. package/lib/components/Menu/MenuItem.d.ts +2 -2
  145. package/lib/components/Menu/MenuItem.js +3 -3
  146. package/lib/components/Modal/Modal.js +51 -123
  147. package/lib/components/Modal/next/index.d.ts +171 -0
  148. package/lib/components/ModalWrapper/ModalWrapper.js +1 -1
  149. package/lib/components/MultiSelect/FilterableMultiSelect.js +3 -3
  150. package/lib/components/MultiSelect/MultiSelect.js +2 -2
  151. package/lib/components/Notification/Notification.d.ts +13 -5
  152. package/lib/components/Notification/Notification.js +4 -3
  153. package/lib/components/OverflowMenu/OverflowMenu.d.ts +8 -4
  154. package/lib/components/OverflowMenu/OverflowMenu.js +3 -3
  155. package/lib/components/OverflowMenu/next/index.d.ts +2 -2
  156. package/lib/components/OverflowMenu/next/index.js +1 -1
  157. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +2 -2
  158. package/lib/components/ProgressIndicator/ProgressIndicator.js +2 -2
  159. package/lib/components/RadioTile/RadioTile.js +2 -2
  160. package/lib/components/Search/Search.d.ts +3 -2
  161. package/lib/components/Search/Search.js +6 -4
  162. package/lib/components/Slider/Slider.d.ts +15 -16
  163. package/lib/components/Slider/Slider.js +22 -22
  164. package/lib/components/Tabs/Tabs.d.ts +6 -3
  165. package/lib/components/Tabs/Tabs.js +9 -8
  166. package/lib/components/Tag/DismissibleTag.d.ts +5 -3
  167. package/lib/components/Tag/DismissibleTag.js +2 -1
  168. package/lib/components/Tag/OperationalTag.d.ts +3 -2
  169. package/lib/components/Tag/OperationalTag.js +2 -1
  170. package/lib/components/Tag/SelectableTag.d.ts +5 -3
  171. package/lib/components/Tag/SelectableTag.js +2 -1
  172. package/lib/components/Tag/Tag.d.ts +3 -2
  173. package/lib/components/Tag/Tag.js +2 -1
  174. package/lib/components/Tile/Tile.d.ts +5 -3
  175. package/lib/components/Tile/Tile.js +6 -8
  176. package/lib/components/Toggletip/index.js +2 -2
  177. package/lib/components/Tooltip/DefinitionTooltip.js +2 -2
  178. package/lib/components/Tooltip/Tooltip.d.ts +1 -1
  179. package/lib/components/Tooltip/Tooltip.js +2 -2
  180. package/lib/components/TreeView/TreeNode.d.ts +5 -3
  181. package/lib/components/TreeView/TreeNode.js +4 -3
  182. package/lib/components/TreeView/TreeView.js +2 -2
  183. package/lib/components/UIShell/HeaderContainer.js +2 -2
  184. package/lib/components/UIShell/HeaderMenu.js +2 -2
  185. package/lib/components/UIShell/HeaderPanel.js +2 -2
  186. package/lib/components/UIShell/SideNav.d.ts +1 -1
  187. package/lib/components/UIShell/SideNav.js +2 -2
  188. package/lib/components/UIShell/SideNavHeader.d.ts +3 -2
  189. package/lib/components/UIShell/SideNavHeader.js +2 -1
  190. package/lib/components/UIShell/SideNavLink.d.ts +2 -2
  191. package/lib/components/UIShell/SideNavLink.js +1 -1
  192. package/lib/components/UIShell/SideNavMenu.d.ts +2 -2
  193. package/lib/components/UIShell/SideNavMenu.js +3 -3
  194. package/lib/components/UIShell/SwitcherItem.js +2 -2
  195. package/lib/internal/FloatingMenu.js +5 -5
  196. package/lib/internal/OptimizedResize.js +24 -21
  197. package/lib/internal/focus/index.js +19 -0
  198. package/lib/internal/keyboard/keys.js +2 -2
  199. package/lib/internal/keyboard/match.js +41 -17
  200. package/lib/internal/keyboard/navigation.js +27 -15
  201. package/lib/internal/useMergedRefs.js +0 -3
  202. package/package.json +6 -6
  203. package/telemetry.yml +0 -1
  204. package/es/components/Dialog/index.js +0 -177
  205. package/es/internal/OptimizedResize.d.ts +0 -18
  206. package/es/internal/keyboard/index.d.ts +0 -9
  207. package/es/internal/keyboard/keys.d.ts +0 -23
  208. package/es/internal/keyboard/match.d.ts +0 -26
  209. package/es/internal/keyboard/navigation.d.ts +0 -37
  210. package/lib/components/Dialog/index.js +0 -190
  211. package/lib/internal/OptimizedResize.d.ts +0 -18
  212. package/lib/internal/keyboard/index.d.ts +0 -9
  213. package/lib/internal/keyboard/keys.d.ts +0 -23
  214. package/lib/internal/keyboard/match.d.ts +0 -26
  215. package/lib/internal/keyboard/navigation.d.ts +0 -37
  216. package/scss/components/dialog/_dialog.scss +0 -9
  217. package/scss/components/dialog/_index.scss +0 -9
@@ -22,10 +22,10 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
22
22
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
24
 
25
- const CSSGrid = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
25
+ function CSSGrid(_ref) {
26
26
  let {
27
27
  align,
28
- as,
28
+ as: BaseComponent = 'div',
29
29
  children,
30
30
  className: customClassName,
31
31
  condensed = false,
@@ -48,8 +48,7 @@ const CSSGrid = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =>
48
48
  mode: "css-grid",
49
49
  subgrid: true
50
50
  }, /*#__PURE__*/React__default["default"].createElement(Subgrid, _rollupPluginBabelHelpers["extends"]({
51
- ref: ref,
52
- as: as,
51
+ as: BaseComponent,
53
52
  className: customClassName,
54
53
  mode: mode
55
54
  }, rest), children));
@@ -64,24 +63,23 @@ const CSSGrid = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =>
64
63
  });
65
64
 
66
65
  // cast as any to let TypeScript allow passing in attributes to base component
67
- const BaseComponent = as || 'div';
66
+ const BaseComponentAsAny = BaseComponent;
68
67
  return /*#__PURE__*/React__default["default"].createElement(GridContext.GridSettings, {
69
68
  mode: "css-grid",
70
69
  subgrid: true
71
- }, /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({
72
- className: className,
73
- ref: ref
70
+ }, /*#__PURE__*/React__default["default"].createElement(BaseComponentAsAny, _rollupPluginBabelHelpers["extends"]({
71
+ className: className
74
72
  }, rest), children));
75
- });
73
+ }
76
74
  CSSGrid.propTypes = {
77
- /**
78
- * Provide a custom element to render instead of the default <div>
79
- */
80
- as: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].elementType]),
81
75
  /**
82
76
  * Specify grid alignment. Default is center
83
77
  */
84
78
  align: PropTypes__default["default"].oneOf(['start', 'center', 'end']),
79
+ /**
80
+ * Provide a custom element to render instead of the default <div>
81
+ */
82
+ as: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].elementType]),
85
83
  /**
86
84
  * Pass in content that will be rendered within the `Grid`
87
85
  */
@@ -105,9 +103,9 @@ CSSGrid.propTypes = {
105
103
  */
106
104
  narrow: PropTypes__default["default"].bool
107
105
  };
108
- const Subgrid = /*#__PURE__*/React__default["default"].forwardRef((_ref2, ref) => {
106
+ const Subgrid = _ref2 => {
109
107
  let {
110
- as,
108
+ as: BaseComponent = 'div',
111
109
  className: customClassName,
112
110
  children,
113
111
  mode,
@@ -120,12 +118,10 @@ const Subgrid = /*#__PURE__*/React__default["default"].forwardRef((_ref2, ref) =
120
118
  [`${prefix}--subgrid--narrow`]: mode === 'narrow',
121
119
  [`${prefix}--subgrid--wide`]: mode === 'wide'
122
120
  });
123
- const BaseComponent = as || 'div';
124
121
  return /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({}, rest, {
125
- ref: ref,
126
122
  className: className
127
123
  }), children);
128
- });
124
+ };
129
125
  Subgrid.propTypes = {
130
126
  /**
131
127
  * Provide a custom element to render instead of the default <div>
@@ -22,9 +22,9 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
22
22
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
24
 
25
- const FlexGrid = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
25
+ function FlexGrid(_ref) {
26
26
  let {
27
- as,
27
+ as: BaseComponent = 'div',
28
28
  condensed = false,
29
29
  narrow = false,
30
30
  fullWidth = false,
@@ -40,15 +40,14 @@ const FlexGrid = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
40
40
  [`${prefix}--grid--full-width`]: fullWidth
41
41
  });
42
42
  // cast as any to let TypeScript allow passing in attributes to base component
43
- const BaseComponent = as || 'div';
43
+ const BaseComponentAsAny = BaseComponent;
44
44
  return /*#__PURE__*/React__default["default"].createElement(GridContext.GridSettings, {
45
45
  mode: "flexbox",
46
46
  subgrid: false
47
- }, /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({
48
- className: className,
49
- ref: ref
47
+ }, /*#__PURE__*/React__default["default"].createElement(BaseComponentAsAny, _rollupPluginBabelHelpers["extends"]({
48
+ className: className
50
49
  }, rest), children));
51
- });
50
+ }
52
51
  FlexGrid.propTypes = {
53
52
  /**
54
53
  * Provide a custom element to render instead of the default <div>
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { PolymorphicComponentPropWithRef } from '../../internal/PolymorphicProps';
7
+ import { PolymorphicProps } from '../../types/common';
8
8
  export interface GridBaseProps {
9
9
  /**
10
10
  * Pass in content that will be rendered within the `Grid`
@@ -29,9 +29,7 @@ export interface GridBaseProps {
29
29
  */
30
30
  narrow?: boolean;
31
31
  }
32
- export type GridProps<T extends React.ElementType> = PolymorphicComponentPropWithRef<T, GridBaseProps>;
32
+ export type GridProps<T extends React.ElementType> = PolymorphicProps<T, GridBaseProps>;
33
33
  export interface GridComponent {
34
- <T extends React.ElementType = 'div'>(props: GridProps<T>): React.ReactElement | null;
35
- displayName?: string;
36
- propTypes?: React.WeakValidationMap<GridProps<any>>;
34
+ <T extends React.ElementType>(props: GridProps<T>, context?: any): React.ReactElement<any, any> | null;
37
35
  }
@@ -86,9 +86,9 @@ const IconButton = /*#__PURE__*/React__default["default"].forwardRef(function Ic
86
86
  kind: kind,
87
87
  ref: ref,
88
88
  size: size,
89
- isSelected: isSelected,
90
- hasIconOnly: true,
91
- className: className,
89
+ className: cx__default["default"](`${prefix}--btn--icon-only`, {
90
+ [`${prefix}--btn--selected`]: isSelected
91
+ }, className),
92
92
  "aria-describedby": badgeCount && badgeId
93
93
  }), children, !disabled && badgeCount !== undefined && /*#__PURE__*/React__default["default"].createElement(index.BadgeIndicator, {
94
94
  id: badgeId,
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import { LayerLevel } from './LayerLevel';
9
- import { PolymorphicComponentPropWithRef } from '../../internal/PolymorphicProps';
9
+ import { PolymorphicProps } from '../../types/common';
10
10
  /**
11
11
  * A custom hook that will return information about the current layer. A common
12
12
  * field to pull from this is the `level` for the layer that the component that
@@ -30,6 +30,8 @@ export interface LayerBaseProps {
30
30
  */
31
31
  level?: LayerLevel;
32
32
  }
33
- export type LayerProps<T extends React.ElementType> = PolymorphicComponentPropWithRef<T, LayerBaseProps>;
34
- declare const Layer: React.ForwardRefExoticComponent<Omit<LayerProps<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<unknown>>;
35
- export { Layer };
33
+ export type LayerProps<T extends React.ElementType> = PolymorphicProps<T, LayerBaseProps>;
34
+ export interface LayerComponent {
35
+ <T extends React.ElementType>(props: LayerProps<T>, context?: any): React.ReactElement<any, any> | null;
36
+ }
37
+ export declare const Layer: LayerComponent;
@@ -34,9 +34,9 @@ function useLayer() {
34
34
  level
35
35
  };
36
36
  }
37
- const Layer = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
37
+ const LayerRenderFunction = /*#__PURE__*/React__default["default"].forwardRef(function Layer(_ref, ref) {
38
38
  let {
39
- as,
39
+ as = 'div',
40
40
  className: customClassName,
41
41
  children,
42
42
  level: overrideLevel,
@@ -48,7 +48,7 @@ const Layer = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
48
48
  const className = cx__default["default"](`${prefix}--layer-${LayerLevel.levels[level]}`, customClassName);
49
49
  // The level should be between MIN_LEVEL and MAX_LEVEL
50
50
  const value = Math.max(LayerLevel.MIN_LEVEL, Math.min(level + 1, LayerLevel.MAX_LEVEL));
51
- const BaseComponent = as || 'div';
51
+ const BaseComponent = as;
52
52
  return /*#__PURE__*/React__default["default"].createElement(LayerContext.LayerContext.Provider, {
53
53
  value: value
54
54
  }, /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({
@@ -57,8 +57,8 @@ const Layer = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
57
57
  className: className
58
58
  }), children));
59
59
  });
60
- Layer.displayName = 'Layer';
61
- Layer.propTypes = {
60
+ LayerRenderFunction.displayName = 'Layer';
61
+ LayerRenderFunction.propTypes = {
62
62
  /**
63
63
  * Specify a custom component or element to be rendered as the top-level
64
64
  * element in the component
@@ -78,6 +78,7 @@ Layer.propTypes = {
78
78
  */
79
79
  level: PropTypes__default["default"].oneOf([0, 1, 2])
80
80
  };
81
+ const Layer = LayerRenderFunction;
81
82
 
82
83
  exports.Layer = Layer;
83
84
  exports.useLayer = useLayer;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2023
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -31,7 +31,8 @@ export interface LinkBaseProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
31
31
  */
32
32
  inline?: boolean;
33
33
  /**
34
- * A component used to render an icon.
34
+ * @description Optional prop to render an icon next to the link.
35
+ * Can be a React component class
35
36
  */
36
37
  renderIcon?: ComponentType;
37
38
  /**
@@ -92,7 +92,8 @@ Link.propTypes = {
92
92
  */
93
93
  inline: PropTypes__default["default"].bool,
94
94
  /**
95
- * A component used to render an icon.
95
+ * Optional prop to render an icon next to the link.
96
+ * Can be a React component class
96
97
  */
97
98
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
98
99
  /**
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2023
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { ForwardedRef, ReactNode, type Ref } from 'react';
7
+ import React, { ForwardedRef, ReactNode } from 'react';
8
8
  import { ForwardRefReturn, ReactAttr } from '../../types/common';
9
9
  export interface ListBoxMenuItemProps extends ReactAttr<HTMLLIElement> {
10
10
  /**
@@ -30,7 +30,7 @@ export interface ListBoxMenuItemProps extends ReactAttr<HTMLLIElement> {
30
30
  title?: string;
31
31
  }
32
32
  export type ListBoxMenuItemForwardedRef = (ForwardedRef<HTMLLIElement> & {
33
- menuItemOptionRef?: Ref<HTMLDivElement>;
33
+ menuItemOptionRef?: React.Ref<HTMLDivElement>;
34
34
  }) | null;
35
35
  export type ListBoxMenuItemComponent = ForwardRefReturn<ListBoxMenuItemForwardedRef, ListBoxMenuItemProps>;
36
36
  declare const _default: ListBoxMenuItemComponent;
@@ -14,7 +14,6 @@ var cx = require('classnames');
14
14
  var React = require('react');
15
15
  var PropTypes = require('prop-types');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
- var useMergedRefs = require('../../internal/useMergedRefs.js');
18
17
 
19
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
19
 
@@ -22,42 +21,24 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
22
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
22
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
24
23
 
25
- /**
26
- * Determines if the content of an element is truncated.
27
- *
28
- * Merges a forwarded ref with a local ref to check the element's dimensions.
29
- *
30
- * @template T
31
- * @param forwardedRef - A ref passed from the parent component.
32
- * @param deps - Dependencies to re-run the truncation check.
33
- * @returns An object containing the truncation state and the merged ref.
34
- */
35
- const useIsTruncated = function (forwardedRef) {
36
- let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
37
- const localRef = React.useRef(null);
38
- const mergedRef = useMergedRefs.useMergedRefs([...(forwardedRef ? [forwardedRef] : []), localRef]);
24
+ function useIsTruncated(ref) {
39
25
  const [isTruncated, setIsTruncated] = React.useState(false);
40
26
  React.useEffect(() => {
41
- const element = localRef.current;
42
- if (element) {
43
- const {
44
- offsetWidth,
45
- scrollWidth
46
- } = element;
47
- setIsTruncated(offsetWidth < scrollWidth);
48
- }
49
- }, [localRef, ...deps]);
50
- return {
51
- isTruncated,
52
- ref: mergedRef
53
- };
54
- };
27
+ const element = ref.current;
28
+ const {
29
+ offsetWidth,
30
+ scrollWidth
31
+ } = element;
32
+ setIsTruncated(offsetWidth < scrollWidth);
33
+ }, [ref, setIsTruncated]);
34
+ return isTruncated;
35
+ }
55
36
  /**
56
37
  * `ListBoxMenuItem` is a helper component for managing the container class
57
38
  * name, alongside any classes for any corresponding states, for a generic list
58
39
  * box menu item.
59
40
  */
60
- const ListBoxMenuItem = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
41
+ const ListBoxMenuItem = /*#__PURE__*/React__default["default"].forwardRef(function ListBoxMenuItem(_ref, forwardedRef) {
61
42
  let {
62
43
  children,
63
44
  isActive = false,
@@ -66,11 +47,8 @@ const ListBoxMenuItem = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
66
47
  ...rest
67
48
  } = _ref;
68
49
  const prefix = usePrefix.usePrefix();
69
- const menuItemOptionRefProp = forwardedRef && typeof forwardedRef !== 'function' ? forwardedRef.menuItemOptionRef : undefined;
70
- const {
71
- isTruncated,
72
- ref: menuItemOptionRef
73
- } = useIsTruncated(menuItemOptionRefProp, [children]);
50
+ const ref = React.useRef(null);
51
+ const isTruncated = useIsTruncated(forwardedRef?.menuItemOptionRef || ref);
74
52
  const className = cx__default["default"](`${prefix}--list-box__menu-item`, {
75
53
  [`${prefix}--list-box__menu-item--active`]: isActive,
76
54
  [`${prefix}--list-box__menu-item--highlighted`]: isHighlighted
@@ -80,7 +58,7 @@ const ListBoxMenuItem = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
80
58
  title: isTruncated ? title : undefined
81
59
  }), /*#__PURE__*/React__default["default"].createElement("div", {
82
60
  className: `${prefix}--list-box__menu-item__option`,
83
- ref: menuItemOptionRef
61
+ ref: forwardedRef?.menuItemOptionRef || ref
84
62
  }, children));
85
63
  });
86
64
  ListBoxMenuItem.displayName = 'ListBoxMenuItem';
@@ -14,14 +14,14 @@ var cx = require('classnames');
14
14
  var PropTypes = require('prop-types');
15
15
  var React = require('react');
16
16
  var ReactDOM = require('react-dom');
17
- var keys = require('../../internal/keyboard/keys.js');
18
- var match = require('../../internal/keyboard/match.js');
19
17
  var useMergedRefs = require('../../internal/useMergedRefs.js');
20
18
  var usePrefix = require('../../internal/usePrefix.js');
21
19
  var deprecate = require('../../prop-types/deprecate.js');
22
20
  var MenuContext = require('./MenuContext.js');
23
21
  var environment = require('../../internal/environment.js');
24
22
  var useLayoutDirection = require('../LayoutDirection/useLayoutDirection.js');
23
+ var match = require('../../internal/keyboard/match.js');
24
+ var keys = require('../../internal/keyboard/keys.js');
25
25
 
26
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
27
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2025
2
+ * Copyright IBM Corp. 2023
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -31,7 +31,7 @@ export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
31
31
  */
32
32
  onClick?: (event: KeyboardEvent<HTMLLIElement> | MouseEvent<HTMLLIElement>) => void;
33
33
  /**
34
- * A component used to render an icon.
34
+ * Sets the menu item's icon.
35
35
  */
36
36
  renderIcon?: FC;
37
37
  /**
@@ -15,8 +15,6 @@ var PropTypes = require('prop-types');
15
15
  var React = require('react');
16
16
  var react = require('@floating-ui/react');
17
17
  var iconsReact = require('@carbon/icons-react');
18
- var keys = require('../../internal/keyboard/keys.js');
19
- var match = require('../../internal/keyboard/match.js');
20
18
  var useControllableState = require('../../internal/useControllableState.js');
21
19
  var useMergedRefs = require('../../internal/useMergedRefs.js');
22
20
  var usePrefix = require('../../internal/usePrefix.js');
@@ -24,7 +22,9 @@ var Menu = require('./Menu.js');
24
22
  var MenuContext = require('./MenuContext.js');
25
23
  require('../Text/index.js');
26
24
  var useLayoutDirection = require('../LayoutDirection/useLayoutDirection.js');
25
+ var match = require('../../internal/keyboard/match.js');
27
26
  var Text = require('../Text/Text.js');
27
+ var keys = require('../../internal/keyboard/keys.js');
28
28
 
29
29
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
30
 
@@ -222,7 +222,7 @@ MenuItem.propTypes = {
222
222
  // @ts-ignore-next-line -- avoid spurious (?) TS2322 error
223
223
  onClick: PropTypes__default["default"].func,
224
224
  /**
225
- * A component used to render an icon.
225
+ * Sets the menu item's icon.
226
226
  */
227
227
  // @ts-ignore-next-line -- avoid spurious (?) TS2322 error
228
228
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),