@carbon/react 1.52.0 → 1.53.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 +1617 -1393
- package/es/components/Accordion/AccordionItem.js +1 -1
- package/es/components/CodeSnippet/CodeSnippet.js +2 -2
- package/es/components/Copy/Copy.d.ts +74 -0
- package/es/components/Copy/Copy.js +1 -1
- package/es/components/Copy/index.d.ts +9 -0
- package/es/components/CopyButton/CopyButton.d.ts +71 -0
- package/es/components/CopyButton/index.d.ts +9 -0
- package/es/components/Dropdown/Dropdown.Skeleton.d.ts +11 -0
- package/es/components/Dropdown/Dropdown.Skeleton.js +11 -6
- package/es/components/FileUploader/FileUploaderItem.d.ts +1 -1
- package/es/components/FileUploader/FileUploaderItem.js +2 -1
- package/es/components/Notification/Notification.d.ts +2 -2
- package/es/components/Notification/Notification.js +2 -1
- package/es/components/OverflowMenu/OverflowMenu.js +13 -1
- package/es/components/RadioTile/RadioTile.js +16 -3
- package/es/components/Tag/DismissibleTag.d.ts +104 -0
- package/es/components/Tag/OperationalTag.d.ts +101 -0
- package/es/components/Tag/SelectableTag.d.ts +87 -0
- package/es/components/Tag/Tag.d.ts +17 -12
- package/es/components/Tag/Tag.js +25 -17
- package/es/components/Tag/index.d.ts +0 -1
- package/es/components/Toggle/Toggle.js +3 -1
- package/es/components/Toggletip/index.d.ts +5 -3
- package/es/components/Toggletip/index.js +13 -2
- package/es/components/Tooltip/DefinitionTooltip.js +3 -0
- package/es/feature-flags.js +2 -1
- package/es/index.js +3 -3
- package/es/internal/Selection.js +15 -21
- package/lib/components/Accordion/AccordionItem.js +1 -1
- package/lib/components/CodeSnippet/CodeSnippet.js +2 -2
- package/lib/components/Copy/Copy.d.ts +74 -0
- package/lib/components/Copy/Copy.js +1 -1
- package/lib/components/Copy/index.d.ts +9 -0
- package/lib/components/CopyButton/CopyButton.d.ts +71 -0
- package/lib/components/CopyButton/index.d.ts +9 -0
- package/lib/components/Dropdown/Dropdown.Skeleton.d.ts +11 -0
- package/lib/components/Dropdown/Dropdown.Skeleton.js +11 -6
- package/lib/components/FileUploader/FileUploaderItem.d.ts +1 -1
- package/lib/components/FileUploader/FileUploaderItem.js +2 -1
- package/lib/components/Notification/Notification.d.ts +2 -2
- package/lib/components/Notification/Notification.js +2 -1
- package/lib/components/OverflowMenu/OverflowMenu.js +13 -1
- package/lib/components/RadioTile/RadioTile.js +15 -2
- package/lib/components/Tag/DismissibleTag.d.ts +104 -0
- package/lib/components/Tag/OperationalTag.d.ts +101 -0
- package/lib/components/Tag/SelectableTag.d.ts +87 -0
- package/lib/components/Tag/Tag.d.ts +17 -12
- package/lib/components/Tag/Tag.js +26 -17
- package/lib/components/Tag/index.d.ts +0 -1
- package/lib/components/Toggle/Toggle.js +3 -1
- package/lib/components/Toggletip/index.d.ts +5 -3
- package/lib/components/Toggletip/index.js +13 -2
- package/lib/components/Tooltip/DefinitionTooltip.js +3 -0
- package/lib/feature-flags.js +2 -1
- package/lib/index.js +4 -5
- package/lib/internal/Selection.js +14 -20
- package/package.json +8 -8
|
@@ -17,6 +17,7 @@ var iconsReact = require('@carbon/icons-react');
|
|
|
17
17
|
var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
|
|
18
18
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
19
19
|
require('../Text/index.js');
|
|
20
|
+
var deprecate = require('../../prop-types/deprecate.js');
|
|
20
21
|
var Text = require('../Text/Text.js');
|
|
21
22
|
|
|
22
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -41,6 +42,11 @@ const TYPES = {
|
|
|
41
42
|
'high-contrast': 'High-Contrast',
|
|
42
43
|
outline: 'Outline'
|
|
43
44
|
};
|
|
45
|
+
const SIZES = {
|
|
46
|
+
sm: 'sm',
|
|
47
|
+
md: 'md',
|
|
48
|
+
lg: 'lg'
|
|
49
|
+
};
|
|
44
50
|
const Tag = _ref => {
|
|
45
51
|
let {
|
|
46
52
|
children,
|
|
@@ -48,10 +54,13 @@ const Tag = _ref => {
|
|
|
48
54
|
id,
|
|
49
55
|
type,
|
|
50
56
|
filter,
|
|
57
|
+
// remove filter in next major release - V12
|
|
51
58
|
renderIcon: CustomIconElement,
|
|
52
59
|
title = 'Clear filter',
|
|
60
|
+
// remove title in next major release - V12
|
|
53
61
|
disabled,
|
|
54
62
|
onClose,
|
|
63
|
+
// remove onClose in next major release - V12
|
|
55
64
|
size,
|
|
56
65
|
as: BaseComponent,
|
|
57
66
|
slug,
|
|
@@ -59,6 +68,8 @@ const Tag = _ref => {
|
|
|
59
68
|
} = _ref;
|
|
60
69
|
const prefix = usePrefix.usePrefix();
|
|
61
70
|
const tagId = id || `tag-${getInstanceId()}`;
|
|
71
|
+
const conditions = [`${prefix}--tag--selectable`, `${prefix}--tag--filter`, `${prefix}--tag--operational`];
|
|
72
|
+
const isInteractiveTag = conditions.some(el => className?.includes(el));
|
|
62
73
|
const tagClasses = cx__default["default"](`${prefix}--tag`, className, {
|
|
63
74
|
[`${prefix}--tag--disabled`]: disabled,
|
|
64
75
|
[`${prefix}--tag--filter`]: filter,
|
|
@@ -66,7 +77,7 @@ const Tag = _ref => {
|
|
|
66
77
|
// TODO: V12 - Remove this class
|
|
67
78
|
[`${prefix}--layout--size-${size}`]: size,
|
|
68
79
|
[`${prefix}--tag--${type}`]: type,
|
|
69
|
-
[`${prefix}--tag--interactive`]: other.onClick && !
|
|
80
|
+
[`${prefix}--tag--interactive`]: other.onClick && !isInteractiveTag
|
|
70
81
|
});
|
|
71
82
|
const typeText = type !== undefined && type in Object.keys(TYPES) ? TYPES[type] : '';
|
|
72
83
|
const handleClose = event => {
|
|
@@ -78,7 +89,7 @@ const Tag = _ref => {
|
|
|
78
89
|
|
|
79
90
|
// Slug is always size `md` and `inline`
|
|
80
91
|
let normalizedSlug;
|
|
81
|
-
if (slug && slug['type']?.displayName === 'Slug') {
|
|
92
|
+
if (slug && slug['type']?.displayName === 'Slug' && !isInteractiveTag) {
|
|
82
93
|
normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
|
|
83
94
|
size: 'sm',
|
|
84
95
|
kind: 'inline'
|
|
@@ -89,7 +100,7 @@ const Tag = _ref => {
|
|
|
89
100
|
return /*#__PURE__*/React__default["default"].createElement(ComponentTag, _rollupPluginBabelHelpers["extends"]({
|
|
90
101
|
className: tagClasses,
|
|
91
102
|
id: tagId
|
|
92
|
-
}, other), CustomIconElement ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
103
|
+
}, other), CustomIconElement && size !== 'sm' ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
93
104
|
className: `${prefix}--tag__custom-icon`
|
|
94
105
|
}, /*#__PURE__*/React__default["default"].createElement(CustomIconElement, null)) : '', /*#__PURE__*/React__default["default"].createElement(Text.Text, {
|
|
95
106
|
className: `${prefix}--tag__label`,
|
|
@@ -103,16 +114,14 @@ const Tag = _ref => {
|
|
|
103
114
|
title: title
|
|
104
115
|
}, _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null))));
|
|
105
116
|
}
|
|
106
|
-
const ComponentTag = BaseComponent ?? (other.onClick ? 'button' : 'div');
|
|
117
|
+
const ComponentTag = BaseComponent ?? (other.onClick || className?.includes(`${prefix}--tag--operational`) ? 'button' : 'div');
|
|
107
118
|
return /*#__PURE__*/React__default["default"].createElement(ComponentTag, _rollupPluginBabelHelpers["extends"]({
|
|
108
|
-
disabled:
|
|
119
|
+
disabled: disabled,
|
|
109
120
|
className: tagClasses,
|
|
110
121
|
id: tagId
|
|
111
|
-
}, other), CustomIconElement ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
122
|
+
}, other), CustomIconElement && size !== 'sm' ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
112
123
|
className: `${prefix}--tag__custom-icon`
|
|
113
|
-
}, /*#__PURE__*/React__default["default"].createElement(CustomIconElement, null)) : '', /*#__PURE__*/React__default["default"].createElement(Text.Text,
|
|
114
|
-
title: typeof children === 'string' ? children : undefined
|
|
115
|
-
}, children !== null && children !== undefined ? children : typeText), normalizedSlug);
|
|
124
|
+
}, /*#__PURE__*/React__default["default"].createElement(CustomIconElement, null)) : '', /*#__PURE__*/React__default["default"].createElement(Text.Text, null, children !== null && children !== undefined ? children : typeText), normalizedSlug);
|
|
116
125
|
};
|
|
117
126
|
Tag.propTypes = {
|
|
118
127
|
/**
|
|
@@ -135,7 +144,7 @@ Tag.propTypes = {
|
|
|
135
144
|
/**
|
|
136
145
|
* Determine if `Tag` is a filter/chip
|
|
137
146
|
*/
|
|
138
|
-
filter: PropTypes__default["default"].bool,
|
|
147
|
+
filter: deprecate["default"](PropTypes__default["default"].bool, 'This property is deprecated and will be removed in the next major version. Use DismissibleTag instead.'),
|
|
139
148
|
/**
|
|
140
149
|
* Specify the id for the tag.
|
|
141
150
|
*/
|
|
@@ -143,17 +152,17 @@ Tag.propTypes = {
|
|
|
143
152
|
/**
|
|
144
153
|
* Click handler for filter tag close button.
|
|
145
154
|
*/
|
|
146
|
-
onClose: PropTypes__default["default"].func,
|
|
155
|
+
onClose: deprecate["default"](PropTypes__default["default"].func, 'This property is deprecated and will be removed in the next major version. Use DismissibleTag instead.'),
|
|
147
156
|
/**
|
|
148
157
|
* Optional prop to render a custom icon.
|
|
149
158
|
* Can be a React component class
|
|
150
159
|
*/
|
|
151
160
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
152
161
|
/**
|
|
153
|
-
* Specify the size of the Tag. Currently supports either `sm
|
|
154
|
-
*
|
|
162
|
+
* Specify the size of the Tag. Currently supports either `sm`,
|
|
163
|
+
* `md` (default) or `lg` sizes.
|
|
155
164
|
*/
|
|
156
|
-
size: PropTypes__default["default"].oneOf(
|
|
165
|
+
size: PropTypes__default["default"].oneOf(Object.keys(SIZES)),
|
|
157
166
|
/**
|
|
158
167
|
* **Experimental:** Provide a `Slug` component to be rendered inside the `Tag` component
|
|
159
168
|
*/
|
|
@@ -161,13 +170,13 @@ Tag.propTypes = {
|
|
|
161
170
|
/**
|
|
162
171
|
* Text to show on clear filters
|
|
163
172
|
*/
|
|
164
|
-
title: PropTypes__default["default"].string,
|
|
173
|
+
title: deprecate["default"](PropTypes__default["default"].string, 'This property is deprecated and will be removed in the next major version. Use DismissibleTag instead.'),
|
|
165
174
|
/**
|
|
166
175
|
* Specify the type of the `Tag`
|
|
167
176
|
*/
|
|
168
177
|
type: PropTypes__default["default"].oneOf(Object.keys(TYPES))
|
|
169
178
|
};
|
|
170
|
-
const types = Object.keys(TYPES);
|
|
171
179
|
|
|
180
|
+
exports.SIZES = SIZES;
|
|
181
|
+
exports.TYPES = TYPES;
|
|
172
182
|
exports["default"] = Tag;
|
|
173
|
-
exports.types = types;
|
|
@@ -75,6 +75,7 @@ function Toggle(_ref) {
|
|
|
75
75
|
const switchClasses = cx__default["default"](`${prefix}--toggle__switch`, {
|
|
76
76
|
[`${prefix}--toggle__switch--checked`]: checked
|
|
77
77
|
});
|
|
78
|
+
const labelId = `${id}_label`;
|
|
78
79
|
return (
|
|
79
80
|
/*#__PURE__*/
|
|
80
81
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
|
|
@@ -98,10 +99,11 @@ function Toggle(_ref) {
|
|
|
98
99
|
role: "switch",
|
|
99
100
|
type: "button",
|
|
100
101
|
"aria-checked": checked,
|
|
101
|
-
"aria-labelledby":
|
|
102
|
+
"aria-labelledby": ariaLabelledby ?? labelId,
|
|
102
103
|
disabled: disabled,
|
|
103
104
|
onClick: handleClick
|
|
104
105
|
})), /*#__PURE__*/React__default["default"].createElement(LabelComponent, {
|
|
106
|
+
id: labelId,
|
|
105
107
|
htmlFor: ariaLabelledby ? undefined : id,
|
|
106
108
|
className: `${prefix}--toggle__label`
|
|
107
109
|
}, labelText && /*#__PURE__*/React__default["default"].createElement(Text.Text, {
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
|
-
import { type ElementType, type ReactNode } from 'react';
|
|
8
|
+
import React, { type ElementType, type ReactNode } from 'react';
|
|
9
9
|
import { type PopoverAlignment } from '../Popover';
|
|
10
|
+
import { PolymorphicProps } from '../../types/common';
|
|
10
11
|
type ToggletipLabelProps<E extends ElementType> = {
|
|
11
12
|
as?: E | undefined;
|
|
12
13
|
children?: ReactNode;
|
|
@@ -78,16 +79,17 @@ export declare namespace Toggletip {
|
|
|
78
79
|
defaultOpen: PropTypes.Requireable<boolean>;
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
|
-
interface
|
|
82
|
+
interface ToggletipButtonBaseProps {
|
|
82
83
|
children?: ReactNode;
|
|
83
84
|
className?: string | undefined;
|
|
84
85
|
label?: string | undefined;
|
|
85
86
|
}
|
|
87
|
+
export type ToggleTipButtonProps<T extends React.ElementType> = PolymorphicProps<T, ToggletipButtonBaseProps>;
|
|
86
88
|
/**
|
|
87
89
|
* `ToggletipButton` controls the visibility of the Toggletip through mouse
|
|
88
90
|
* clicks and keyboard interactions.
|
|
89
91
|
*/
|
|
90
|
-
export declare function ToggletipButton({ children, className: customClassName, label, }:
|
|
92
|
+
export declare function ToggletipButton<T extends React.ElementType>({ children, className: customClassName, label, as: BaseComponent, ...rest }: ToggleTipButtonProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
91
93
|
export declare namespace ToggletipButton {
|
|
92
94
|
var propTypes: {
|
|
93
95
|
/**
|
|
@@ -102,6 +102,9 @@ function Toggletip(_ref2) {
|
|
|
102
102
|
},
|
|
103
103
|
contentProps: {
|
|
104
104
|
id
|
|
105
|
+
},
|
|
106
|
+
onClick: {
|
|
107
|
+
onClick: actions.toggle
|
|
105
108
|
}
|
|
106
109
|
};
|
|
107
110
|
const onKeyDown = event => {
|
|
@@ -189,16 +192,24 @@ function ToggletipButton(_ref3) {
|
|
|
189
192
|
let {
|
|
190
193
|
children,
|
|
191
194
|
className: customClassName,
|
|
192
|
-
label = 'Show information'
|
|
195
|
+
label = 'Show information',
|
|
196
|
+
as: BaseComponent,
|
|
197
|
+
...rest
|
|
193
198
|
} = _ref3;
|
|
194
199
|
const toggletip = useToggletip();
|
|
195
200
|
const prefix = usePrefix.usePrefix();
|
|
196
201
|
const className = cx__default["default"](`${prefix}--toggletip-button`, customClassName);
|
|
202
|
+
const ComponentToggle = BaseComponent ?? 'button';
|
|
203
|
+
if (ComponentToggle !== 'button') {
|
|
204
|
+
return /*#__PURE__*/React__default["default"].createElement(ComponentToggle, _rollupPluginBabelHelpers["extends"]({}, toggletip?.onClick, {
|
|
205
|
+
className: className
|
|
206
|
+
}, rest), children);
|
|
207
|
+
}
|
|
197
208
|
return /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({}, toggletip?.buttonProps, {
|
|
198
209
|
"aria-label": label,
|
|
199
210
|
type: "button",
|
|
200
211
|
className: className
|
|
201
|
-
}), children);
|
|
212
|
+
}, rest), children);
|
|
202
213
|
}
|
|
203
214
|
ToggletipButton.propTypes = {
|
|
204
215
|
/**
|
|
@@ -59,6 +59,9 @@ const DefinitionTooltip = _ref => {
|
|
|
59
59
|
onMouseEnter: () => {
|
|
60
60
|
openOnHover ? setOpen(true) : null;
|
|
61
61
|
},
|
|
62
|
+
onFocus: () => {
|
|
63
|
+
setOpen(true);
|
|
64
|
+
},
|
|
62
65
|
open: isOpen
|
|
63
66
|
}, /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({}, rest, {
|
|
64
67
|
className: cx__default["default"](`${prefix}--definition-term`, triggerClassName),
|
package/lib/feature-flags.js
CHANGED
|
@@ -33,5 +33,6 @@ FeatureFlags__namespace.merge({
|
|
|
33
33
|
'enable-css-custom-properties': true,
|
|
34
34
|
'enable-css-grid': true,
|
|
35
35
|
'enable-v11-release': true,
|
|
36
|
-
'enable-experimental-tile-contrast': false
|
|
36
|
+
'enable-experimental-tile-contrast': false,
|
|
37
|
+
'enable-v12-tile-radio-icons': false
|
|
37
38
|
});
|
package/lib/index.js
CHANGED
|
@@ -29,6 +29,8 @@ var ComposedModal = require('./components/ComposedModal/ComposedModal.js');
|
|
|
29
29
|
var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
|
|
30
30
|
var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
|
|
31
31
|
var index$6 = require('./components/ContentSwitcher/index.js');
|
|
32
|
+
var Copy = require('./components/Copy/Copy.js');
|
|
33
|
+
var CopyButton = require('./components/CopyButton/CopyButton.js');
|
|
32
34
|
var DangerButton = require('./components/DangerButton/DangerButton.js');
|
|
33
35
|
require('./components/DataTable/index.js');
|
|
34
36
|
var DataTableSkeleton = require('./components/DataTableSkeleton/DataTableSkeleton.js');
|
|
@@ -173,8 +175,6 @@ var CodeSnippet = require('./components/CodeSnippet/CodeSnippet.js');
|
|
|
173
175
|
var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
|
|
174
176
|
var ContainedList = require('./components/ContainedList/ContainedList.js');
|
|
175
177
|
var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
|
|
176
|
-
var Copy = require('./components/Copy/Copy.js');
|
|
177
|
-
var CopyButton = require('./components/CopyButton/CopyButton.js');
|
|
178
178
|
var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
|
|
179
179
|
var TextInput_Skeleton = require('./components/TextInput/TextInput.Skeleton.js');
|
|
180
180
|
var TextInput = require('./components/TextInput/TextInput.js');
|
|
@@ -255,6 +255,8 @@ exports.ModalBody = ComposedModal.ModalBody;
|
|
|
255
255
|
exports.ModalHeader = ModalHeader.ModalHeader;
|
|
256
256
|
exports.ModalFooter = ModalFooter.ModalFooter;
|
|
257
257
|
exports.ContentSwitcher = index$6["default"];
|
|
258
|
+
exports.Copy = Copy["default"];
|
|
259
|
+
exports.CopyButton = CopyButton["default"];
|
|
258
260
|
exports.DangerButton = DangerButton["default"];
|
|
259
261
|
exports.DataTableSkeleton = DataTableSkeleton["default"];
|
|
260
262
|
exports.DatePicker = DatePicker["default"];
|
|
@@ -347,7 +349,6 @@ exports.Tabs = Tabs.Tabs;
|
|
|
347
349
|
exports.TabContent = TabContent["default"];
|
|
348
350
|
exports.TabsSkeleton = Tabs_Skeleton["default"];
|
|
349
351
|
exports.Tag = Tag["default"];
|
|
350
|
-
exports.types = Tag.types;
|
|
351
352
|
exports.TagSkeleton = Tag_Skeleton["default"];
|
|
352
353
|
exports.TextArea = TextArea["default"];
|
|
353
354
|
exports.TextAreaSkeleton = TextArea_Skeleton["default"];
|
|
@@ -439,8 +440,6 @@ exports.CodeSnippet = CodeSnippet["default"];
|
|
|
439
440
|
exports.ContainedListItem = ContainedListItem["default"];
|
|
440
441
|
exports.ContainedList = ContainedList["default"];
|
|
441
442
|
exports.useContextMenu = useContextMenu["default"];
|
|
442
|
-
exports.Copy = Copy["default"];
|
|
443
|
-
exports.CopyButton = CopyButton["default"];
|
|
444
443
|
exports.SliderSkeleton = Slider_Skeleton["default"];
|
|
445
444
|
exports.TextInputSkeleton = TextInput_Skeleton["default"];
|
|
446
445
|
exports.TextInput = TextInput["default"];
|
|
@@ -49,7 +49,16 @@ function useSelection(_ref2) {
|
|
|
49
49
|
const savedOnChange = React.useRef(onChange);
|
|
50
50
|
const [uncontrolledItems, setUncontrolledItems] = React.useState(initialSelectedItems);
|
|
51
51
|
const isControlled = !!controlledItems;
|
|
52
|
-
const selectedItems = isControlled ? controlledItems : uncontrolledItems;
|
|
52
|
+
const [selectedItems, setSelectedItems] = React.useState(isControlled ? controlledItems : uncontrolledItems);
|
|
53
|
+
React.useEffect(() => {
|
|
54
|
+
callOnChangeHandler({
|
|
55
|
+
isControlled,
|
|
56
|
+
isMounted: isMounted.current,
|
|
57
|
+
onChangeHandlerControlled: savedOnChange.current,
|
|
58
|
+
onChangeHandlerUncontrolled: setUncontrolledItems,
|
|
59
|
+
selectedItems: selectedItems
|
|
60
|
+
});
|
|
61
|
+
}, [isControlled, isMounted, selectedItems]);
|
|
53
62
|
const onItemChange = React.useCallback(item => {
|
|
54
63
|
if (disabled) {
|
|
55
64
|
return;
|
|
@@ -60,27 +69,12 @@ function useSelection(_ref2) {
|
|
|
60
69
|
selectedIndex = index;
|
|
61
70
|
}
|
|
62
71
|
});
|
|
63
|
-
let newSelectedItems;
|
|
64
72
|
if (selectedIndex === undefined) {
|
|
65
|
-
|
|
66
|
-
callOnChangeHandler({
|
|
67
|
-
isControlled,
|
|
68
|
-
isMounted: isMounted.current,
|
|
69
|
-
onChangeHandlerControlled: savedOnChange.current,
|
|
70
|
-
onChangeHandlerUncontrolled: setUncontrolledItems,
|
|
71
|
-
selectedItems: newSelectedItems
|
|
72
|
-
});
|
|
73
|
+
setSelectedItems(selectedItems => selectedItems.concat(item));
|
|
73
74
|
return;
|
|
74
75
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
isControlled,
|
|
78
|
-
isMounted: isMounted.current,
|
|
79
|
-
onChangeHandlerControlled: savedOnChange.current,
|
|
80
|
-
onChangeHandlerUncontrolled: setUncontrolledItems,
|
|
81
|
-
selectedItems: newSelectedItems
|
|
82
|
-
});
|
|
83
|
-
}, [disabled, isControlled, selectedItems]);
|
|
76
|
+
setSelectedItems(selectedItems => removeAtIndex(selectedItems, selectedIndex));
|
|
77
|
+
}, [disabled, selectedItems]);
|
|
84
78
|
const clearSelection = React.useCallback(() => {
|
|
85
79
|
if (disabled) {
|
|
86
80
|
return;
|
|
@@ -90,7 +84,7 @@ function useSelection(_ref2) {
|
|
|
90
84
|
isMounted: isMounted.current,
|
|
91
85
|
onChangeHandlerControlled: savedOnChange.current,
|
|
92
86
|
onChangeHandlerUncontrolled: setUncontrolledItems,
|
|
93
|
-
selectedItems: []
|
|
87
|
+
selectedItems: setSelectedItems([])
|
|
94
88
|
});
|
|
95
89
|
}, [disabled, isControlled]);
|
|
96
90
|
React.useEffect(() => {
|
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.53.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "es/index.js",
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@babel/runtime": "^7.18.3",
|
|
51
|
-
"@carbon/feature-flags": "^0.
|
|
52
|
-
"@carbon/icons-react": "^11.
|
|
53
|
-
"@carbon/layout": "^11.
|
|
54
|
-
"@carbon/styles": "^1.
|
|
51
|
+
"@carbon/feature-flags": "^0.18.0",
|
|
52
|
+
"@carbon/icons-react": "^11.38.0",
|
|
53
|
+
"@carbon/layout": "^11.21.0",
|
|
54
|
+
"@carbon/styles": "^1.53.0",
|
|
55
55
|
"@ibm/telemetry-js": "^1.2.1",
|
|
56
56
|
"classnames": "2.5.1",
|
|
57
57
|
"copy-to-clipboard": "^3.3.1",
|
|
58
|
-
"downshift": "8.
|
|
58
|
+
"downshift": "8.4.0",
|
|
59
59
|
"flatpickr": "4.6.13",
|
|
60
60
|
"invariant": "^2.2.3",
|
|
61
61
|
"lodash.debounce": "^4.0.8",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"@babel/preset-react": "^7.22.3",
|
|
80
80
|
"@babel/preset-typescript": "^7.21.5",
|
|
81
81
|
"@carbon/test-utils": "^10.30.0",
|
|
82
|
-
"@carbon/themes": "^11.
|
|
82
|
+
"@carbon/themes": "^11.33.0",
|
|
83
83
|
"@rollup/plugin-babel": "^6.0.0",
|
|
84
84
|
"@rollup/plugin-commonjs": "^25.0.0",
|
|
85
85
|
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
@@ -139,5 +139,5 @@
|
|
|
139
139
|
"**/*.scss",
|
|
140
140
|
"**/*.css"
|
|
141
141
|
],
|
|
142
|
-
"gitHead": "
|
|
142
|
+
"gitHead": "7920f5261d5867837e0b7e6092c98a6597ac0771"
|
|
143
143
|
}
|