@carbon/react 1.89.0 → 1.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +877 -877
  2. package/README.md +2 -2
  3. package/es/components/AILabel/index.js +8 -6
  4. package/es/components/Breadcrumb/BreadcrumbItem.js +2 -0
  5. package/es/components/Button/Button.js +3 -0
  6. package/es/components/ChatButton/ChatButton.js +1 -0
  7. package/es/components/CheckboxGroup/CheckboxGroup.js +21 -2
  8. package/es/components/ComboBox/ComboBox.js +17 -1
  9. package/es/components/ComboButton/index.js +1 -0
  10. package/es/components/ComposedModal/ComposedModal.js +18 -4
  11. package/es/components/DataTable/DataTable.d.ts +3 -8
  12. package/es/components/DataTable/DataTable.js +14 -0
  13. package/es/components/DataTable/Table.js +3 -3
  14. package/es/components/DataTable/TableExpandHeader.js +5 -1
  15. package/es/components/DataTable/TableExpandRow.d.ts +33 -5
  16. package/es/components/DataTable/TableExpandRow.js +5 -2
  17. package/es/components/DataTable/TableHeader.d.ts +1 -2
  18. package/es/components/DataTable/TableHeader.js +3 -2
  19. package/es/components/DataTable/TableRow.d.ts +3 -6
  20. package/es/components/DataTable/TableRow.js +40 -22
  21. package/es/components/DataTable/TableSlugRow.js +1 -0
  22. package/es/components/DataTable/TableToolbarMenu.js +3 -0
  23. package/es/components/DataTable/state/sorting.d.ts +57 -14
  24. package/es/components/DataTable/state/sorting.js +42 -50
  25. package/es/components/DataTable/tools/sorting.js +5 -0
  26. package/es/components/DatePicker/DatePicker.js +14 -3
  27. package/es/components/DatePickerInput/DatePickerInput.js +6 -0
  28. package/es/components/Dialog/Dialog.js +10 -2
  29. package/es/components/Dropdown/Dropdown.js +16 -4
  30. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +1 -0
  31. package/es/components/FileUploader/FileUploader.js +9 -2
  32. package/es/components/FileUploader/FileUploaderButton.js +1 -1
  33. package/es/components/FileUploader/FileUploaderDropContainer.js +1 -1
  34. package/es/components/FileUploader/FileUploaderItem.js +3 -0
  35. package/es/components/FluidMultiSelect/FluidMultiSelect.js +2 -0
  36. package/es/components/FluidNumberInput/FluidNumberInput.js +3 -2
  37. package/es/components/FluidSearch/FluidSearch.js +3 -2
  38. package/es/components/FluidSelect/FluidSelect.js +3 -2
  39. package/es/components/FluidTextInput/FluidTextInput.js +3 -2
  40. package/es/components/FluidTimePicker/FluidTimePicker.js +11 -4
  41. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +3 -2
  42. package/es/components/Grid/CSSGrid.js +5 -0
  43. package/es/components/Grid/Column.js +3 -0
  44. package/es/components/Grid/ColumnHang.js +1 -0
  45. package/es/components/Grid/FlexGrid.js +1 -0
  46. package/es/components/Grid/Row.js +1 -0
  47. package/es/components/Heading/index.js +3 -1
  48. package/es/components/IconButton/index.js +4 -2
  49. package/es/components/IconIndicator/index.js +4 -2
  50. package/es/components/InlineCheckbox/InlineCheckbox.js +3 -2
  51. package/es/components/Layout/index.js +6 -4
  52. package/es/components/LayoutDirection/LayoutDirection.js +2 -0
  53. package/es/components/Link/Link.js +3 -0
  54. package/es/components/ListBox/ListBoxMenuItem.js +4 -1
  55. package/es/components/ListBox/next/ListBoxTrigger.js +3 -2
  56. package/es/components/Menu/Menu.js +6 -9
  57. package/es/components/Menu/MenuContext.js +1 -0
  58. package/es/components/Menu/MenuItem.js +5 -13
  59. package/es/components/MenuButton/index.js +7 -2
  60. package/es/components/Modal/Modal.js +15 -6
  61. package/es/components/ModalWrapper/ModalWrapper.js +2 -0
  62. package/es/components/MultiSelect/FilterableMultiSelect.js +24 -5
  63. package/es/components/MultiSelect/MultiSelect.js +21 -5
  64. package/es/components/Notification/Notification.js +1 -1
  65. package/es/components/NumberInput/NumberInput.js +18 -7
  66. package/es/components/OverflowMenu/OverflowMenu.js +2 -0
  67. package/es/components/OverflowMenu/next/index.js +3 -2
  68. package/es/components/OverflowMenuItem/OverflowMenuItem.js +2 -0
  69. package/es/components/PageHeader/PageHeader.d.ts +3 -3
  70. package/es/components/PageHeader/PageHeader.js +22 -8
  71. package/es/components/Pagination/Pagination.js +6 -2
  72. package/es/components/PaginationNav/PaginationNav.js +2 -5
  73. package/es/components/Popover/index.js +20 -6
  74. package/es/components/ProgressBar/ProgressBar.js +4 -2
  75. package/es/components/RadioTile/RadioTile.js +2 -2
  76. package/es/components/Search/Search.js +2 -2
  77. package/es/components/Select/Select.js +2 -3
  78. package/es/components/ShapeIndicator/index.js +4 -2
  79. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.d.ts +4 -4
  80. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +1 -2
  81. package/es/components/SkeletonText/SkeletonText.js +0 -2
  82. package/es/components/Slider/Slider.js +11 -16
  83. package/es/components/Stack/HStack.js +1 -0
  84. package/es/components/Stack/Stack.js +6 -9
  85. package/es/components/Stack/VStack.js +1 -0
  86. package/es/components/StructuredList/StructuredList.js +3 -0
  87. package/es/components/Switch/Switch.js +1 -1
  88. package/es/components/Tabs/Tabs.js +28 -17
  89. package/es/components/Tag/DismissibleTag.d.ts +5 -0
  90. package/es/components/Tag/DismissibleTag.js +8 -1
  91. package/es/components/Tag/OperationalTag.js +2 -0
  92. package/es/components/Tag/SelectableTag.js +2 -0
  93. package/es/components/Tag/Tag.js +4 -0
  94. package/es/components/Tag/isEllipsisActive.js +1 -0
  95. package/es/components/Text/Text.js +1 -0
  96. package/es/components/TextInput/ControlledPasswordInput.js +2 -4
  97. package/es/components/TextInput/PasswordInput.js +7 -2
  98. package/es/components/TextInput/TextInput.js +4 -2
  99. package/es/components/Theme/index.js +8 -3
  100. package/es/components/Tile/Tile.js +14 -17
  101. package/es/components/TimePicker/TimePicker.js +1 -0
  102. package/es/components/Toggle/Toggle.js +1 -1
  103. package/es/components/Toggletip/index.js +23 -8
  104. package/es/components/Tooltip/DefinitionTooltip.js +1 -0
  105. package/es/components/Tooltip/Tooltip.js +30 -23
  106. package/es/components/TreeView/TreeNode.d.ts +28 -0
  107. package/es/components/TreeView/TreeNode.js +19 -10
  108. package/es/components/TreeView/TreeView.js +7 -0
  109. package/es/components/UIShell/HeaderContainer.js +3 -1
  110. package/es/components/UIShell/HeaderGlobalAction.js +2 -2
  111. package/es/components/UIShell/HeaderMenu.js +3 -3
  112. package/es/components/UIShell/HeaderPanel.js +2 -2
  113. package/es/components/UIShell/Link.js +2 -0
  114. package/es/components/UIShell/SideNavItems.js +1 -0
  115. package/es/components/UIShell/SideNavMenu.js +2 -2
  116. package/es/components/UIShell/SideNavMenuItem.js +1 -1
  117. package/es/components/UIShell/SideNavSwitcher.js +1 -1
  118. package/es/components/UIShell/Switcher.js +2 -1
  119. package/es/components/UIShell/SwitcherItem.js +4 -2
  120. package/es/internal/FloatingMenu.js +7 -1
  121. package/es/internal/Selection.js +12 -3
  122. package/es/internal/useMergedRefs.js +1 -0
  123. package/es/internal/useNoInteractiveChildren.js +4 -0
  124. package/es/internal/useOutsideClick.js +1 -0
  125. package/es/internal/useOverflowItems.js +6 -0
  126. package/es/internal/useResizeObserver.js +4 -0
  127. package/es/internal/useSavedCallback.js +1 -0
  128. package/es/internal/warning.js +1 -0
  129. package/es/prop-types/isRequiredOneOf.js +4 -1
  130. package/es/tools/events.js +3 -1
  131. package/es/tools/wrapComponent.js +1 -0
  132. package/lib/components/AILabel/index.js +8 -6
  133. package/lib/components/Breadcrumb/BreadcrumbItem.js +2 -0
  134. package/lib/components/Button/Button.js +3 -0
  135. package/lib/components/ChatButton/ChatButton.js +1 -0
  136. package/lib/components/CheckboxGroup/CheckboxGroup.js +20 -1
  137. package/lib/components/ComboBox/ComboBox.js +17 -1
  138. package/lib/components/ComboButton/index.js +1 -0
  139. package/lib/components/ComposedModal/ComposedModal.js +18 -4
  140. package/lib/components/DataTable/DataTable.d.ts +3 -8
  141. package/lib/components/DataTable/DataTable.js +14 -0
  142. package/lib/components/DataTable/Table.js +3 -3
  143. package/lib/components/DataTable/TableExpandHeader.js +5 -1
  144. package/lib/components/DataTable/TableExpandRow.d.ts +33 -5
  145. package/lib/components/DataTable/TableExpandRow.js +5 -2
  146. package/lib/components/DataTable/TableHeader.d.ts +1 -2
  147. package/lib/components/DataTable/TableHeader.js +3 -2
  148. package/lib/components/DataTable/TableRow.d.ts +3 -6
  149. package/lib/components/DataTable/TableRow.js +39 -21
  150. package/lib/components/DataTable/TableSlugRow.js +1 -0
  151. package/lib/components/DataTable/TableToolbarMenu.js +3 -0
  152. package/lib/components/DataTable/state/sorting.d.ts +57 -14
  153. package/lib/components/DataTable/state/sorting.js +41 -50
  154. package/lib/components/DataTable/tools/sorting.js +5 -0
  155. package/lib/components/DatePicker/DatePicker.js +14 -3
  156. package/lib/components/DatePickerInput/DatePickerInput.js +6 -0
  157. package/lib/components/Dialog/Dialog.js +10 -2
  158. package/lib/components/Dropdown/Dropdown.js +16 -4
  159. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +1 -0
  160. package/lib/components/FileUploader/FileUploader.js +9 -2
  161. package/lib/components/FileUploader/FileUploaderButton.js +1 -1
  162. package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -1
  163. package/lib/components/FileUploader/FileUploaderItem.js +3 -0
  164. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +2 -0
  165. package/lib/components/FluidNumberInput/FluidNumberInput.js +3 -2
  166. package/lib/components/FluidSearch/FluidSearch.js +3 -2
  167. package/lib/components/FluidSelect/FluidSelect.js +3 -2
  168. package/lib/components/FluidTextInput/FluidTextInput.js +3 -2
  169. package/lib/components/FluidTimePicker/FluidTimePicker.js +11 -4
  170. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +3 -2
  171. package/lib/components/Grid/CSSGrid.js +5 -0
  172. package/lib/components/Grid/Column.js +3 -0
  173. package/lib/components/Grid/ColumnHang.js +1 -0
  174. package/lib/components/Grid/FlexGrid.js +1 -0
  175. package/lib/components/Grid/Row.js +1 -0
  176. package/lib/components/Heading/index.js +3 -1
  177. package/lib/components/IconButton/index.js +4 -2
  178. package/lib/components/IconIndicator/index.js +4 -2
  179. package/lib/components/InlineCheckbox/InlineCheckbox.js +3 -2
  180. package/lib/components/Layout/index.js +6 -4
  181. package/lib/components/LayoutDirection/LayoutDirection.js +2 -0
  182. package/lib/components/Link/Link.js +3 -0
  183. package/lib/components/ListBox/ListBoxMenuItem.js +4 -1
  184. package/lib/components/ListBox/next/ListBoxTrigger.js +3 -2
  185. package/lib/components/Menu/Menu.js +6 -9
  186. package/lib/components/Menu/MenuContext.js +1 -0
  187. package/lib/components/Menu/MenuItem.js +5 -13
  188. package/lib/components/MenuButton/index.js +7 -2
  189. package/lib/components/Modal/Modal.js +15 -6
  190. package/lib/components/ModalWrapper/ModalWrapper.js +2 -0
  191. package/lib/components/MultiSelect/FilterableMultiSelect.js +24 -5
  192. package/lib/components/MultiSelect/MultiSelect.js +21 -5
  193. package/lib/components/Notification/Notification.js +1 -1
  194. package/lib/components/NumberInput/NumberInput.js +17 -6
  195. package/lib/components/OverflowMenu/OverflowMenu.js +2 -0
  196. package/lib/components/OverflowMenu/next/index.js +3 -2
  197. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +2 -0
  198. package/lib/components/PageHeader/PageHeader.d.ts +3 -3
  199. package/lib/components/PageHeader/PageHeader.js +22 -8
  200. package/lib/components/Pagination/Pagination.js +6 -2
  201. package/lib/components/PaginationNav/PaginationNav.js +2 -5
  202. package/lib/components/Popover/index.js +20 -6
  203. package/lib/components/ProgressBar/ProgressBar.js +4 -2
  204. package/lib/components/RadioTile/RadioTile.js +2 -2
  205. package/lib/components/Search/Search.js +2 -2
  206. package/lib/components/Select/Select.js +2 -3
  207. package/lib/components/ShapeIndicator/index.js +4 -2
  208. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.d.ts +4 -4
  209. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +1 -2
  210. package/lib/components/SkeletonText/SkeletonText.js +0 -2
  211. package/lib/components/Slider/Slider.js +11 -16
  212. package/lib/components/Stack/HStack.js +1 -0
  213. package/lib/components/Stack/Stack.js +6 -9
  214. package/lib/components/Stack/VStack.js +1 -0
  215. package/lib/components/StructuredList/StructuredList.js +3 -0
  216. package/lib/components/Switch/Switch.js +1 -1
  217. package/lib/components/Tabs/Tabs.js +28 -17
  218. package/lib/components/Tag/DismissibleTag.d.ts +5 -0
  219. package/lib/components/Tag/DismissibleTag.js +8 -1
  220. package/lib/components/Tag/OperationalTag.js +2 -0
  221. package/lib/components/Tag/SelectableTag.js +2 -0
  222. package/lib/components/Tag/Tag.js +4 -0
  223. package/lib/components/Tag/isEllipsisActive.js +1 -0
  224. package/lib/components/Text/Text.js +1 -0
  225. package/lib/components/TextInput/ControlledPasswordInput.js +2 -4
  226. package/lib/components/TextInput/PasswordInput.js +7 -2
  227. package/lib/components/TextInput/TextInput.js +4 -2
  228. package/lib/components/Theme/index.js +8 -3
  229. package/lib/components/Tile/Tile.js +14 -17
  230. package/lib/components/TimePicker/TimePicker.js +1 -0
  231. package/lib/components/Toggle/Toggle.js +1 -1
  232. package/lib/components/Toggletip/index.js +22 -7
  233. package/lib/components/Tooltip/DefinitionTooltip.js +1 -0
  234. package/lib/components/Tooltip/Tooltip.js +30 -23
  235. package/lib/components/TreeView/TreeNode.d.ts +28 -0
  236. package/lib/components/TreeView/TreeNode.js +19 -10
  237. package/lib/components/TreeView/TreeView.js +7 -0
  238. package/lib/components/UIShell/HeaderContainer.js +3 -1
  239. package/lib/components/UIShell/HeaderGlobalAction.js +2 -2
  240. package/lib/components/UIShell/HeaderMenu.js +3 -3
  241. package/lib/components/UIShell/HeaderPanel.js +2 -2
  242. package/lib/components/UIShell/Link.js +2 -0
  243. package/lib/components/UIShell/SideNavItems.js +1 -0
  244. package/lib/components/UIShell/SideNavMenu.js +2 -2
  245. package/lib/components/UIShell/SideNavMenuItem.js +1 -1
  246. package/lib/components/UIShell/SideNavSwitcher.js +1 -1
  247. package/lib/components/UIShell/Switcher.js +2 -1
  248. package/lib/components/UIShell/SwitcherItem.js +4 -2
  249. package/lib/internal/FloatingMenu.js +7 -1
  250. package/lib/internal/Selection.js +12 -3
  251. package/lib/internal/useMergedRefs.js +1 -0
  252. package/lib/internal/useNoInteractiveChildren.js +4 -0
  253. package/lib/internal/useOutsideClick.js +1 -0
  254. package/lib/internal/useOverflowItems.js +6 -0
  255. package/lib/internal/useResizeObserver.js +4 -0
  256. package/lib/internal/useSavedCallback.js +1 -0
  257. package/lib/internal/warning.js +1 -0
  258. package/lib/prop-types/isRequiredOneOf.js +4 -1
  259. package/lib/tools/events.js +3 -1
  260. package/lib/tools/wrapComponent.js +1 -0
  261. package/package.json +11 -11
  262. package/telemetry.yml +14 -0
@@ -24,6 +24,7 @@ var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
24
24
  * Event types that trigger a "drag" to stop.
25
25
  */
26
26
  const DRAG_STOP_EVENT_TYPES = new Set(['mouseup', 'touchend', 'touchcancel']);
27
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
27
28
  const Tooltip = /*#__PURE__*/React.forwardRef(({
28
29
  as,
29
30
  align = 'top',
@@ -70,6 +71,8 @@ const Tooltip = /*#__PURE__*/React.forwardRef(({
70
71
  'aria-labelledby': labelledBy,
71
72
  'aria-describedby': describedBy
72
73
  };
74
+
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
73
76
  function getChildEventHandlers(childProps) {
74
77
  const eventHandlerFunctions = Object.keys(triggerProps).filter(prop => prop.startsWith('on'));
75
78
  const eventHandlers = {};
@@ -156,29 +159,33 @@ const Tooltip = /*#__PURE__*/React.forwardRef(({
156
159
  });
157
160
  };
158
161
  }, [isDragging, onDragStop]);
159
- return /*#__PURE__*/React.createElement(index.Popover, _rollupPluginBabelHelpers.extends({
160
- as: as,
161
- ref: ref
162
- }, rest, {
163
- align: align,
164
- className: cx(`${prefix}--tooltip`, customClassName),
165
- dropShadow: dropShadow,
166
- highContrast: highContrast,
167
- onKeyDown: onKeyDown,
168
- onMouseLeave: onMouseLeave,
169
- open: open
170
- }), /*#__PURE__*/React.createElement("div", {
171
- className: `${prefix}--tooltip-trigger__wrapper`
172
- }, typeof child !== 'undefined' ? /*#__PURE__*/React.cloneElement(child, {
173
- ...triggerProps,
174
- ...getChildEventHandlers(child.props)
175
- }) : null), /*#__PURE__*/React.createElement(index.PopoverContent, {
176
- "aria-hidden": open ? 'false' : 'true',
177
- className: `${prefix}--tooltip-content`,
178
- id: id,
179
- onMouseEnter: onMouseEnter,
180
- role: "tooltip"
181
- }, label || description));
162
+ return (
163
+ /*#__PURE__*/
164
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
165
+ React.createElement(index.Popover, _rollupPluginBabelHelpers.extends({
166
+ as: as,
167
+ ref: ref
168
+ }, rest, {
169
+ align: align,
170
+ className: cx(`${prefix}--tooltip`, customClassName),
171
+ dropShadow: dropShadow,
172
+ highContrast: highContrast,
173
+ onKeyDown: onKeyDown,
174
+ onMouseLeave: onMouseLeave,
175
+ open: open
176
+ }), /*#__PURE__*/React.createElement("div", {
177
+ className: `${prefix}--tooltip-trigger__wrapper`
178
+ }, typeof child !== 'undefined' ? /*#__PURE__*/React.cloneElement(child, {
179
+ ...triggerProps,
180
+ ...getChildEventHandlers(child.props)
181
+ }) : null), /*#__PURE__*/React.createElement(index.PopoverContent, {
182
+ "aria-hidden": open ? 'false' : 'true',
183
+ className: `${prefix}--tooltip-content`,
184
+ id: id,
185
+ onMouseEnter: onMouseEnter,
186
+ role: "tooltip"
187
+ }, label || description))
188
+ );
182
189
  });
183
190
  Tooltip.propTypes = {
184
191
  /**
@@ -11,6 +11,9 @@ export type TreeNodeProps = {
11
11
  /**
12
12
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
13
13
  * The ID of the active node in the tree
14
+ *
15
+ * @deprecated The `active` prop for `TreeNode` has
16
+ * been deprecated after the introduction of context. It will be removed in the next major release.
14
17
  */
15
18
  active?: string | number;
16
19
  /**
@@ -29,6 +32,9 @@ export type TreeNodeProps = {
29
32
  /**
30
33
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
31
34
  * TreeNode depth to determine spacing
35
+ *
36
+ * @deprecated The `depth` prop for `TreeNode` has
37
+ * been deprecated after the introduction of context. It will be removed in the next major release.
32
38
  */
33
39
  depth?: number;
34
40
  /**
@@ -49,6 +55,9 @@ export type TreeNodeProps = {
49
55
  label: React.ReactNode;
50
56
  /**
51
57
  * Callback function for when the node receives or loses focus
58
+ *
59
+ * @deprecated The `onNodeFocusEvent` prop for `TreeNode` has
60
+ * been deprecated after the introduction of context. It will be removed in the next major release.
52
61
  */
53
62
  onNodeFocusEvent?: (event: React.FocusEvent<HTMLElement>) => void;
54
63
  /**
@@ -61,6 +70,9 @@ export type TreeNodeProps = {
61
70
  onToggle?: UncontrolledOnToggle | ControlledOnToggle;
62
71
  /**
63
72
  * Callback function for when any node in the tree is selected
73
+ *
74
+ * @deprecated The `onTreeSelect` prop for `TreeNode` has
75
+ * been deprecated after the introduction of context. It will be removed in the next major release.
64
76
  */
65
77
  onTreeSelect?: (event: React.MouseEvent | React.KeyboardEvent, node: Pick<TreeNodeProps, 'id' | 'label' | 'value'>) => void;
66
78
  /**
@@ -70,6 +82,8 @@ export type TreeNodeProps = {
70
82
  /**
71
83
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
72
84
  * Array containing all selected node IDs in the tree
85
+ * @deprecated The `selected` prop for `TreeNode` has
86
+ * been deprecated after the introduction of context. It will be removed in the next major release.
73
87
  */
74
88
  selected?: Array<string | number>;
75
89
  /**
@@ -97,6 +111,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
97
111
  /**
98
112
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
99
113
  * The ID of the active node in the tree
114
+ *
115
+ * @deprecated The `active` prop for `TreeNode` has
116
+ * been deprecated after the introduction of context. It will be removed in the next major release.
100
117
  */
101
118
  active?: string | number;
102
119
  /**
@@ -115,6 +132,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
115
132
  /**
116
133
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
117
134
  * TreeNode depth to determine spacing
135
+ *
136
+ * @deprecated The `depth` prop for `TreeNode` has
137
+ * been deprecated after the introduction of context. It will be removed in the next major release.
118
138
  */
119
139
  depth?: number;
120
140
  /**
@@ -135,6 +155,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
135
155
  label: React.ReactNode;
136
156
  /**
137
157
  * Callback function for when the node receives or loses focus
158
+ *
159
+ * @deprecated The `onNodeFocusEvent` prop for `TreeNode` has
160
+ * been deprecated after the introduction of context. It will be removed in the next major release.
138
161
  */
139
162
  onNodeFocusEvent?: (event: React.FocusEvent<HTMLElement>) => void;
140
163
  /**
@@ -147,6 +170,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
147
170
  onToggle?: UncontrolledOnToggle | ControlledOnToggle;
148
171
  /**
149
172
  * Callback function for when any node in the tree is selected
173
+ *
174
+ * @deprecated The `onTreeSelect` prop for `TreeNode` has
175
+ * been deprecated after the introduction of context. It will be removed in the next major release.
150
176
  */
151
177
  onTreeSelect?: (event: React.MouseEvent | React.KeyboardEvent, node: Pick<TreeNodeProps, "id" | "label" | "value">) => void;
152
178
  /**
@@ -156,6 +182,8 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
156
182
  /**
157
183
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
158
184
  * Array containing all selected node IDs in the tree
185
+ * @deprecated The `selected` prop for `TreeNode` has
186
+ * been deprecated after the introduction of context. It will be removed in the next major release.
159
187
  */
160
188
  selected?: Array<string | number>;
161
189
  /**
@@ -16,6 +16,7 @@ var PropTypes = require('prop-types');
16
16
  var React = require('react');
17
17
  var keys = require('../../internal/keyboard/keys.js');
18
18
  var match = require('../../internal/keyboard/match.js');
19
+ var deprecate = require('../../prop-types/deprecate.js');
19
20
  var useControllableState = require('../../internal/useControllableState.js');
20
21
  var usePrefix = require('../../internal/usePrefix.js');
21
22
  var useId = require('../../internal/useId.js');
@@ -60,8 +61,7 @@ const useEllipsisCheck = (label, detailsWrapperRef) => {
60
61
  }
61
62
  }, [detailsWrapperRef]);
62
63
  React.useEffect(() => {
63
- let animationFrameId;
64
- animationFrameId = requestAnimationFrame(checkEllipsis);
64
+ const animationFrameId = requestAnimationFrame(checkEllipsis);
65
65
  let resizeObserver;
66
66
  if (typeof window !== 'undefined' && typeof window.ResizeObserver !== 'undefined' && labelTextRef.current) {
67
67
  resizeObserver = new window.ResizeObserver(() => {
@@ -76,9 +76,11 @@ const useEllipsisCheck = (label, detailsWrapperRef) => {
76
76
  cancelAnimationFrame(animationFrameId);
77
77
  if (resizeObserver) {
78
78
  if (labelTextRef.current) {
79
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
79
80
  resizeObserver.unobserve(labelTextRef.current);
80
81
  }
81
82
  if (detailsWrapperRef.current) {
83
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
82
84
  resizeObserver.unobserve(detailsWrapperRef.current);
83
85
  }
84
86
  resizeObserver.disconnect();
@@ -129,6 +131,8 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
129
131
  tooltipText
130
132
  } = useEllipsisCheck(label, detailsWrapperRef);
131
133
  const enableTreeviewControllable = index.useFeatureFlag('enable-treeview-controllable');
134
+
135
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
132
136
  const {
133
137
  current: id
134
138
  } = React.useRef(nodeId || useId.useId());
@@ -371,7 +375,10 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
371
375
  const nodeContent = /*#__PURE__*/React.createElement("div", {
372
376
  className: `${prefix}--tree-node__label`,
373
377
  ref: currentNodeLabel
374
- }, children && /*#__PURE__*/React.createElement("span", {
378
+ }, children &&
379
+ /*#__PURE__*/
380
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions , jsx-a11y/click-events-have-key-events -- https://github.com/carbon-design-system/carbon/issues/20071
381
+ React.createElement("span", {
375
382
  className: `${prefix}--tree-parent-node__toggle`,
376
383
  onClick: handleToggleClick
377
384
  }, /*#__PURE__*/React.createElement(iconsReact.CaretDown, {
@@ -399,7 +406,7 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
399
406
  value: depth + 1
400
407
  }, children)));
401
408
  }
402
- return /*#__PURE__*/React.createElement("li", _rollupPluginBabelHelpers.extends({}, treeNodeProps, {
409
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("li", _rollupPluginBabelHelpers.extends({}, treeNodeProps, {
403
410
  "aria-expanded": children ? !!expanded : undefined,
404
411
  ref: setRefs
405
412
  }), nodeContent, children && /*#__PURE__*/React.createElement("ul", {
@@ -410,14 +417,14 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
410
417
  })
411
418
  }, /*#__PURE__*/React.createElement(TreeContext.DepthContext.Provider, {
412
419
  value: depth + 1
413
- }, children)));
420
+ }, children))));
414
421
  });
415
422
  TreeNode.propTypes = {
416
423
  /**
417
424
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
418
425
  * The ID of the active node in the tree
419
426
  */
420
- active: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
427
+ active: deprecate.deprecate(PropTypes.oneOfType([PropTypes.string, PropTypes.number]), 'The `active` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
421
428
  /**
422
429
  * Specify the children of the TreeNode
423
430
  */
@@ -435,7 +442,7 @@ TreeNode.propTypes = {
435
442
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
436
443
  * TreeNode depth to determine spacing
437
444
  */
438
- depth: PropTypes.number,
445
+ depth: deprecate.deprecate(PropTypes.number, 'The `depth` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
439
446
  /**
440
447
  * Specify if the TreeNode is disabled
441
448
  */
@@ -455,7 +462,7 @@ TreeNode.propTypes = {
455
462
  /**
456
463
  * Callback function for when the node receives or loses focus
457
464
  */
458
- onNodeFocusEvent: PropTypes.func,
465
+ onNodeFocusEvent: deprecate.deprecate(PropTypes.func, 'The `onNodeFocusEvent` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
459
466
  /**
460
467
  * Callback function for when the node is selected
461
468
  */
@@ -467,18 +474,20 @@ TreeNode.propTypes = {
467
474
  /**
468
475
  * Callback function for when any node in the tree is selected
469
476
  */
470
- onTreeSelect: PropTypes.func,
477
+ onTreeSelect: deprecate.deprecate(PropTypes.func, 'The `onTreeSelect` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
471
478
  /**
472
479
  * A component used to render an icon.
473
480
  */
481
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
474
482
  // @ts-ignore
475
483
  renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
476
484
  /**
477
485
  * **Note:** this is controlled by the parent TreeView component, do not set manually.
478
486
  * Array containing all selected node IDs in the tree
479
487
  */
488
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
480
489
  // @ts-ignore
481
- selected: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
490
+ selected: deprecate.deprecate(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), 'The `selected` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
482
491
  /**
483
492
  * Specify the value of the TreeNode
484
493
  */
@@ -36,11 +36,14 @@ const TreeView = ({
36
36
  ...rest
37
37
  }) => {
38
38
  const enableTreeviewControllable = index.useFeatureFlag('enable-treeview-controllable');
39
+
40
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
39
41
  const {
40
42
  current: treeId
41
43
  } = React.useRef(rest.id || useId.useId());
42
44
  const prefix = usePrefix.usePrefix();
43
45
  const treeClasses = cx(className, `${prefix}--tree`, {
46
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
44
47
  // @ts-ignore - will always be false according to prop types
45
48
 
46
49
  [`${prefix}--tree--${size}`]: size !== 'default'
@@ -66,6 +69,8 @@ const TreeView = ({
66
69
  item.tabIndex = -1;
67
70
  });
68
71
  }
72
+
73
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
69
74
  function handleTreeSelect(event, node) {
70
75
  const nodeId = node.id;
71
76
  if (nodeId) {
@@ -114,6 +119,7 @@ const TreeView = ({
114
119
  if (match.match(event, keys.ArrowDown)) {
115
120
  nextFocusNode = treeWalker.current.nextNode();
116
121
  }
122
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
117
123
  // @ts-ignore - `matches` doesn't like the object syntax without missing properties
118
124
  if (match.matches(event, [keys.Home, keys.End, {
119
125
  code: 'KeyA'
@@ -130,6 +136,7 @@ const TreeView = ({
130
136
  }
131
137
  }
132
138
  }
139
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
133
140
  // @ts-ignore - `matches` doesn't like the object syntax without missing properties
134
141
  if (match.match(event, {
135
142
  code: 'KeyA'
@@ -31,7 +31,9 @@ function HeaderContainer({
31
31
  const handleHeaderMenuButtonClick = React.useCallback(() => {
32
32
  setIsSideNavExpandedState(prevIsSideNavExpanded => !prevIsSideNavExpanded);
33
33
  }, [setIsSideNavExpandedState]);
34
- return /*#__PURE__*/React.createElement(Children, _rollupPluginBabelHelpers.extends({}, rest, {
34
+ return /*#__PURE__*/React.createElement(Children
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
36
+ , _rollupPluginBabelHelpers.extends({}, rest, {
35
37
  isSideNavExpanded: isSideNavExpandedState,
36
38
  onClickSideNavExpand: handleHeaderMenuButtonClick
37
39
  }));
@@ -26,7 +26,7 @@ var usePrefix = require('../../internal/usePrefix.js');
26
26
  *
27
27
  * Note: children passed to this component should be an Icon.
28
28
  */
29
- const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(function HeaderGlobalAction({
29
+ const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(({
30
30
  'aria-label': ariaLabel,
31
31
  'aria-labelledby': ariaLabelledBy,
32
32
  children,
@@ -37,7 +37,7 @@ const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(function HeaderGlobalAc
37
37
  isActive,
38
38
  tooltipAlignment,
39
39
  ...rest
40
- }, ref) {
40
+ }, ref) => {
41
41
  const prefix = usePrefix.usePrefix();
42
42
  const className = cx({
43
43
  [customClassName]: !!customClassName,
@@ -124,6 +124,7 @@ const HeaderMenu = frFn((props, ref) => {
124
124
  */
125
125
  const renderMenuItem = (item, index) => {
126
126
  if (/*#__PURE__*/React.isValidElement(item)) {
127
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
127
128
  return /*#__PURE__*/React.cloneElement(item, {
128
129
  ref: handleItemRef(index)
129
130
  });
@@ -161,9 +162,8 @@ const HeaderMenu = frFn((props, ref) => {
161
162
  onBlur: events.composeEventHandlers([onBlur, handleOnBlur]),
162
163
  ref: ref
163
164
  }), /*#__PURE__*/React.createElement("a", _rollupPluginBabelHelpers.extends({
164
- // eslint-disable-line jsx-a11y/role-supports-aria-props,jsx-a11y/anchor-is-valid
165
- "aria-haspopup": "menu" // eslint-disable-line jsx-a11y/aria-proptypes
166
- ,
165
+ // eslint-disable-line jsx-a11y/anchor-is-valid
166
+ "aria-haspopup": "menu",
167
167
  "aria-expanded": expanded,
168
168
  className: linkClassName,
169
169
  href: "#",
@@ -21,7 +21,7 @@ var useMergedRefs = require('../../internal/useMergedRefs.js');
21
21
  var Switcher = require('./Switcher.js');
22
22
  var noopFn = require('../../internal/noopFn.js');
23
23
 
24
- const HeaderPanel = /*#__PURE__*/React.forwardRef(function HeaderPanel({
24
+ const HeaderPanel = /*#__PURE__*/React.forwardRef(({
25
25
  children,
26
26
  className: customClassName,
27
27
  expanded,
@@ -29,7 +29,7 @@ const HeaderPanel = /*#__PURE__*/React.forwardRef(function HeaderPanel({
29
29
  onHeaderPanelFocus = noopFn.noopFn,
30
30
  href,
31
31
  ...rest
32
- }, ref) {
32
+ }, ref) => {
33
33
  const prefix = usePrefix.usePrefix();
34
34
  const headerPanelReference = React.useRef(null);
35
35
  const headerPanelRef = useMergedRefs.useMergedRefs([headerPanelReference, ref]);
@@ -21,9 +21,11 @@ const LinkBase = ({
21
21
  as: BaseComponent,
22
22
  // Captured here to prevent it from being passed into the created element.
23
23
  // See https://github.com/carbon-design-system/carbon/issues/3970
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20071
24
25
  isSideNavExpanded: _isSideNavExpanded,
25
26
  ...rest
26
27
  }, ref) => {
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
27
29
  const BaseComponentAsAny = BaseComponent ?? element ?? 'a';
28
30
  return /*#__PURE__*/React.createElement(BaseComponentAsAny, _rollupPluginBabelHelpers.extends({
29
31
  ref: ref
@@ -25,6 +25,7 @@ const SideNavItems = ({
25
25
  const childrenWithExpandedState = React.Children.map(children, child => {
26
26
  if (/*#__PURE__*/React.isValidElement(child)) {
27
27
  // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
28
29
  const childDisplayName = child.type?.displayName;
29
30
  return /*#__PURE__*/React.cloneElement(child, {
30
31
  ...(_utils.CARBON_SIDENAV_ITEMS.includes(childDisplayName) ? {
@@ -20,7 +20,7 @@ var usePrefix = require('../../internal/usePrefix.js');
20
20
  var SideNav = require('./SideNav.js');
21
21
 
22
22
  var _ChevronDown;
23
- const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu({
23
+ const SideNavMenu = /*#__PURE__*/React.forwardRef(({
24
24
  className: customClassName,
25
25
  children,
26
26
  defaultExpanded = false,
@@ -30,7 +30,7 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu({
30
30
  isSideNavExpanded,
31
31
  tabIndex,
32
32
  title
33
- }, ref) {
33
+ }, ref) => {
34
34
  const {
35
35
  isRail
36
36
  } = React.useContext(SideNav.SideNavContext);
@@ -17,7 +17,7 @@ var SideNavLinkText = require('./SideNavLinkText.js');
17
17
  var Link = require('./Link.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
 
20
- const SideNavMenuItem = /*#__PURE__*/React.forwardRef(function SideNavMenuItem(props, ref) {
20
+ const SideNavMenuItem = /*#__PURE__*/React.forwardRef((props, ref) => {
21
21
  const prefix = usePrefix.usePrefix();
22
22
  const {
23
23
  children,
@@ -17,7 +17,7 @@ var useId = require('../../internal/useId.js');
17
17
  var usePrefix = require('../../internal/usePrefix.js');
18
18
 
19
19
  var _ChevronDown;
20
- const SideNavSwitcher = /*#__PURE__*/React.forwardRef(function SideNavSwitcher(props, ref) {
20
+ const SideNavSwitcher = /*#__PURE__*/React.forwardRef((props, ref) => {
21
21
  const id = useId.useId('side-nav-switcher');
22
22
  const prefix = usePrefix.usePrefix();
23
23
  const {
@@ -45,7 +45,7 @@ require('./SideNavMenu.js');
45
45
  require('./SideNavMenuItem.js');
46
46
  require('./SideNavSwitcher.js');
47
47
 
48
- const Switcher = /*#__PURE__*/React.forwardRef(function Switcher(props, forwardRef) {
48
+ const Switcher = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
49
49
  const switcherRef = React.useRef(null);
50
50
  const ref = useMergedRefs.useMergedRefs([switcherRef, forwardRef]);
51
51
  const prefix = usePrefix.usePrefix();
@@ -85,6 +85,7 @@ const Switcher = /*#__PURE__*/React.forwardRef(function Switcher(props, forwardR
85
85
  if (direction === 1) {
86
86
  return enabledIndices[1];
87
87
  }
88
+ // eslint-disable-next-line no-fallthrough -- https://github.com/carbon-design-system/carbon/issues/20071
88
89
  default:
89
90
  return enabledIndices[nextIndex];
90
91
  }
@@ -19,7 +19,7 @@ var keys = require('../../internal/keyboard/keys.js');
19
19
  var match = require('../../internal/keyboard/match.js');
20
20
  var AriaPropTypes = require('../../prop-types/AriaPropTypes.js');
21
21
 
22
- const SwitcherItem = /*#__PURE__*/React.forwardRef(function SwitcherItem(props, forwardRef) {
22
+ const SwitcherItem = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
23
23
  const {
24
24
  'aria-label': ariaLabel,
25
25
  'aria-labelledby': ariaLabelledBy,
@@ -72,7 +72,9 @@ const SwitcherItem = /*#__PURE__*/React.forwardRef(function SwitcherItem(props,
72
72
  },
73
73
  href: href,
74
74
  target: target,
75
- rel: rel,
75
+ rel: rel
76
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
77
+ ,
76
78
  ref: forwardRef
77
79
  }, rest, {
78
80
  className: linkClassName,
@@ -219,6 +219,7 @@ const FloatingMenu = ({
219
219
  }
220
220
  placeInProgressRef.current = false;
221
221
  }
222
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
222
223
  }, [floatingPosition, onPlace]);
223
224
 
224
225
  // Attach a resize listener.
@@ -229,11 +230,13 @@ const FloatingMenu = ({
229
230
  return () => {
230
231
  resizeHandler.remove();
231
232
  };
233
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
232
234
  }, [triggerRef, menuOffset, menuDirection, flipped, target, updateOrientation]);
233
235
 
234
236
  // Update menu position when key props change.
235
237
  React.useEffect(() => {
236
238
  updateMenuPosition();
239
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
237
240
  }, [menuOffset, menuDirection, flipped, triggerRef, target, updateOrientation]);
238
241
 
239
242
  /**
@@ -295,7 +298,10 @@ const FloatingMenu = ({
295
298
  const focusTrapWithoutSentinels = FeatureFlags__namespace.enabled('enable-experimental-focus-wrap-without-sentinels');
296
299
  if (typeof document !== 'undefined') {
297
300
  const portalTarget = target ? target() : document.body;
298
- return /*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/React.createElement("div", {
301
+ return /*#__PURE__*/ReactDOM.createPortal(
302
+ /*#__PURE__*/
303
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- https://github.com/carbon-design-system/carbon/issues/20071
304
+ React.createElement("div", {
299
305
  onBlur: focusTrap && !focusTrapWithoutSentinels ? handleBlur : undefined,
300
306
  onKeyDown: focusTrapWithoutSentinels ? handleKeyDown : undefined
301
307
  }, !focusTrapWithoutSentinels && /*#__PURE__*/React.createElement("span", {
@@ -44,21 +44,28 @@ const useSelection = ({
44
44
  const savedOnChange = React.useRef(onChange);
45
45
  const [uncontrolledItems, setUncontrolledItems] = React.useState(initialSelectedItems);
46
46
  const isControlled = !!controlledItems;
47
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20071
47
48
  const selectedItems = isControlled ? controlledItems : uncontrolledItems;
48
49
  const onItemChange = React.useCallback(item => {
49
50
  if (disabled) return;
50
51
 
51
52
  // Assert special properties (e.g., `disabled`, `isSelectAll`, etc.) are
52
53
  // `any` since those properties aren’t part of the generic type.
53
- const allSelectableItems = filteredItems.filter(item => !item?.disabled && !item?.isSelectAll);
54
- const disabledItemCount = filteredItems.filter(item => item?.disabled).length;
54
+ const allSelectableItems = filteredItems.filter(
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
56
+ item => !item?.disabled && !item?.isSelectAll);
57
+ const disabledItemCount = filteredItems.filter(
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
59
+ item => item?.disabled).length;
55
60
  let newSelectedItems;
56
61
 
57
62
  // deselect all on click to All/indeterminate option
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
58
64
  if (item?.isSelectAll && selectedItems.length > 0) {
59
65
  newSelectedItems = [];
60
66
  }
61
67
  // select all options
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
62
69
  else if (item?.isSelectAll && selectedItems.length === 0) {
63
70
  newSelectedItems = allSelectableItems;
64
71
  } else {
@@ -71,7 +78,9 @@ const useSelection = ({
71
78
  }
72
79
  } else {
73
80
  newSelectedItems = removeAtIndex(selectedItems, selectedIndex);
74
- newSelectedItems = newSelectedItems.filter(item => !item?.isSelectAll);
81
+ newSelectedItems = newSelectedItems.filter(
82
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
83
+ item => !item?.isSelectAll);
75
84
  }
76
85
  }
77
86
  callOnChangeHandler({
@@ -18,6 +18,7 @@ var React = require('react');
18
18
  * node, assigns that node to every ref in the array.
19
19
  */
20
20
  const useMergedRefs = refs => {
21
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
21
22
  const memoizedRefs = React.useMemo(() => refs, refs);
22
23
  return React.useCallback(node => {
23
24
  memoizedRefs.forEach(ref => {
@@ -16,13 +16,16 @@ const useNoInteractiveChildren = (ref, message = 'component should have no inter
16
16
  /*
17
17
  // eslint-disable-next-line react-hooks/rules-of-hooks
18
18
  */
19
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
19
20
  React.useEffect(() => {
20
21
  const node = ref.current ? getInteractiveContent(ref.current) : false;
21
22
  if (node) {
22
23
  const errorMessage = `Error: ${message}.\n\nInstead found: ${node.outerHTML}`;
24
+ // eslint-disable-next-line no-console -- https://github.com/carbon-design-system/carbon/issues/20071
23
25
  console.error(errorMessage);
24
26
  throw new Error(errorMessage);
25
27
  }
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
26
29
  }, []);
27
30
  }
28
31
  };
@@ -33,6 +36,7 @@ const useInteractiveChildrenNeedDescription = (ref, message = `interactive child
33
36
  /*
34
37
  // eslint-disable-next-line react-hooks/rules-of-hooks
35
38
  */
39
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
36
40
  React.useEffect(() => {
37
41
  const node = ref.current ? getInteractiveContent(ref.current) : false;
38
42
  if (node && !node.hasAttribute('aria-describedby')) {
@@ -25,6 +25,7 @@ const useOutsideClick = (ref, callback) => {
25
25
  /*
26
26
  // eslint-disable-next-line react-hooks/rules-of-hooks
27
27
  */
28
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
28
29
  useEvent.useWindowEvent('click', event => {
29
30
  const {
30
31
  target