@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.
- package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +908 -873
- package/es/components/Button/Button.d.ts +9 -1
- package/es/components/Button/Button.js +8 -0
- package/es/components/CodeSnippet/CodeSnippet.d.ts +2 -2
- package/es/components/ComboBox/ComboBox.d.ts +2 -2
- package/es/components/ComboBox/ComboBox.js +36 -13
- package/es/components/ComboButton/index.js +1 -2
- package/es/components/ComposedModal/ComposedModal.js +1 -1
- package/es/components/ContentSwitcher/index.d.ts +0 -1
- package/es/components/ContextMenu/useContextMenu.d.ts +0 -1
- package/es/components/Copy/Copy.js +1 -1
- package/es/components/DataTable/DataTable.d.ts +12 -20
- package/es/components/DataTable/DataTable.js +1 -9
- package/es/components/DataTable/Table.js +1 -1
- package/es/components/DataTable/TableActionList.d.ts +1 -1
- package/es/components/DataTable/TableBody.js +1 -1
- package/es/components/DataTable/TableContext.d.ts +0 -1
- package/es/components/DataTable/TableHead.d.ts +1 -1
- package/es/components/DataTable/TableToolbarContent.d.ts +1 -1
- package/es/components/DatePicker/plugins/fixEventsPlugin.js +2 -2
- package/es/components/DatePickerInput/DatePickerInput.js +1 -1
- package/es/components/Dropdown/Dropdown.js +1 -2
- package/es/components/FluidForm/FormContext.d.ts +0 -1
- package/es/components/FluidTextInput/FluidTextInput.d.ts +8 -0
- package/es/components/FluidTextInput/FluidTextInput.js +8 -0
- package/es/components/Grid/CSSGrid.js +1 -1
- package/es/components/Grid/Grid.js +1 -1
- package/es/components/Grid/GridTypes.d.ts +0 -1
- package/es/components/Heading/index.d.ts +1 -1
- package/es/components/IconButton/index.d.ts +17 -1
- package/es/components/IconButton/index.js +20 -1
- package/es/components/InlineCheckbox/InlineCheckbox.js +1 -1
- package/es/components/InlineLoading/InlineLoading.d.ts +1 -1
- package/es/components/InlineLoading/InlineLoading.js +21 -7
- package/es/components/Menu/Menu.js +2 -2
- package/es/components/Menu/MenuContext.d.ts +1 -1
- package/es/components/MenuButton/index.d.ts +1 -1
- package/es/components/MenuButton/index.js +1 -2
- package/es/components/Modal/Modal.js +1 -1
- package/es/components/Modal/next/index.d.ts +175 -0
- package/es/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
- package/es/components/MultiSelect/FilterableMultiSelect.js +1 -2
- package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
- package/es/components/MultiSelect/MultiSelect.js +1 -2
- package/es/components/Popover/index.js +2 -3
- package/es/components/PrimaryButton/PrimaryButton.d.ts +1 -1
- package/es/components/RadioTile/RadioTile.d.ts +1 -1
- package/es/components/SecondaryButton/SecondaryButton.d.ts +1 -1
- package/es/components/Slider/Slider.d.ts +1 -1
- package/es/components/Slider/Slider.js +1 -1
- package/es/components/Slider/index.d.ts +0 -1
- package/es/components/Tabs/Tabs.d.ts +3 -3
- package/es/components/Tabs/Tabs.js +4 -4
- package/es/components/Tag/DismissibleTag.d.ts +2 -2
- package/es/components/Tag/OperationalTag.d.ts +1 -1
- package/es/components/Tag/SelectableTag.d.ts +2 -2
- package/es/components/Text/index.d.ts +2 -2
- package/es/components/TextArea/TextArea.js +2 -1
- package/es/components/TextInput/PasswordInput.d.ts +1 -1
- package/es/components/Theme/index.d.ts +1 -1
- package/es/components/Tile/Tile.d.ts +1 -1
- package/es/components/Tile/Tile.js +1 -1
- package/es/components/Toggletip/index.d.ts +3 -3
- package/es/components/Toggletip/index.js +5 -4
- package/es/components/Tooltip/Tooltip.d.ts +17 -1
- package/es/components/Tooltip/Tooltip.js +12 -2
- package/es/components/TreeView/TreeNode.d.ts +27 -19
- package/es/components/TreeView/TreeNode.js +100 -31
- package/es/components/TreeView/TreeView.js +1 -1
- package/es/components/UIShell/Content.d.ts +9 -9
- package/es/components/UIShell/HeaderGlobalBar.d.ts +1 -1
- package/es/components/UIShell/HeaderMenu.d.ts +69 -25
- package/es/components/UIShell/HeaderMenuButton.d.ts +69 -27
- package/es/components/UIShell/HeaderMenuItem.d.ts +4 -3
- package/es/components/UIShell/HeaderMenuItem.js +1 -1
- package/es/components/UIShell/HeaderName.js +1 -1
- package/es/components/UIShell/HeaderNavigation.d.ts +69 -25
- package/es/components/UIShell/Link.d.ts +14 -11
- package/es/components/UIShell/Link.js +5 -6
- package/es/components/UIShell/SideNav.js +3 -3
- package/es/components/UIShell/SideNavLink.js +1 -1
- package/es/components/UIShell/SideNavMenuItem.d.ts +51 -3
- package/es/components/UIShell/SideNavMenuItem.js +6 -6
- package/es/components/UIShell/SwitcherItem.d.ts +2 -2
- package/es/components/UIShell/SwitcherItem.js +1 -1
- package/es/internal/PolymorphicProps.d.ts +0 -1
- package/es/internal/Selection.d.ts +38 -0
- package/es/internal/Selection.js +26 -113
- package/es/node_modules/es-toolkit/dist/compat/function/debounce.mjs.js +55 -0
- package/es/node_modules/es-toolkit/dist/compat/function/throttle.mjs.js +23 -0
- package/es/node_modules/es-toolkit/dist/function/debounce.mjs.js +70 -0
- package/es/tools/wrapComponent.d.ts +1 -1
- package/lib/components/Button/Button.d.ts +9 -1
- package/lib/components/Button/Button.js +8 -0
- package/lib/components/CodeSnippet/CodeSnippet.d.ts +2 -2
- package/lib/components/ComboBox/ComboBox.d.ts +2 -2
- package/lib/components/ComboBox/ComboBox.js +36 -13
- package/lib/components/ComboButton/index.js +1 -2
- package/lib/components/ComposedModal/ComposedModal.js +2 -2
- package/lib/components/ContentSwitcher/index.d.ts +0 -1
- package/lib/components/ContextMenu/useContextMenu.d.ts +0 -1
- package/lib/components/Copy/Copy.js +2 -2
- package/lib/components/DataTable/DataTable.d.ts +12 -20
- package/lib/components/DataTable/DataTable.js +1 -9
- package/lib/components/DataTable/Table.js +3 -3
- package/lib/components/DataTable/TableActionList.d.ts +1 -1
- package/lib/components/DataTable/TableBody.js +1 -1
- package/lib/components/DataTable/TableContext.d.ts +0 -1
- package/lib/components/DataTable/TableHead.d.ts +1 -1
- package/lib/components/DataTable/TableToolbarContent.d.ts +1 -1
- package/lib/components/DatePicker/plugins/fixEventsPlugin.js +2 -2
- package/lib/components/DatePickerInput/DatePickerInput.js +1 -1
- package/lib/components/Dropdown/Dropdown.js +1 -2
- package/lib/components/FluidForm/FormContext.d.ts +0 -1
- package/lib/components/FluidTextInput/FluidTextInput.d.ts +8 -0
- package/lib/components/FluidTextInput/FluidTextInput.js +8 -0
- package/lib/components/Grid/CSSGrid.js +1 -1
- package/lib/components/Grid/Grid.js +1 -1
- package/lib/components/Grid/GridTypes.d.ts +0 -1
- package/lib/components/Heading/index.d.ts +1 -1
- package/lib/components/IconButton/index.d.ts +17 -1
- package/lib/components/IconButton/index.js +20 -1
- package/lib/components/InlineCheckbox/InlineCheckbox.js +1 -1
- package/lib/components/InlineLoading/InlineLoading.d.ts +1 -1
- package/lib/components/InlineLoading/InlineLoading.js +20 -6
- package/lib/components/Menu/Menu.js +2 -2
- package/lib/components/Menu/MenuContext.d.ts +1 -1
- package/lib/components/MenuButton/index.d.ts +1 -1
- package/lib/components/MenuButton/index.js +1 -2
- package/lib/components/Modal/Modal.js +2 -2
- package/lib/components/Modal/next/index.d.ts +175 -0
- package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
- package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -2
- package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
- package/lib/components/MultiSelect/MultiSelect.js +1 -2
- package/lib/components/Popover/index.js +2 -3
- package/lib/components/PrimaryButton/PrimaryButton.d.ts +1 -1
- package/lib/components/RadioTile/RadioTile.d.ts +1 -1
- package/lib/components/SecondaryButton/SecondaryButton.d.ts +1 -1
- package/lib/components/Slider/Slider.d.ts +1 -1
- package/lib/components/Slider/Slider.js +2 -2
- package/lib/components/Slider/index.d.ts +0 -1
- package/lib/components/Tabs/Tabs.d.ts +3 -3
- package/lib/components/Tabs/Tabs.js +6 -6
- package/lib/components/Tag/DismissibleTag.d.ts +2 -2
- package/lib/components/Tag/OperationalTag.d.ts +1 -1
- package/lib/components/Tag/SelectableTag.d.ts +2 -2
- package/lib/components/Text/index.d.ts +2 -2
- package/lib/components/TextArea/TextArea.js +2 -1
- package/lib/components/TextInput/PasswordInput.d.ts +1 -1
- package/lib/components/Theme/index.d.ts +1 -1
- package/lib/components/Tile/Tile.d.ts +1 -1
- package/lib/components/Tile/Tile.js +1 -1
- package/lib/components/Toggletip/index.d.ts +3 -3
- package/lib/components/Toggletip/index.js +5 -4
- package/lib/components/Tooltip/Tooltip.d.ts +17 -1
- package/lib/components/Tooltip/Tooltip.js +12 -2
- package/lib/components/TreeView/TreeNode.d.ts +27 -19
- package/lib/components/TreeView/TreeNode.js +100 -31
- package/lib/components/TreeView/TreeView.js +1 -1
- package/lib/components/UIShell/Content.d.ts +9 -9
- package/lib/components/UIShell/HeaderGlobalBar.d.ts +1 -1
- package/lib/components/UIShell/HeaderMenu.d.ts +69 -25
- package/lib/components/UIShell/HeaderMenuButton.d.ts +69 -27
- package/lib/components/UIShell/HeaderMenuItem.d.ts +4 -3
- package/lib/components/UIShell/HeaderMenuItem.js +1 -1
- package/lib/components/UIShell/HeaderName.js +1 -1
- package/lib/components/UIShell/HeaderNavigation.d.ts +69 -25
- package/lib/components/UIShell/Link.d.ts +14 -11
- package/lib/components/UIShell/Link.js +4 -4
- package/lib/components/UIShell/SideNav.js +3 -3
- package/lib/components/UIShell/SideNavLink.js +1 -1
- package/lib/components/UIShell/SideNavMenuItem.d.ts +51 -3
- package/lib/components/UIShell/SideNavMenuItem.js +6 -6
- package/lib/components/UIShell/SwitcherItem.d.ts +2 -2
- package/lib/components/UIShell/SwitcherItem.js +1 -1
- package/lib/internal/PolymorphicProps.d.ts +0 -1
- package/lib/internal/Selection.d.ts +38 -0
- package/lib/internal/Selection.js +24 -114
- package/lib/node_modules/es-toolkit/dist/compat/function/debounce.mjs.js +59 -0
- package/lib/node_modules/es-toolkit/dist/compat/function/throttle.mjs.js +27 -0
- package/lib/node_modules/es-toolkit/dist/function/debounce.mjs.js +74 -0
- package/lib/tools/wrapComponent.d.ts +1 -1
- package/package.json +10 -9
- package/es/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +0 -896
- package/es/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +0 -76
- package/es/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +0 -139
- package/lib/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +0 -909
- package/lib/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +0 -80
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
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
|
|
60
|
+
// deselect all on click to All/indeterminate option
|
|
61
|
+
if (item?.isSelectAll && selectedItems.length > 0) {
|
|
65
62
|
newSelectedItems = [];
|
|
66
63
|
}
|
|
67
|
-
//select all
|
|
68
|
-
else if (item
|
|
64
|
+
// select all options
|
|
65
|
+
else if (item?.isSelectAll && selectedItems.length === 0) {
|
|
69
66
|
newSelectedItems = allSelectableItems;
|
|
70
67
|
} else {
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
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
|
-
|
|
115
|
+
clearSelection,
|
|
126
116
|
onItemChange,
|
|
127
|
-
|
|
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
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
|
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.
|
|
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
|
-
"@carbon/layout": "^11.
|
|
56
|
-
"@carbon/styles": "^1.
|
|
57
|
-
"@floating-ui/react": "^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.
|
|
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.
|
|
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": "
|
|
149
|
+
"gitHead": "faf649817d3be3e8e258aba866e14e9378b5c68e"
|
|
149
150
|
}
|