@carbon/react 1.17.0-rc.2 → 1.17.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/es/components/DatePicker/DatePicker.js +10 -2
- package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +67 -0
- package/es/components/ListBox/ListBoxSelection.js +11 -4
- package/es/components/MultiSelect/MultiSelect.js +28 -5
- package/es/components/OverflowMenu/index.js +1 -2
- package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -1
- package/es/components/SkeletonText/SkeletonText.js +1 -1
- package/es/components/StructuredList/StructuredList.js +89 -54
- package/es/index.js +2 -1
- package/es/internal/FloatingMenu.js +3 -1
- package/lib/components/DatePicker/DatePicker.js +9 -1
- package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +77 -0
- package/lib/components/ListBox/ListBoxSelection.js +11 -4
- package/lib/components/MultiSelect/MultiSelect.js +28 -5
- package/lib/components/OverflowMenu/index.js +1 -22
- package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -1
- package/lib/components/SkeletonText/SkeletonText.js +1 -1
- package/lib/components/StructuredList/StructuredList.js +87 -52
- package/lib/index.js +39 -37
- package/lib/internal/FloatingMenu.js +3 -1
- package/package.json +5 -5
- package/es/components/StructuredList/index.js +0 -43
- package/es/components/StructuredList/next/StructuredList.js +0 -342
- package/es/internal/ComponentToggle.js +0 -42
- package/lib/components/StructuredList/index.js +0 -52
- package/lib/components/StructuredList/next/StructuredList.js +0 -357
- package/lib/internal/ComponentToggle.js +0 -50
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 2022
|
|
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 _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
13
|
+
var PropTypes = require('prop-types');
|
|
14
|
+
var React = require('react');
|
|
15
|
+
var cx = require('classnames');
|
|
16
|
+
var usePrefix = require('../../internal/usePrefix.js');
|
|
17
|
+
var FormContext = require('../FluidForm/FormContext.js');
|
|
18
|
+
var iconsReact = require('@carbon/icons-react');
|
|
19
|
+
|
|
20
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
|
+
|
|
22
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
23
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
24
|
+
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
25
|
+
|
|
26
|
+
var _excluded = ["className", "datePickerType"];
|
|
27
|
+
|
|
28
|
+
function FluidDatePickerSkeleton(_ref) {
|
|
29
|
+
var className = _ref.className,
|
|
30
|
+
_ref$datePickerType = _ref.datePickerType,
|
|
31
|
+
datePickerType = _ref$datePickerType === void 0 ? 'single' : _ref$datePickerType,
|
|
32
|
+
other = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
33
|
+
|
|
34
|
+
var prefix = usePrefix.usePrefix();
|
|
35
|
+
var classNames = cx__default["default"](className, "".concat(prefix, "--form-item ").concat(prefix, "--date-picker--fluid__skeleton"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--date-picker--fluid__skeleton--range"), datePickerType === 'range'));
|
|
36
|
+
return /*#__PURE__*/React__default["default"].createElement(FormContext.FormContext.Provider, {
|
|
37
|
+
value: {
|
|
38
|
+
isFluid: true
|
|
39
|
+
}
|
|
40
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
41
|
+
className: classNames
|
|
42
|
+
}, other), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
43
|
+
className: "".concat(prefix, "--date-picker--fluid__skeleton--container")
|
|
44
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
45
|
+
className: "".concat(prefix, "--label ").concat(prefix, "--skeleton")
|
|
46
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
47
|
+
className: "".concat(prefix, "--skeleton ").concat(prefix, "--text-input")
|
|
48
|
+
}), datePickerType !== 'simple' && /*#__PURE__*/React__default["default"].createElement(iconsReact.Calendar, {
|
|
49
|
+
className: "".concat(prefix, "--date-picker__icon"),
|
|
50
|
+
role: "img",
|
|
51
|
+
"aria-hidden": "true"
|
|
52
|
+
})), datePickerType === 'range' && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
53
|
+
className: "".concat(prefix, "--date-picker--fluid__skeleton--container")
|
|
54
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
55
|
+
className: "".concat(prefix, "--label ").concat(prefix, "--skeleton")
|
|
56
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
57
|
+
className: "".concat(prefix, "--skeleton ").concat(prefix, "--text-input")
|
|
58
|
+
}), /*#__PURE__*/React__default["default"].createElement(iconsReact.Calendar, {
|
|
59
|
+
className: "".concat(prefix, "--date-picker__icon"),
|
|
60
|
+
role: "img",
|
|
61
|
+
"aria-hidden": "true"
|
|
62
|
+
}))));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
FluidDatePickerSkeleton.propTypes = {
|
|
66
|
+
/**
|
|
67
|
+
* Specify an optional className to be applied to the outer FluidForm wrapper
|
|
68
|
+
*/
|
|
69
|
+
className: PropTypes__default["default"].string,
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Specify which variant of the DatePicker the skeleton should mimic
|
|
73
|
+
*/
|
|
74
|
+
datePickerType: PropTypes__default["default"].oneOf(['simple', 'single', 'range'])
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
exports["default"] = FluidDatePickerSkeleton;
|
|
@@ -38,14 +38,15 @@ function ListBoxSelection(_ref) {
|
|
|
38
38
|
selectionCount = _ref.selectionCount,
|
|
39
39
|
t = _ref.translateWithId,
|
|
40
40
|
disabled = _ref.disabled,
|
|
41
|
-
onClearSelection = _ref.onClearSelection
|
|
41
|
+
onClearSelection = _ref.onClearSelection,
|
|
42
|
+
readOnly = _ref.readOnly;
|
|
42
43
|
var prefix = usePrefix.usePrefix();
|
|
43
44
|
var className = cx__default["default"]("".concat(prefix, "--list-box__selection"), (_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--tag--filter"), selectionCount), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--list-box__selection--multi"), selectionCount), _cx));
|
|
44
45
|
|
|
45
46
|
var handleOnClick = function handleOnClick(event) {
|
|
46
47
|
event.stopPropagation();
|
|
47
48
|
|
|
48
|
-
if (disabled) {
|
|
49
|
+
if (disabled || readOnly) {
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
51
52
|
|
|
@@ -59,7 +60,7 @@ function ListBoxSelection(_ref) {
|
|
|
59
60
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
60
61
|
event.stopPropagation();
|
|
61
62
|
|
|
62
|
-
if (disabled) {
|
|
63
|
+
if (disabled || readOnly) {
|
|
63
64
|
return;
|
|
64
65
|
} // When a user hits ENTER, we'll clear the selection
|
|
65
66
|
|
|
@@ -88,7 +89,8 @@ function ListBoxSelection(_ref) {
|
|
|
88
89
|
onKeyDown: handleOnKeyDown,
|
|
89
90
|
disabled: disabled,
|
|
90
91
|
"aria-label": t('clear.all'),
|
|
91
|
-
title: description
|
|
92
|
+
title: description,
|
|
93
|
+
"aria-disabled": readOnly ? true : undefined
|
|
92
94
|
}, _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null)))) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
93
95
|
role: "button",
|
|
94
96
|
className: className,
|
|
@@ -135,6 +137,11 @@ ListBoxSelection.propTypes = {
|
|
|
135
137
|
*/
|
|
136
138
|
onKeyDown: PropTypes__default["default"].func,
|
|
137
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Whether or not the Dropdown is readonly
|
|
142
|
+
*/
|
|
143
|
+
readOnly: PropTypes__default["default"].bool,
|
|
144
|
+
|
|
138
145
|
/**
|
|
139
146
|
* Specify an optional `selectionCount` value that will be used to determine
|
|
140
147
|
* whether the selection should display a badge or a single clear icon.
|
|
@@ -85,7 +85,8 @@ var MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(function Mul
|
|
|
85
85
|
onChange = _ref.onChange,
|
|
86
86
|
onMenuChange = _ref.onMenuChange,
|
|
87
87
|
direction = _ref.direction,
|
|
88
|
-
selected = _ref.selectedItems
|
|
88
|
+
selected = _ref.selectedItems,
|
|
89
|
+
readOnly = _ref.readOnly;
|
|
89
90
|
var prefix = usePrefix.usePrefix();
|
|
90
91
|
|
|
91
92
|
var _useContext = React.useContext(FormContext.FormContext),
|
|
@@ -176,7 +177,7 @@ var MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(function Mul
|
|
|
176
177
|
var helperId = !helperText ? undefined : "multiselect-helper-text-".concat(multiSelectInstanceId);
|
|
177
178
|
var fieldLabelId = "multiselect-field-label-".concat(multiSelectInstanceId);
|
|
178
179
|
var helperClasses = cx__default["default"]("".concat(prefix, "--form__helper-text"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--form__helper-text--disabled"), disabled));
|
|
179
|
-
var className = cx__default["default"]("".concat(prefix, "--multi-select"), [enabled ? null : containerClassName], (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--warning"), showWarning), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--inline"), inline), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--selected"), selectedItems && selectedItems.length > 0), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--list-box--up"), direction === 'top'), _cx4)); // needs to be capitalized for react to render it correctly
|
|
180
|
+
var className = cx__default["default"]("".concat(prefix, "--multi-select"), [enabled ? null : containerClassName], (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--warning"), showWarning), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--inline"), inline), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--selected"), selectedItems && selectedItems.length > 0), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--list-box--up"), direction === 'top'), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--multi-select--readonly"), readOnly), _cx4)); // needs to be capitalized for react to render it correctly
|
|
180
181
|
|
|
181
182
|
var ItemToElement = itemToElement;
|
|
182
183
|
var sortOptions = {
|
|
@@ -241,6 +242,21 @@ var MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(function Mul
|
|
|
241
242
|
evt.target.classList.contains("".concat(prefix, "--tag__close-icon")) ? setIsFocused(false) : setIsFocused(evt.type === 'focus' ? true : false);
|
|
242
243
|
};
|
|
243
244
|
|
|
245
|
+
var readOnlyEventHandlers = readOnly ? {
|
|
246
|
+
onClick: function onClick(evt) {
|
|
247
|
+
// NOTE: does not prevent click
|
|
248
|
+
evt.preventDefault(); // focus on the element as per readonly input behavior
|
|
249
|
+
|
|
250
|
+
evt.target.focus();
|
|
251
|
+
},
|
|
252
|
+
onKeyDown: function onKeyDown(evt) {
|
|
253
|
+
var selectAccessKeys = ['ArrowDown', 'ArrowUp', ' ', 'Enter']; // This prevents the select from opening for the above keys
|
|
254
|
+
|
|
255
|
+
if (selectAccessKeys.includes(evt.key)) {
|
|
256
|
+
evt.preventDefault();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
} : {};
|
|
244
260
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
245
261
|
className: wrapperClasses
|
|
246
262
|
}, /*#__PURE__*/React__default["default"].createElement("label", _rollupPluginBabelHelpers["extends"]({
|
|
@@ -254,6 +270,7 @@ var MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(function Mul
|
|
|
254
270
|
size: size,
|
|
255
271
|
className: className,
|
|
256
272
|
disabled: disabled,
|
|
273
|
+
readOnly: readOnly,
|
|
257
274
|
light: light,
|
|
258
275
|
invalid: invalid,
|
|
259
276
|
invalidText: invalidText,
|
|
@@ -269,12 +286,13 @@ var MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(function Mul
|
|
|
269
286
|
type: "button",
|
|
270
287
|
className: "".concat(prefix, "--list-box__field"),
|
|
271
288
|
disabled: disabled,
|
|
272
|
-
"aria-disabled": disabled
|
|
289
|
+
"aria-disabled": disabled || readOnly
|
|
273
290
|
}, toggleButtonProps, {
|
|
274
291
|
ref: mergeRefs["default"](toggleButtonProps.ref, ref),
|
|
275
292
|
onKeyDown: onKeyDown
|
|
276
|
-
}), selectedItems.length > 0 && /*#__PURE__*/React__default["default"].createElement(ListBox["default"].Selection, {
|
|
277
|
-
|
|
293
|
+
}, readOnlyEventHandlers), selectedItems.length > 0 && /*#__PURE__*/React__default["default"].createElement(ListBox["default"].Selection, {
|
|
294
|
+
readOnly: readOnly,
|
|
295
|
+
clearSelection: !disabled && !readOnly ? clearSelection : noop,
|
|
278
296
|
selectionCount: selectedItems.length,
|
|
279
297
|
translateWithId: translateWithId,
|
|
280
298
|
disabled: disabled
|
|
@@ -425,6 +443,11 @@ MultiSelect.propTypes = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBab
|
|
|
425
443
|
*/
|
|
426
444
|
open: PropTypes__default["default"].bool,
|
|
427
445
|
|
|
446
|
+
/**
|
|
447
|
+
* Whether or not the Dropdown is readonly
|
|
448
|
+
*/
|
|
449
|
+
readOnly: PropTypes__default["default"].bool,
|
|
450
|
+
|
|
428
451
|
/**
|
|
429
452
|
* For full control of the selected items
|
|
430
453
|
*/
|
|
@@ -9,30 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
|
-
var FeatureFlags = require('@carbon/feature-flags');
|
|
13
12
|
var OverflowMenu$1 = require('./OverflowMenu.js');
|
|
14
13
|
var createClassWrapper = require('../../internal/createClassWrapper.js');
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
if (e && e.__esModule) return e;
|
|
18
|
-
var n = Object.create(null);
|
|
19
|
-
if (e) {
|
|
20
|
-
Object.keys(e).forEach(function (k) {
|
|
21
|
-
if (k !== 'default') {
|
|
22
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
23
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () { return e[k]; }
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
n["default"] = e;
|
|
31
|
-
return Object.freeze(n);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var FeatureFlags__namespace = /*#__PURE__*/_interopNamespace(FeatureFlags);
|
|
35
|
-
|
|
36
|
-
var OverflowMenu = FeatureFlags__namespace.enabled('enable-v11-release') ? createClassWrapper.createClassWrapper(OverflowMenu$1.OverflowMenu) : OverflowMenu$1.OverflowMenu;
|
|
15
|
+
var OverflowMenu = createClassWrapper.createClassWrapper(OverflowMenu$1.OverflowMenu);
|
|
37
16
|
|
|
38
17
|
exports["default"] = OverflowMenu;
|
|
@@ -38,7 +38,8 @@ var SkeletonPlaceholder = function SkeletonPlaceholder(_ref) {
|
|
|
38
38
|
|
|
39
39
|
SkeletonPlaceholder.propTypes = {
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Add a custom class to the component
|
|
42
|
+
* to set the height and width
|
|
42
43
|
*/
|
|
43
44
|
className: PropTypes__default["default"].string
|
|
44
45
|
};
|
|
@@ -13,7 +13,7 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
|
|
|
13
13
|
var React = require('react');
|
|
14
14
|
var PropTypes = require('prop-types');
|
|
15
15
|
var cx = require('classnames');
|
|
16
|
-
var
|
|
16
|
+
var useId = require('../../internal/useId.js');
|
|
17
17
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
18
18
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
19
19
|
|
|
@@ -23,13 +23,14 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
23
23
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
24
24
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
25
25
|
|
|
26
|
-
var _excluded = ["children", "selection", "className", "ariaLabel", "isCondensed", "isFlush"
|
|
26
|
+
var _excluded = ["children", "selection", "className", "ariaLabel", "isCondensed", "isFlush"],
|
|
27
27
|
_excluded2 = ["children", "className"],
|
|
28
28
|
_excluded3 = ["children", "className"],
|
|
29
|
-
_excluded4 = ["onKeyDown", "
|
|
30
|
-
_excluded5 = ["className", "
|
|
29
|
+
_excluded4 = ["onKeyDown", "children", "className", "head"],
|
|
30
|
+
_excluded5 = ["className", "name", "title", "id"],
|
|
31
31
|
_excluded6 = ["children", "className", "head", "noWrap"];
|
|
32
|
-
var
|
|
32
|
+
var GridSelectedRowStateContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
33
|
+
var GridSelectedRowDispatchContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
33
34
|
function StructuredListWrapper(props) {
|
|
34
35
|
var _classNames;
|
|
35
36
|
|
|
@@ -38,18 +39,27 @@ function StructuredListWrapper(props) {
|
|
|
38
39
|
className = props.className,
|
|
39
40
|
ariaLabel = props.ariaLabel,
|
|
40
41
|
isCondensed = props.isCondensed,
|
|
41
|
-
isFlush = props.isFlush
|
|
42
|
-
props
|
|
43
|
-
var other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
|
|
42
|
+
isFlush = props.isFlush,
|
|
43
|
+
other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
|
|
44
44
|
|
|
45
45
|
var prefix = usePrefix.usePrefix();
|
|
46
46
|
var classes = cx__default["default"]("".concat(prefix, "--structured-list"), className, (_classNames = {}, _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--structured-list--selection"), selection), _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--structured-list--condensed"), isCondensed), _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--structured-list--flush"), isFlush), _classNames));
|
|
47
|
-
|
|
47
|
+
|
|
48
|
+
var _React$useState = React__default["default"].useState(null),
|
|
49
|
+
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
50
|
+
selectedRow = _React$useState2[0],
|
|
51
|
+
setSelectedRow = _React$useState2[1];
|
|
52
|
+
|
|
53
|
+
return /*#__PURE__*/React__default["default"].createElement(GridSelectedRowStateContext.Provider, {
|
|
54
|
+
value: selectedRow
|
|
55
|
+
}, /*#__PURE__*/React__default["default"].createElement(GridSelectedRowDispatchContext.Provider, {
|
|
56
|
+
value: setSelectedRow
|
|
57
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
48
58
|
role: "table",
|
|
49
59
|
className: classes
|
|
50
60
|
}, other, {
|
|
51
61
|
"aria-label": ariaLabel
|
|
52
|
-
}), children);
|
|
62
|
+
}), children)));
|
|
53
63
|
}
|
|
54
64
|
StructuredListWrapper.propTypes = {
|
|
55
65
|
/**
|
|
@@ -57,11 +67,6 @@ StructuredListWrapper.propTypes = {
|
|
|
57
67
|
*/
|
|
58
68
|
ariaLabel: PropTypes__default["default"].string,
|
|
59
69
|
|
|
60
|
-
/**
|
|
61
|
-
* Specify whether a border should be added to your StructuredListWrapper
|
|
62
|
-
*/
|
|
63
|
-
border: deprecate["default"](PropTypes__default["default"].bool, "\nThe prop `border` will be removed in the next major version of Carbon."),
|
|
64
|
-
|
|
65
70
|
/**
|
|
66
71
|
* Provide the contents of your StructuredListWrapper
|
|
67
72
|
*/
|
|
@@ -89,9 +94,9 @@ StructuredListWrapper.propTypes = {
|
|
|
89
94
|
};
|
|
90
95
|
StructuredListWrapper.defaultProps = {
|
|
91
96
|
selection: false,
|
|
92
|
-
ariaLabel: 'Structured list section',
|
|
93
97
|
isCondensed: false,
|
|
94
|
-
isFlush: false
|
|
98
|
+
isFlush: false,
|
|
99
|
+
ariaLabel: 'Structured list section'
|
|
95
100
|
};
|
|
96
101
|
function StructuredListHead(props) {
|
|
97
102
|
var children = props.children,
|
|
@@ -148,29 +153,51 @@ StructuredListBody.propTypes = {
|
|
|
148
153
|
StructuredListBody.defaultProps = {
|
|
149
154
|
onKeyDown: function onKeyDown() {}
|
|
150
155
|
};
|
|
156
|
+
var GridRowContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
151
157
|
function StructuredListRow(props) {
|
|
158
|
+
var _classNames2;
|
|
159
|
+
|
|
152
160
|
var onKeyDown = props.onKeyDown,
|
|
153
|
-
tabIndex = props.tabIndex,
|
|
154
161
|
children = props.children,
|
|
155
162
|
className = props.className,
|
|
156
163
|
head = props.head,
|
|
157
|
-
label = props.label,
|
|
158
164
|
other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded4);
|
|
159
165
|
|
|
166
|
+
var _useState = React.useState(false),
|
|
167
|
+
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
168
|
+
hasFocusWithin = _useState2[0],
|
|
169
|
+
setHasFocusWithin = _useState2[1];
|
|
170
|
+
|
|
171
|
+
var id = useId.useId('grid-input');
|
|
172
|
+
var setSelectedRow = React__default["default"].useContext(GridSelectedRowDispatchContext);
|
|
160
173
|
var prefix = usePrefix.usePrefix();
|
|
161
|
-
var
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
React__default["default"].createElement("
|
|
166
|
-
tabIndex: tabIndex,
|
|
167
|
-
className: classes,
|
|
168
|
-
onKeyDown: onKeyDown
|
|
169
|
-
}), children) : /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
174
|
+
var value = {
|
|
175
|
+
id: id
|
|
176
|
+
};
|
|
177
|
+
var classes = cx__default["default"]("".concat(prefix, "--structured-list-row"), className, (_classNames2 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames2, "".concat(prefix, "--structured-list-row--header-row"), head), _rollupPluginBabelHelpers.defineProperty(_classNames2, "".concat(prefix, "--structured-list-row--focused-within"), hasFocusWithin), _classNames2));
|
|
178
|
+
return head ? /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
170
179
|
role: "row"
|
|
171
180
|
}, other, {
|
|
172
181
|
className: classes
|
|
173
|
-
}), children)
|
|
182
|
+
}), children) :
|
|
183
|
+
/*#__PURE__*/
|
|
184
|
+
// eslint-disable-next-line jsx-a11y/interactive-supports-focus
|
|
185
|
+
React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({}, other, {
|
|
186
|
+
role: "row",
|
|
187
|
+
className: classes,
|
|
188
|
+
onClick: function onClick() {
|
|
189
|
+
return setSelectedRow(id);
|
|
190
|
+
},
|
|
191
|
+
onFocus: function onFocus() {
|
|
192
|
+
setHasFocusWithin(true);
|
|
193
|
+
},
|
|
194
|
+
onBlur: function onBlur() {
|
|
195
|
+
setHasFocusWithin(false);
|
|
196
|
+
},
|
|
197
|
+
onKeyDown: onKeyDown
|
|
198
|
+
}), /*#__PURE__*/React__default["default"].createElement(GridRowContext.Provider, {
|
|
199
|
+
value: value
|
|
200
|
+
}, children));
|
|
174
201
|
}
|
|
175
202
|
StructuredListRow.propTypes = {
|
|
176
203
|
/**
|
|
@@ -191,42 +218,44 @@ StructuredListRow.propTypes = {
|
|
|
191
218
|
/**
|
|
192
219
|
* Specify whether a `<label>` should be used
|
|
193
220
|
*/
|
|
194
|
-
label: PropTypes__default["default"].bool,
|
|
221
|
+
label: deprecate["default"](PropTypes__default["default"].bool, "\nThe `label` prop is no longer needed and will be removed in the next major version of Carbon."),
|
|
195
222
|
|
|
196
223
|
/**
|
|
197
224
|
* Provide a handler that is invoked on the key down event for the control,
|
|
198
|
-
* if `<label>` is in use
|
|
199
|
-
*/
|
|
200
|
-
onKeyDown: PropTypes__default["default"].func,
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Specify the tab index of the container node, if `<label>` is in use
|
|
204
225
|
*/
|
|
205
|
-
|
|
226
|
+
onKeyDown: PropTypes__default["default"].func
|
|
206
227
|
};
|
|
207
228
|
StructuredListRow.defaultProps = {
|
|
208
229
|
head: false,
|
|
209
|
-
label: false,
|
|
210
|
-
tabIndex: 0,
|
|
211
230
|
onKeyDown: function onKeyDown() {}
|
|
212
231
|
};
|
|
213
232
|
function StructuredListInput(props) {
|
|
233
|
+
var _row$id;
|
|
234
|
+
|
|
235
|
+
var defaultId = useId.useId('structureListInput');
|
|
236
|
+
|
|
214
237
|
var className = props.className,
|
|
215
|
-
|
|
216
|
-
name =
|
|
238
|
+
_props$name = props.name,
|
|
239
|
+
name = _props$name === void 0 ? "structured-list-input-".concat(defaultId) : _props$name,
|
|
217
240
|
title = props.title,
|
|
218
241
|
id = props.id,
|
|
219
242
|
other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded5);
|
|
220
243
|
|
|
221
244
|
var prefix = usePrefix.usePrefix();
|
|
222
|
-
var classes = cx__default["default"]("".concat(prefix, "--structured-list-input"), className);
|
|
223
|
-
var
|
|
245
|
+
var classes = cx__default["default"]("".concat(prefix, "--structured-list-input"), "".concat(prefix, "--visually-hidden"), className);
|
|
246
|
+
var row = React__default["default"].useContext(GridRowContext);
|
|
247
|
+
var selectedRow = React__default["default"].useContext(GridSelectedRowStateContext);
|
|
248
|
+
var setSelectedRow = React__default["default"].useContext(GridSelectedRowDispatchContext);
|
|
224
249
|
return /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({}, other, {
|
|
225
250
|
type: "radio",
|
|
226
|
-
tabIndex:
|
|
227
|
-
|
|
251
|
+
tabIndex: 0,
|
|
252
|
+
checked: row && row.id === selectedRow,
|
|
253
|
+
value: (_row$id = row === null || row === void 0 ? void 0 : row.id) !== null && _row$id !== void 0 ? _row$id : '',
|
|
254
|
+
onChange: function onChange(event) {
|
|
255
|
+
setSelectedRow(event.target.value);
|
|
256
|
+
},
|
|
257
|
+
id: id !== null && id !== void 0 ? id : defaultId,
|
|
228
258
|
className: classes,
|
|
229
|
-
value: value,
|
|
230
259
|
name: name,
|
|
231
260
|
title: title
|
|
232
261
|
}));
|
|
@@ -240,7 +269,7 @@ StructuredListInput.propTypes = {
|
|
|
240
269
|
/**
|
|
241
270
|
* Specify whether the underlying input should be checked by default
|
|
242
271
|
*/
|
|
243
|
-
defaultChecked: PropTypes__default["default"].bool,
|
|
272
|
+
defaultChecked: deprecate["default"](PropTypes__default["default"].bool, "\nThe prop `defaultChecked` is no longer needed and will be removed in the next major version of Carbon."),
|
|
244
273
|
|
|
245
274
|
/**
|
|
246
275
|
* Specify a custom `id` for the input
|
|
@@ -255,7 +284,7 @@ StructuredListInput.propTypes = {
|
|
|
255
284
|
/**
|
|
256
285
|
* Provide an optional hook that is called each time the input is updated
|
|
257
286
|
*/
|
|
258
|
-
onChange: PropTypes__default["default"].func,
|
|
287
|
+
onChange: deprecate["default"](PropTypes__default["default"].func, "\nThe prop `onChange` will be removed in the next major version of Carbon."),
|
|
259
288
|
|
|
260
289
|
/**
|
|
261
290
|
* Provide a `title` for the input
|
|
@@ -265,11 +294,9 @@ StructuredListInput.propTypes = {
|
|
|
265
294
|
/**
|
|
266
295
|
* Specify the value of the input
|
|
267
296
|
*/
|
|
268
|
-
value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]).isRequired
|
|
297
|
+
value: deprecate["default"](PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]).isRequired, "\nThe prop `value` will be removed in the next major version of Carbon.")
|
|
269
298
|
};
|
|
270
299
|
StructuredListInput.defaultProps = {
|
|
271
|
-
onChange: function onChange() {},
|
|
272
|
-
value: 'value',
|
|
273
300
|
title: 'title'
|
|
274
301
|
};
|
|
275
302
|
function StructuredListCell(props) {
|
|
@@ -283,9 +310,17 @@ function StructuredListCell(props) {
|
|
|
283
310
|
|
|
284
311
|
var prefix = usePrefix.usePrefix();
|
|
285
312
|
var classes = cx__default["default"](className, (_classNames3 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames3, "".concat(prefix, "--structured-list-th"), head), _rollupPluginBabelHelpers.defineProperty(_classNames3, "".concat(prefix, "--structured-list-td"), !head), _rollupPluginBabelHelpers.defineProperty(_classNames3, "".concat(prefix, "--structured-list-content--nowrap"), noWrap), _classNames3));
|
|
313
|
+
|
|
314
|
+
if (head) {
|
|
315
|
+
return /*#__PURE__*/React__default["default"].createElement("span", _rollupPluginBabelHelpers["extends"]({
|
|
316
|
+
className: classes,
|
|
317
|
+
role: "columnheader"
|
|
318
|
+
}, other), children);
|
|
319
|
+
}
|
|
320
|
+
|
|
286
321
|
return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
287
322
|
className: classes,
|
|
288
|
-
role:
|
|
323
|
+
role: "cell"
|
|
289
324
|
}, other), children);
|
|
290
325
|
}
|
|
291
326
|
StructuredListCell.propTypes = {
|