@carbon/react 1.56.0 → 1.57.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 +902 -908
- package/es/components/ComboBox/ComboBox.js +1 -0
- package/es/components/ContainedList/ContainedList.d.ts +45 -0
- package/es/components/ContainedList/ContainedList.js +18 -3
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +35 -0
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +3 -2
- package/es/components/ContainedList/ContainedListItem/index.d.ts +9 -0
- package/es/components/ContainedList/index.d.ts +11 -0
- package/es/components/ContainedList/index.js +13 -0
- package/es/components/DataTable/TableToolbarSearch.js +1 -1
- package/es/components/DataTable/stories/examples/TableToolbarFilter.d.ts +51 -0
- package/es/components/DatePicker/DatePicker.d.ts +5 -4
- package/es/components/DatePicker/plugins/rangePlugin.js +5 -6
- package/es/components/Dialog/index.d.ts +31 -0
- package/es/components/ListBox/next/ListBoxTrigger.js +4 -3
- package/es/components/MultiSelect/FilterableMultiSelect.d.ts +177 -0
- package/es/components/MultiSelect/FilterableMultiSelect.js +388 -313
- package/es/components/MultiSelect/MultiSelect.js +1 -2
- package/es/components/MultiSelect/MultiSelectPropTypes.d.ts +62 -0
- package/es/components/MultiSelect/index.d.ts +10 -0
- package/es/components/MultiSelect/index.js +2 -0
- package/es/components/OverflowMenu/OverflowMenu.d.ts +300 -0
- package/es/components/OverflowMenu/OverflowMenu.js +22 -14
- package/es/components/OverflowMenu/next/index.d.ts +39 -0
- package/es/components/OverflowMenu/next/index.js +4 -3
- package/es/components/Pagination/Pagination.js +9 -9
- package/es/components/RadioButton/RadioButton.d.ts +4 -0
- package/es/components/RadioButton/RadioButton.js +7 -1
- package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
- package/es/components/RadioButtonGroup/RadioButtonGroup.js +7 -1
- package/es/components/RadioTile/RadioTile.d.ts +4 -0
- package/es/components/RadioTile/RadioTile.js +7 -1
- package/es/components/Slider/Slider.js +3 -3
- package/es/components/StructuredList/StructuredList.js +6 -2
- package/es/components/TileGroup/TileGroup.d.ts +8 -0
- package/es/components/TileGroup/TileGroup.js +7 -1
- package/es/components/TimePicker/TimePicker.js +1 -1
- package/es/index.js +2 -0
- package/es/internal/Selection.js +4 -1
- package/lib/components/ComboBox/ComboBox.js +1 -0
- package/lib/components/ContainedList/ContainedList.d.ts +45 -0
- package/lib/components/ContainedList/ContainedList.js +18 -3
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +35 -0
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +3 -2
- package/lib/components/ContainedList/ContainedListItem/index.d.ts +9 -0
- package/lib/components/ContainedList/index.d.ts +11 -0
- package/lib/components/ContainedList/index.js +19 -0
- package/lib/components/DataTable/TableToolbarSearch.js +1 -1
- package/lib/components/DataTable/stories/examples/TableToolbarFilter.d.ts +51 -0
- package/lib/components/DatePicker/DatePicker.d.ts +5 -4
- package/lib/components/DatePicker/plugins/rangePlugin.js +5 -6
- package/lib/components/Dialog/index.d.ts +31 -0
- package/lib/components/ListBox/next/ListBoxTrigger.js +4 -3
- package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +177 -0
- package/lib/components/MultiSelect/FilterableMultiSelect.js +387 -312
- package/lib/components/MultiSelect/MultiSelect.js +1 -2
- package/lib/components/MultiSelect/MultiSelectPropTypes.d.ts +62 -0
- package/lib/components/MultiSelect/index.d.ts +10 -0
- package/lib/components/MultiSelect/index.js +2 -0
- package/lib/components/OverflowMenu/OverflowMenu.d.ts +300 -0
- package/lib/components/OverflowMenu/OverflowMenu.js +21 -13
- package/lib/components/OverflowMenu/next/index.d.ts +39 -0
- package/lib/components/OverflowMenu/next/index.js +4 -3
- package/lib/components/Pagination/Pagination.js +9 -9
- package/lib/components/RadioButton/RadioButton.d.ts +4 -0
- package/lib/components/RadioButton/RadioButton.js +7 -1
- package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
- package/lib/components/RadioButtonGroup/RadioButtonGroup.js +7 -1
- package/lib/components/RadioTile/RadioTile.d.ts +4 -0
- package/lib/components/RadioTile/RadioTile.js +7 -1
- package/lib/components/Slider/Slider.js +3 -3
- package/lib/components/StructuredList/StructuredList.js +6 -2
- package/lib/components/TileGroup/TileGroup.d.ts +8 -0
- package/lib/components/TileGroup/TileGroup.js +7 -1
- package/lib/components/TimePicker/TimePicker.js +1 -1
- package/lib/index.js +2 -0
- package/lib/internal/Selection.js +4 -1
- package/package.json +8 -8
- package/telemetry.yml +1 -1
|
@@ -45,6 +45,7 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
|
|
|
45
45
|
warn = false,
|
|
46
46
|
warnText,
|
|
47
47
|
slug,
|
|
48
|
+
required,
|
|
48
49
|
...rest
|
|
49
50
|
} = props;
|
|
50
51
|
const prefix = usePrefix.usePrefix();
|
|
@@ -72,7 +73,8 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
|
|
|
72
73
|
key: value,
|
|
73
74
|
value: value,
|
|
74
75
|
onChange: handleOnChange,
|
|
75
|
-
checked: value === selected
|
|
76
|
+
checked: value === selected,
|
|
77
|
+
required: required
|
|
76
78
|
};
|
|
77
79
|
if (!selected && radioButton?.props.checked) {
|
|
78
80
|
newProps.checked = true;
|
|
@@ -197,6 +199,10 @@ RadioButtonGroup.propTypes = {
|
|
|
197
199
|
* Whether the RadioButtonGroup should be read-only
|
|
198
200
|
*/
|
|
199
201
|
readOnly: PropTypes__default["default"].bool,
|
|
202
|
+
/**
|
|
203
|
+
* `true` to specify if radio selection in group is required.
|
|
204
|
+
*/
|
|
205
|
+
required: PropTypes__default["default"].bool,
|
|
200
206
|
/**
|
|
201
207
|
* **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
|
|
202
208
|
*/
|
|
@@ -50,6 +50,10 @@ export interface RadioTileProps {
|
|
|
50
50
|
* Specify the value of the underlying `<input>`.
|
|
51
51
|
*/
|
|
52
52
|
value: string | number;
|
|
53
|
+
/**
|
|
54
|
+
* `true` to specify if the input is required.
|
|
55
|
+
*/
|
|
56
|
+
required?: boolean;
|
|
53
57
|
}
|
|
54
58
|
declare const RadioTile: React.ForwardRefExoticComponent<RadioTileProps & React.RefAttributes<HTMLInputElement>>;
|
|
55
59
|
export default RadioTile;
|
|
@@ -43,6 +43,7 @@ const RadioTile = /*#__PURE__*/React__default["default"].forwardRef(function Rad
|
|
|
43
43
|
id,
|
|
44
44
|
onChange = noopFn.noopFn,
|
|
45
45
|
tabIndex = 0,
|
|
46
|
+
required,
|
|
46
47
|
...rest
|
|
47
48
|
} = _ref;
|
|
48
49
|
const prefix = usePrefix.usePrefix();
|
|
@@ -84,7 +85,8 @@ const RadioTile = /*#__PURE__*/React__default["default"].forwardRef(function Rad
|
|
|
84
85
|
tabIndex: !disabled ? tabIndex : undefined,
|
|
85
86
|
type: "radio",
|
|
86
87
|
value: value,
|
|
87
|
-
ref: ref
|
|
88
|
+
ref: ref,
|
|
89
|
+
required: required
|
|
88
90
|
}), /*#__PURE__*/React__default["default"].createElement("label", _rollupPluginBabelHelpers["extends"]({}, rest, {
|
|
89
91
|
htmlFor: inputId,
|
|
90
92
|
className: className
|
|
@@ -130,6 +132,10 @@ RadioTile.propTypes = {
|
|
|
130
132
|
* the underlying `<input>` changes.
|
|
131
133
|
*/
|
|
132
134
|
onChange: PropTypes__default["default"].func,
|
|
135
|
+
/**
|
|
136
|
+
* `true` to specify if the control is required.
|
|
137
|
+
*/
|
|
138
|
+
required: PropTypes__default["default"].bool,
|
|
133
139
|
/**
|
|
134
140
|
* Specify the tab index of the underlying `<input>`.
|
|
135
141
|
*/
|
|
@@ -522,7 +522,7 @@ class Slider extends React.PureComponent {
|
|
|
522
522
|
if (clientX) {
|
|
523
523
|
const leftOffset = this.state.isRtl ? (boundingRect?.right ?? 0) - clientX : clientX - (boundingRect?.left ?? 0);
|
|
524
524
|
return leftOffset / width;
|
|
525
|
-
} else if (value && range) {
|
|
525
|
+
} else if (value !== null && value !== undefined && range) {
|
|
526
526
|
// Prevent NaN calculation if the range is 0.
|
|
527
527
|
return range === 0 ? 0 : (value - this.props.min) / range;
|
|
528
528
|
}
|
|
@@ -1104,7 +1104,7 @@ class Slider extends React.PureComponent {
|
|
|
1104
1104
|
hasTooltip: hideTextInput,
|
|
1105
1105
|
className: lowerThumbWrapperClasses,
|
|
1106
1106
|
label: `${value}`,
|
|
1107
|
-
align:
|
|
1107
|
+
align: "top"
|
|
1108
1108
|
}, lowerThumbWrapperProps), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1109
1109
|
className: lowerThumbClasses,
|
|
1110
1110
|
role: "slider",
|
|
@@ -1123,7 +1123,7 @@ class Slider extends React.PureComponent {
|
|
|
1123
1123
|
hasTooltip: hideTextInput,
|
|
1124
1124
|
className: upperThumbWrapperClasses,
|
|
1125
1125
|
label: `${valueUpper}`,
|
|
1126
|
-
align: "top
|
|
1126
|
+
align: "top"
|
|
1127
1127
|
}, upperThumbWrapperProps), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1128
1128
|
className: upperThumbClasses,
|
|
1129
1129
|
role: "slider",
|
|
@@ -27,7 +27,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
27
27
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
28
28
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
29
29
|
|
|
30
|
-
var _StructuredListCell
|
|
30
|
+
var _StructuredListCell;
|
|
31
31
|
const GridSelectedRowStateContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
32
32
|
const GridSelectedRowDispatchContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
33
33
|
function StructuredListWrapper(props) {
|
|
@@ -202,7 +202,11 @@ function StructuredListRow(props) {
|
|
|
202
202
|
onKeyDown: onKeyDown
|
|
203
203
|
}), /*#__PURE__*/React__default["default"].createElement(GridRowContext.Provider, {
|
|
204
204
|
value: value
|
|
205
|
-
}, selection && /*#__PURE__*/React__default["default"].createElement(StructuredListCell, null, selectedRow === id ?
|
|
205
|
+
}, selection && /*#__PURE__*/React__default["default"].createElement(StructuredListCell, null, selectedRow === id ? /*#__PURE__*/React__default["default"].createElement(iconsReact.RadioButtonChecked, {
|
|
206
|
+
className: `${prefix}--structured-list__icon`
|
|
207
|
+
}) : /*#__PURE__*/React__default["default"].createElement(iconsReact.RadioButton, {
|
|
208
|
+
className: `${prefix}--structured-list__icon`
|
|
209
|
+
})), children));
|
|
206
210
|
}
|
|
207
211
|
StructuredListRow.propTypes = {
|
|
208
212
|
/**
|
|
@@ -40,6 +40,10 @@ export interface TileGroupProps extends Omit<ReactAttr<HTMLFieldSetElement>, Exc
|
|
|
40
40
|
* Specify the value that is currently selected in the group
|
|
41
41
|
*/
|
|
42
42
|
valueSelected?: string | number;
|
|
43
|
+
/**
|
|
44
|
+
* `true` to specify if input selection in group is required.
|
|
45
|
+
*/
|
|
46
|
+
required?: boolean;
|
|
43
47
|
}
|
|
44
48
|
declare const TileGroup: {
|
|
45
49
|
(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -73,6 +77,10 @@ declare const TileGroup: {
|
|
|
73
77
|
* the group changes
|
|
74
78
|
*/
|
|
75
79
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
80
|
+
/**
|
|
81
|
+
* `true` to specify if input selection in group is required.
|
|
82
|
+
*/
|
|
83
|
+
required: PropTypes.Requireable<boolean>;
|
|
76
84
|
/**
|
|
77
85
|
* Specify the value that is currently selected in the group
|
|
78
86
|
*/
|
|
@@ -30,7 +30,8 @@ const TileGroup = props => {
|
|
|
30
30
|
legend,
|
|
31
31
|
name,
|
|
32
32
|
onChange = noopFn.noopFn,
|
|
33
|
-
valueSelected
|
|
33
|
+
valueSelected,
|
|
34
|
+
required
|
|
34
35
|
} = props;
|
|
35
36
|
const prefix = usePrefix.usePrefix();
|
|
36
37
|
const [selected, setSelected] = React.useState(valueSelected ?? defaultSelected);
|
|
@@ -54,6 +55,7 @@ const TileGroup = props => {
|
|
|
54
55
|
...otherProps
|
|
55
56
|
} = child.props;
|
|
56
57
|
return /*#__PURE__*/React__default["default"].createElement(RadioTile["default"], _rollupPluginBabelHelpers["extends"]({}, otherProps, {
|
|
58
|
+
required: required,
|
|
57
59
|
name: name,
|
|
58
60
|
key: value,
|
|
59
61
|
value: value,
|
|
@@ -122,6 +124,10 @@ TileGroup.propTypes = {
|
|
|
122
124
|
* the group changes
|
|
123
125
|
*/
|
|
124
126
|
onChange: PropTypes__default["default"].func,
|
|
127
|
+
/**
|
|
128
|
+
* `true` to specify if input selection in group is required.
|
|
129
|
+
*/
|
|
130
|
+
required: PropTypes__default["default"].bool,
|
|
125
131
|
/**
|
|
126
132
|
* Specify the value that is currently selected in the group
|
|
127
133
|
*/
|
|
@@ -123,7 +123,7 @@ const TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function Ti
|
|
|
123
123
|
if (item) {
|
|
124
124
|
return /*#__PURE__*/React__default["default"].cloneElement(item, {
|
|
125
125
|
...item.props,
|
|
126
|
-
disabled: disabled,
|
|
126
|
+
disabled: item.props.disabled ?? disabled,
|
|
127
127
|
readOnly: readOnly,
|
|
128
128
|
...readOnlyEventHandlers
|
|
129
129
|
});
|
package/lib/index.js
CHANGED
|
@@ -30,6 +30,7 @@ var index$5 = require('./components/ComboButton/index.js');
|
|
|
30
30
|
var ComposedModal = require('./components/ComposedModal/ComposedModal.js');
|
|
31
31
|
var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
|
|
32
32
|
var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
|
|
33
|
+
require('./components/ContainedList/index.js');
|
|
33
34
|
var index$6 = require('./components/ContentSwitcher/index.js');
|
|
34
35
|
var Copy = require('./components/Copy/Copy.js');
|
|
35
36
|
var CopyButton = require('./components/CopyButton/CopyButton.js');
|
|
@@ -73,6 +74,7 @@ var MenuItem = require('./components/Menu/MenuItem.js');
|
|
|
73
74
|
var index$8 = require('./components/MenuButton/index.js');
|
|
74
75
|
var Modal = require('./components/Modal/Modal.js');
|
|
75
76
|
var ModalWrapper = require('./components/ModalWrapper/ModalWrapper.js');
|
|
77
|
+
require('./components/MultiSelect/index.js');
|
|
76
78
|
var Notification = require('./components/Notification/Notification.js');
|
|
77
79
|
var NumberInput_Skeleton = require('./components/NumberInput/NumberInput.Skeleton.js');
|
|
78
80
|
var NumberInput = require('./components/NumberInput/NumberInput.js');
|
|
@@ -50,6 +50,9 @@ function useSelection(_ref2) {
|
|
|
50
50
|
const [uncontrolledItems, setUncontrolledItems] = React.useState(initialSelectedItems);
|
|
51
51
|
const isControlled = !!controlledItems;
|
|
52
52
|
const [selectedItems, setSelectedItems] = React.useState(isControlled ? controlledItems : uncontrolledItems);
|
|
53
|
+
React.useEffect(() => {
|
|
54
|
+
setSelectedItems(isControlled ? controlledItems : uncontrolledItems);
|
|
55
|
+
}, [isControlled, controlledItems, uncontrolledItems]);
|
|
53
56
|
React.useEffect(() => {
|
|
54
57
|
callOnChangeHandler({
|
|
55
58
|
isControlled,
|
|
@@ -84,7 +87,7 @@ function useSelection(_ref2) {
|
|
|
84
87
|
isMounted: isMounted.current,
|
|
85
88
|
onChangeHandlerControlled: savedOnChange.current,
|
|
86
89
|
onChangeHandlerUncontrolled: setUncontrolledItems,
|
|
87
|
-
selectedItems:
|
|
90
|
+
selectedItems: []
|
|
88
91
|
});
|
|
89
92
|
}, [disabled, isControlled]);
|
|
90
93
|
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.57.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "es/index.js",
|
|
@@ -48,12 +48,12 @@
|
|
|
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.20.0",
|
|
52
|
+
"@carbon/icons-react": "^11.41.0",
|
|
53
|
+
"@carbon/layout": "^11.22.0",
|
|
54
|
+
"@carbon/styles": "^1.57.0",
|
|
55
55
|
"@floating-ui/react": "^0.26.0",
|
|
56
|
-
"@ibm/telemetry-js": "^1.
|
|
56
|
+
"@ibm/telemetry-js": "^1.5.0",
|
|
57
57
|
"classnames": "2.5.1",
|
|
58
58
|
"copy-to-clipboard": "^3.3.1",
|
|
59
59
|
"downshift": "8.5.0",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"@babel/preset-react": "^7.22.3",
|
|
82
82
|
"@babel/preset-typescript": "^7.21.5",
|
|
83
83
|
"@carbon/test-utils": "^10.30.0",
|
|
84
|
-
"@carbon/themes": "^11.
|
|
84
|
+
"@carbon/themes": "^11.35.0",
|
|
85
85
|
"@rollup/plugin-babel": "^6.0.0",
|
|
86
86
|
"@rollup/plugin-commonjs": "^25.0.0",
|
|
87
87
|
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
@@ -141,5 +141,5 @@
|
|
|
141
141
|
"**/*.scss",
|
|
142
142
|
"**/*.css"
|
|
143
143
|
],
|
|
144
|
-
"gitHead": "
|
|
144
|
+
"gitHead": "e4922a44b2110b9dcb71da21ff6c0c9bb95610e0"
|
|
145
145
|
}
|
package/telemetry.yml
CHANGED