@carbon/react 1.76.0-rc.0 → 1.77.0-rc.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 (190) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +908 -873
  2. package/es/components/Button/Button.d.ts +9 -1
  3. package/es/components/Button/Button.js +8 -0
  4. package/es/components/CodeSnippet/CodeSnippet.d.ts +2 -2
  5. package/es/components/ComboBox/ComboBox.d.ts +2 -2
  6. package/es/components/ComboBox/ComboBox.js +36 -13
  7. package/es/components/ComboButton/index.js +1 -2
  8. package/es/components/ComposedModal/ComposedModal.js +1 -1
  9. package/es/components/ContentSwitcher/index.d.ts +0 -1
  10. package/es/components/ContextMenu/useContextMenu.d.ts +0 -1
  11. package/es/components/Copy/Copy.js +1 -1
  12. package/es/components/DataTable/DataTable.d.ts +12 -20
  13. package/es/components/DataTable/DataTable.js +1 -9
  14. package/es/components/DataTable/Table.js +1 -1
  15. package/es/components/DataTable/TableActionList.d.ts +1 -1
  16. package/es/components/DataTable/TableBody.js +1 -1
  17. package/es/components/DataTable/TableContext.d.ts +0 -1
  18. package/es/components/DataTable/TableHead.d.ts +1 -1
  19. package/es/components/DataTable/TableToolbarContent.d.ts +1 -1
  20. package/es/components/DatePicker/plugins/fixEventsPlugin.js +2 -2
  21. package/es/components/DatePickerInput/DatePickerInput.js +1 -1
  22. package/es/components/Dropdown/Dropdown.js +1 -2
  23. package/es/components/FluidForm/FormContext.d.ts +0 -1
  24. package/es/components/FluidTextInput/FluidTextInput.d.ts +8 -0
  25. package/es/components/FluidTextInput/FluidTextInput.js +8 -0
  26. package/es/components/Grid/CSSGrid.js +1 -1
  27. package/es/components/Grid/Grid.js +1 -1
  28. package/es/components/Grid/GridTypes.d.ts +0 -1
  29. package/es/components/Heading/index.d.ts +1 -1
  30. package/es/components/IconButton/index.d.ts +17 -1
  31. package/es/components/IconButton/index.js +20 -1
  32. package/es/components/InlineCheckbox/InlineCheckbox.js +1 -1
  33. package/es/components/InlineLoading/InlineLoading.d.ts +1 -1
  34. package/es/components/InlineLoading/InlineLoading.js +21 -7
  35. package/es/components/Menu/Menu.js +2 -2
  36. package/es/components/Menu/MenuContext.d.ts +1 -1
  37. package/es/components/MenuButton/index.d.ts +1 -1
  38. package/es/components/MenuButton/index.js +1 -2
  39. package/es/components/Modal/Modal.js +1 -1
  40. package/es/components/Modal/next/index.d.ts +175 -0
  41. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  42. package/es/components/MultiSelect/FilterableMultiSelect.js +1 -2
  43. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  44. package/es/components/MultiSelect/MultiSelect.js +1 -2
  45. package/es/components/Popover/index.js +2 -3
  46. package/es/components/PrimaryButton/PrimaryButton.d.ts +1 -1
  47. package/es/components/RadioTile/RadioTile.d.ts +1 -1
  48. package/es/components/SecondaryButton/SecondaryButton.d.ts +1 -1
  49. package/es/components/Slider/Slider.d.ts +1 -1
  50. package/es/components/Slider/Slider.js +1 -1
  51. package/es/components/Slider/index.d.ts +0 -1
  52. package/es/components/Tabs/Tabs.d.ts +3 -3
  53. package/es/components/Tabs/Tabs.js +4 -4
  54. package/es/components/Tag/DismissibleTag.d.ts +2 -2
  55. package/es/components/Tag/OperationalTag.d.ts +1 -1
  56. package/es/components/Tag/SelectableTag.d.ts +2 -2
  57. package/es/components/Text/index.d.ts +2 -2
  58. package/es/components/TextArea/TextArea.js +2 -1
  59. package/es/components/TextInput/PasswordInput.d.ts +1 -1
  60. package/es/components/Theme/index.d.ts +1 -1
  61. package/es/components/Tile/Tile.d.ts +1 -1
  62. package/es/components/Tile/Tile.js +1 -1
  63. package/es/components/Toggletip/index.d.ts +3 -3
  64. package/es/components/Toggletip/index.js +5 -4
  65. package/es/components/Tooltip/Tooltip.d.ts +17 -1
  66. package/es/components/Tooltip/Tooltip.js +12 -2
  67. package/es/components/TreeView/TreeNode.d.ts +27 -19
  68. package/es/components/TreeView/TreeNode.js +100 -31
  69. package/es/components/TreeView/TreeView.js +1 -1
  70. package/es/components/UIShell/Content.d.ts +9 -9
  71. package/es/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  72. package/es/components/UIShell/HeaderMenu.d.ts +69 -25
  73. package/es/components/UIShell/HeaderMenuButton.d.ts +69 -27
  74. package/es/components/UIShell/HeaderMenuItem.d.ts +4 -3
  75. package/es/components/UIShell/HeaderMenuItem.js +1 -1
  76. package/es/components/UIShell/HeaderName.js +1 -1
  77. package/es/components/UIShell/HeaderNavigation.d.ts +69 -25
  78. package/es/components/UIShell/Link.d.ts +14 -11
  79. package/es/components/UIShell/Link.js +5 -6
  80. package/es/components/UIShell/SideNav.js +3 -3
  81. package/es/components/UIShell/SideNavLink.js +1 -1
  82. package/es/components/UIShell/SideNavMenuItem.d.ts +51 -3
  83. package/es/components/UIShell/SideNavMenuItem.js +6 -6
  84. package/es/components/UIShell/SwitcherItem.d.ts +2 -2
  85. package/es/components/UIShell/SwitcherItem.js +1 -1
  86. package/es/internal/PolymorphicProps.d.ts +0 -1
  87. package/es/internal/Selection.d.ts +38 -0
  88. package/es/internal/Selection.js +26 -113
  89. package/es/node_modules/es-toolkit/dist/compat/function/debounce.mjs.js +55 -0
  90. package/es/node_modules/es-toolkit/dist/compat/function/throttle.mjs.js +23 -0
  91. package/es/node_modules/es-toolkit/dist/function/debounce.mjs.js +70 -0
  92. package/es/tools/wrapComponent.d.ts +1 -1
  93. package/lib/components/Button/Button.d.ts +9 -1
  94. package/lib/components/Button/Button.js +8 -0
  95. package/lib/components/CodeSnippet/CodeSnippet.d.ts +2 -2
  96. package/lib/components/ComboBox/ComboBox.d.ts +2 -2
  97. package/lib/components/ComboBox/ComboBox.js +36 -13
  98. package/lib/components/ComboButton/index.js +1 -2
  99. package/lib/components/ComposedModal/ComposedModal.js +2 -2
  100. package/lib/components/ContentSwitcher/index.d.ts +0 -1
  101. package/lib/components/ContextMenu/useContextMenu.d.ts +0 -1
  102. package/lib/components/Copy/Copy.js +2 -2
  103. package/lib/components/DataTable/DataTable.d.ts +12 -20
  104. package/lib/components/DataTable/DataTable.js +1 -9
  105. package/lib/components/DataTable/Table.js +3 -3
  106. package/lib/components/DataTable/TableActionList.d.ts +1 -1
  107. package/lib/components/DataTable/TableBody.js +1 -1
  108. package/lib/components/DataTable/TableContext.d.ts +0 -1
  109. package/lib/components/DataTable/TableHead.d.ts +1 -1
  110. package/lib/components/DataTable/TableToolbarContent.d.ts +1 -1
  111. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +2 -2
  112. package/lib/components/DatePickerInput/DatePickerInput.js +1 -1
  113. package/lib/components/Dropdown/Dropdown.js +1 -2
  114. package/lib/components/FluidForm/FormContext.d.ts +0 -1
  115. package/lib/components/FluidTextInput/FluidTextInput.d.ts +8 -0
  116. package/lib/components/FluidTextInput/FluidTextInput.js +8 -0
  117. package/lib/components/Grid/CSSGrid.js +1 -1
  118. package/lib/components/Grid/Grid.js +1 -1
  119. package/lib/components/Grid/GridTypes.d.ts +0 -1
  120. package/lib/components/Heading/index.d.ts +1 -1
  121. package/lib/components/IconButton/index.d.ts +17 -1
  122. package/lib/components/IconButton/index.js +20 -1
  123. package/lib/components/InlineCheckbox/InlineCheckbox.js +1 -1
  124. package/lib/components/InlineLoading/InlineLoading.d.ts +1 -1
  125. package/lib/components/InlineLoading/InlineLoading.js +20 -6
  126. package/lib/components/Menu/Menu.js +2 -2
  127. package/lib/components/Menu/MenuContext.d.ts +1 -1
  128. package/lib/components/MenuButton/index.d.ts +1 -1
  129. package/lib/components/MenuButton/index.js +1 -2
  130. package/lib/components/Modal/Modal.js +2 -2
  131. package/lib/components/Modal/next/index.d.ts +175 -0
  132. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  133. package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -2
  134. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  135. package/lib/components/MultiSelect/MultiSelect.js +1 -2
  136. package/lib/components/Popover/index.js +2 -3
  137. package/lib/components/PrimaryButton/PrimaryButton.d.ts +1 -1
  138. package/lib/components/RadioTile/RadioTile.d.ts +1 -1
  139. package/lib/components/SecondaryButton/SecondaryButton.d.ts +1 -1
  140. package/lib/components/Slider/Slider.d.ts +1 -1
  141. package/lib/components/Slider/Slider.js +2 -2
  142. package/lib/components/Slider/index.d.ts +0 -1
  143. package/lib/components/Tabs/Tabs.d.ts +3 -3
  144. package/lib/components/Tabs/Tabs.js +6 -6
  145. package/lib/components/Tag/DismissibleTag.d.ts +2 -2
  146. package/lib/components/Tag/OperationalTag.d.ts +1 -1
  147. package/lib/components/Tag/SelectableTag.d.ts +2 -2
  148. package/lib/components/Text/index.d.ts +2 -2
  149. package/lib/components/TextArea/TextArea.js +2 -1
  150. package/lib/components/TextInput/PasswordInput.d.ts +1 -1
  151. package/lib/components/Theme/index.d.ts +1 -1
  152. package/lib/components/Tile/Tile.d.ts +1 -1
  153. package/lib/components/Tile/Tile.js +1 -1
  154. package/lib/components/Toggletip/index.d.ts +3 -3
  155. package/lib/components/Toggletip/index.js +5 -4
  156. package/lib/components/Tooltip/Tooltip.d.ts +17 -1
  157. package/lib/components/Tooltip/Tooltip.js +12 -2
  158. package/lib/components/TreeView/TreeNode.d.ts +27 -19
  159. package/lib/components/TreeView/TreeNode.js +100 -31
  160. package/lib/components/TreeView/TreeView.js +1 -1
  161. package/lib/components/UIShell/Content.d.ts +9 -9
  162. package/lib/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  163. package/lib/components/UIShell/HeaderMenu.d.ts +69 -25
  164. package/lib/components/UIShell/HeaderMenuButton.d.ts +69 -27
  165. package/lib/components/UIShell/HeaderMenuItem.d.ts +4 -3
  166. package/lib/components/UIShell/HeaderMenuItem.js +1 -1
  167. package/lib/components/UIShell/HeaderName.js +1 -1
  168. package/lib/components/UIShell/HeaderNavigation.d.ts +69 -25
  169. package/lib/components/UIShell/Link.d.ts +14 -11
  170. package/lib/components/UIShell/Link.js +4 -4
  171. package/lib/components/UIShell/SideNav.js +3 -3
  172. package/lib/components/UIShell/SideNavLink.js +1 -1
  173. package/lib/components/UIShell/SideNavMenuItem.d.ts +51 -3
  174. package/lib/components/UIShell/SideNavMenuItem.js +6 -6
  175. package/lib/components/UIShell/SwitcherItem.d.ts +2 -2
  176. package/lib/components/UIShell/SwitcherItem.js +1 -1
  177. package/lib/internal/PolymorphicProps.d.ts +0 -1
  178. package/lib/internal/Selection.d.ts +38 -0
  179. package/lib/internal/Selection.js +24 -114
  180. package/lib/node_modules/es-toolkit/dist/compat/function/debounce.mjs.js +59 -0
  181. package/lib/node_modules/es-toolkit/dist/compat/function/throttle.mjs.js +27 -0
  182. package/lib/node_modules/es-toolkit/dist/function/debounce.mjs.js +74 -0
  183. package/lib/tools/wrapComponent.d.ts +1 -1
  184. package/package.json +10 -9
  185. package/es/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +0 -896
  186. package/es/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +0 -76
  187. package/es/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +0 -139
  188. package/lib/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +0 -909
  189. package/lib/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +0 -80
  190. package/lib/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +0 -163
@@ -9,18 +9,14 @@
9
9
 
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
13
12
  var React = require('react');
14
- var PropTypes = require('prop-types');
15
13
  var isEqual = require('react-fast-compare');
16
14
 
17
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
16
 
19
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
21
17
  var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
22
18
 
23
- function callOnChangeHandler(_ref) {
19
+ const callOnChangeHandler = _ref => {
24
20
  let {
25
21
  isControlled,
26
22
  isMounted,
@@ -37,8 +33,8 @@ function callOnChangeHandler(_ref) {
37
33
  } else {
38
34
  onChangeHandlerUncontrolled(selectedItems);
39
35
  }
40
- }
41
- function useSelection(_ref2) {
36
+ };
37
+ const useSelection = _ref2 => {
42
38
  let {
43
39
  disabled,
44
40
  onChange,
@@ -53,28 +49,24 @@ function useSelection(_ref2) {
53
49
  const isControlled = !!controlledItems;
54
50
  const selectedItems = isControlled ? controlledItems : uncontrolledItems;
55
51
  const onItemChange = React.useCallback(item => {
56
- if (disabled) {
57
- return;
58
- }
59
- const allSelectableItems = filteredItems.filter(item => !item.disabled);
60
- const disabledItemCount = filteredItems.filter(item => item.disabled).length;
52
+ if (disabled) return;
53
+
54
+ // Assert special properties (e.g., `disabled`, `isSelectAll`, etc.) are
55
+ // `any` since those properties aren’t part of the generic type.
56
+ const allSelectableItems = filteredItems.filter(item => !item?.disabled);
57
+ const disabledItemCount = filteredItems.filter(item => item?.disabled).length;
61
58
  let newSelectedItems;
62
59
 
63
- //deselect all on click to All/indeterminate option
64
- if (item && item.isSelectAll && selectedItems.length > 0) {
60
+ // deselect all on click to All/indeterminate option
61
+ if (item?.isSelectAll && selectedItems.length > 0) {
65
62
  newSelectedItems = [];
66
63
  }
67
- //select all option
68
- else if (item && item.isSelectAll && selectedItems.length == 0) {
64
+ // select all options
65
+ else if (item?.isSelectAll && selectedItems.length === 0) {
69
66
  newSelectedItems = allSelectableItems;
70
67
  } else {
71
- let selectedIndex;
72
- selectedItems.forEach((selectedItem, index) => {
73
- if (isEqual__default["default"](selectedItem, item)) {
74
- selectedIndex = index;
75
- }
76
- });
77
- if (selectedIndex === undefined) {
68
+ const selectedIndex = selectedItems.findLastIndex(selectedItem => isEqual__default["default"](selectedItem, item));
69
+ if (selectedIndex === -1) {
78
70
  newSelectedItems = selectedItems.concat(item);
79
71
  // checking if all items are selected then We should select mark the 'select All' option as well
80
72
  if (selectAll && filteredItems.length - 1 === newSelectedItems.length + disabledItemCount) {
@@ -82,7 +74,7 @@ function useSelection(_ref2) {
82
74
  }
83
75
  } else {
84
76
  newSelectedItems = removeAtIndex(selectedItems, selectedIndex);
85
- newSelectedItems = newSelectedItems.filter(item => !item.isSelectAll);
77
+ newSelectedItems = newSelectedItems.filter(item => !item?.isSelectAll);
86
78
  }
87
79
  }
88
80
  callOnChangeHandler({
@@ -94,9 +86,7 @@ function useSelection(_ref2) {
94
86
  });
95
87
  }, [disabled, selectedItems, filteredItems, selectAll, isControlled]);
96
88
  const clearSelection = React.useCallback(() => {
97
- if (disabled) {
98
- return;
99
- }
89
+ if (disabled) return;
100
90
  callOnChangeHandler({
101
91
  isControlled,
102
92
  isMounted: isMounted.current,
@@ -122,100 +112,20 @@ function useSelection(_ref2) {
122
112
  };
123
113
  }, []);
124
114
  return {
125
- selectedItems,
115
+ clearSelection,
126
116
  onItemChange,
127
- clearSelection
117
+ selectedItems
128
118
  };
129
- }
130
- class Selection extends React__default["default"].Component {
131
- constructor(props) {
132
- super(props);
133
- _rollupPluginBabelHelpers.defineProperty(this, "internalSetState", (stateToSet, callback) => this.setState(stateToSet, () => {
134
- if (callback) {
135
- callback();
136
- }
137
- if (this.props.onChange) {
138
- this.props.onChange(this.state);
139
- }
140
- }));
141
- _rollupPluginBabelHelpers.defineProperty(this, "handleClearSelection", () => {
142
- if (this.props.disabled) {
143
- return;
144
- }
145
- this.internalSetState({
146
- selectedItems: []
147
- });
148
- });
149
- _rollupPluginBabelHelpers.defineProperty(this, "handleSelectItem", item => {
150
- this.internalSetState(state => ({
151
- selectedItems: state.selectedItems.concat(item)
152
- }));
153
- });
154
- _rollupPluginBabelHelpers.defineProperty(this, "handleRemoveItem", index => {
155
- this.internalSetState(state => ({
156
- selectedItems: removeAtIndex(state.selectedItems, index)
157
- }));
158
- });
159
- _rollupPluginBabelHelpers.defineProperty(this, "handleOnItemChange", item => {
160
- if (this.props.disabled) {
161
- return;
162
- }
163
- const {
164
- selectedItems
165
- } = this.state;
166
- let selectedIndex;
167
- selectedItems.forEach((selectedItem, index) => {
168
- if (isEqual__default["default"](selectedItem, item)) {
169
- selectedIndex = index;
170
- }
171
- });
172
- if (selectedIndex === undefined) {
173
- this.handleSelectItem(item);
174
- return;
175
- }
176
- this.handleRemoveItem(selectedIndex);
177
- });
178
- this.state = {
179
- selectedItems: props.initialSelectedItems
180
- };
181
- }
182
- render() {
183
- const {
184
- children,
185
- render
186
- } = this.props;
187
- const {
188
- selectedItems
189
- } = this.state;
190
- const renderProps = {
191
- selectedItems,
192
- onItemChange: this.handleOnItemChange,
193
- clearSelection: this.handleClearSelection
194
- };
195
- if (render !== undefined) {
196
- return render(renderProps);
197
- }
198
- if (children !== undefined) {
199
- return children(renderProps);
200
- }
201
- return null;
202
- }
203
- }
119
+ };
204
120
 
205
- // Generic utility for safely removing an element at a given index from an
206
- // array.
207
- _rollupPluginBabelHelpers.defineProperty(Selection, "propTypes", {
208
- children: PropTypes__default["default"].func,
209
- disabled: PropTypes__default["default"].bool,
210
- initialSelectedItems: PropTypes__default["default"].array.isRequired,
211
- onChange: PropTypes__default["default"].func,
212
- render: PropTypes__default["default"].func
213
- });
121
+ /**
122
+ * Generic utility for safely removing an element at a given index from an
123
+ * array.
124
+ */
214
125
  const removeAtIndex = (array, index) => {
215
126
  const result = array.slice();
216
127
  result.splice(index, 1);
217
128
  return result;
218
129
  };
219
130
 
220
- exports["default"] = Selection;
221
131
  exports.useSelection = useSelection;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var debounce$1 = require('../../function/debounce.mjs.js');
13
+
14
+ function debounce(func, debounceMs = 0, options = {}) {
15
+ if (typeof options !== 'object') {
16
+ options = {};
17
+ }
18
+ const { signal, leading = false, trailing = true, maxWait } = options;
19
+ const edges = Array(2);
20
+ if (leading) {
21
+ edges[0] = 'leading';
22
+ }
23
+ if (trailing) {
24
+ edges[1] = 'trailing';
25
+ }
26
+ let result = undefined;
27
+ let pendingAt = null;
28
+ const _debounced = debounce$1.debounce(function (...args) {
29
+ result = func.apply(this, args);
30
+ pendingAt = null;
31
+ }, debounceMs, { signal, edges });
32
+ const debounced = function (...args) {
33
+ if (maxWait != null) {
34
+ if (pendingAt === null) {
35
+ pendingAt = Date.now();
36
+ }
37
+ else {
38
+ if (Date.now() - pendingAt >= maxWait) {
39
+ result = func.apply(this, args);
40
+ pendingAt = Date.now();
41
+ _debounced.cancel();
42
+ _debounced.schedule();
43
+ return result;
44
+ }
45
+ }
46
+ }
47
+ _debounced.apply(this, args);
48
+ return result;
49
+ };
50
+ const flush = () => {
51
+ _debounced.flush();
52
+ return result;
53
+ };
54
+ debounced.cancel = _debounced.cancel;
55
+ debounced.flush = flush;
56
+ return debounced;
57
+ }
58
+
59
+ exports.debounce = debounce;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var debounce = require('./debounce.mjs.js');
13
+
14
+ function throttle(func, throttleMs = 0, options = {}) {
15
+ if (typeof options !== 'object') {
16
+ options = {};
17
+ }
18
+ const { leading = true, trailing = true, signal } = options;
19
+ return debounce.debounce(func, throttleMs, {
20
+ leading,
21
+ trailing,
22
+ signal,
23
+ maxWait: throttleMs,
24
+ });
25
+ }
26
+
27
+ exports.throttle = throttle;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ function debounce(func, debounceMs, { signal, edges } = {}) {
13
+ let pendingThis = undefined;
14
+ let pendingArgs = null;
15
+ const leading = edges != null && edges.includes('leading');
16
+ const trailing = edges == null || edges.includes('trailing');
17
+ const invoke = () => {
18
+ if (pendingArgs !== null) {
19
+ func.apply(pendingThis, pendingArgs);
20
+ pendingThis = undefined;
21
+ pendingArgs = null;
22
+ }
23
+ };
24
+ const onTimerEnd = () => {
25
+ if (trailing) {
26
+ invoke();
27
+ }
28
+ cancel();
29
+ };
30
+ let timeoutId = null;
31
+ const schedule = () => {
32
+ if (timeoutId != null) {
33
+ clearTimeout(timeoutId);
34
+ }
35
+ timeoutId = setTimeout(() => {
36
+ timeoutId = null;
37
+ onTimerEnd();
38
+ }, debounceMs);
39
+ };
40
+ const cancelTimer = () => {
41
+ if (timeoutId !== null) {
42
+ clearTimeout(timeoutId);
43
+ timeoutId = null;
44
+ }
45
+ };
46
+ const cancel = () => {
47
+ cancelTimer();
48
+ pendingThis = undefined;
49
+ pendingArgs = null;
50
+ };
51
+ const flush = () => {
52
+ cancelTimer();
53
+ invoke();
54
+ };
55
+ const debounced = function (...args) {
56
+ if (signal?.aborted) {
57
+ return;
58
+ }
59
+ pendingThis = this;
60
+ pendingArgs = args;
61
+ const isFirstCall = timeoutId == null;
62
+ schedule();
63
+ if (leading && isFirstCall) {
64
+ invoke();
65
+ }
66
+ };
67
+ debounced.schedule = schedule;
68
+ debounced.cancel = cancel;
69
+ debounced.flush = flush;
70
+ signal?.addEventListener('abort', cancel, { once: true });
71
+ return debounced;
72
+ }
73
+
74
+ exports.debounce = debounce;
@@ -16,5 +16,5 @@ type WrapComponentArgs<T extends HTMLTagName> = {
16
16
  * @param {{ name: string, type: string, className?: string | (prefix: string) => string }} props
17
17
  * @returns
18
18
  */
19
- declare const wrapComponent: <T extends keyof HTMLElementTagNameMap>({ name, className: getClassName, type, }: WrapComponentArgs<T>) => (props: ReactAttr<T>) => React.ReactElement;
19
+ declare const wrapComponent: <T extends HTMLTagName>({ name, className: getClassName, type, }: WrapComponentArgs<T>) => ((props: ReactAttr<T>) => React.ReactElement);
20
20
  export default wrapComponent;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/react",
3
3
  "description": "React components for the Carbon Design System",
4
- "version": "1.76.0-rc.0",
4
+ "version": "1.77.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -46,15 +46,16 @@
46
46
  "peerDependencies": {
47
47
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0 || ^19.0.0",
48
48
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0 || ^19.0.0",
49
+ "react-is": "^18.3.1 || ^19.0.0",
49
50
  "sass": "^1.33.0"
50
51
  },
51
52
  "dependencies": {
52
53
  "@babel/runtime": "^7.24.7",
53
54
  "@carbon/feature-flags": "^0.24.0",
54
- "@carbon/icons-react": "^11.55.0-rc.0",
55
- "@carbon/layout": "^11.29.0",
56
- "@carbon/styles": "^1.75.0-rc.0",
57
- "@floating-ui/react": "^0.26.0",
55
+ "@carbon/icons-react": "^11.56.0-rc.0",
56
+ "@carbon/layout": "^11.30.0-rc.0",
57
+ "@carbon/styles": "^1.76.0-rc.0",
58
+ "@floating-ui/react": "^0.27.4",
58
59
  "@ibm/telemetry-js": "^1.5.0",
59
60
  "classnames": "2.5.1",
60
61
  "copy-to-clipboard": "^3.3.1",
@@ -64,7 +65,6 @@
64
65
  "invariant": "^2.2.3",
65
66
  "prop-types": "^15.7.2",
66
67
  "react-fast-compare": "^3.2.2",
67
- "react-is": "^18.3.1",
68
68
  "tabbable": "^6.2.0",
69
69
  "use-resize-observer": "^6.0.0",
70
70
  "window-or-global": "^1.0.1"
@@ -79,7 +79,7 @@
79
79
  "@babel/preset-react": "^7.24.7",
80
80
  "@babel/preset-typescript": "^7.24.7",
81
81
  "@carbon/test-utils": "^10.35.0",
82
- "@carbon/themes": "^11.46.0",
82
+ "@carbon/themes": "^11.47.0-rc.0",
83
83
  "@figma/code-connect": "^1.2.4",
84
84
  "@rollup/plugin-babel": "^6.0.0",
85
85
  "@rollup/plugin-commonjs": "^28.0.0",
@@ -119,6 +119,7 @@
119
119
  "prop-types": "^15.7.2",
120
120
  "react": "^18.3.1",
121
121
  "react-dom": "^18.3.1",
122
+ "react-is": "^18.3.1",
122
123
  "remark-gfm": "^4.0.0",
123
124
  "requestanimationframe": "^0.0.23",
124
125
  "rimraf": "^6.0.0",
@@ -130,7 +131,7 @@
130
131
  "storybook-addon-accessibility-checker": "^3.1.61-rc.3",
131
132
  "stream-browserify": "^3.0.0",
132
133
  "style-loader": "^4.0.0",
133
- "typescript-config-carbon": "^0.3.0",
134
+ "typescript-config-carbon": "^0.5.0-rc.0",
134
135
  "webpack": "^5.65.0",
135
136
  "webpack-dev-server": "^5.0.0"
136
137
  },
@@ -145,5 +146,5 @@
145
146
  "**/*.scss",
146
147
  "**/*.css"
147
148
  ],
148
- "gitHead": "9cf96c5f68ef9216d1c73a5dfb7bdb3bd007b0c1"
149
+ "gitHead": "faf649817d3be3e8e258aba866e14e9378b5c68e"
149
150
  }