@carbon/ibm-products 1.31.0 → 1.32.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/css/index-full-carbon.css +71 -5
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +67 -5
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +1 -1
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +67 -5
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +1 -1
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/DataSpreadsheet/DataSpreadsheet.js +1 -0
  14. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  15. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +2 -2
  16. package/es/components/Datagrid/Datagrid/DatagridContent.js +43 -18
  17. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  18. package/es/components/Datagrid/Datagrid/DatagridRow.js +10 -2
  19. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +12 -3
  20. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -4
  21. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +16 -8
  22. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +9 -1
  23. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +153 -87
  24. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +66 -0
  25. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +1 -1
  26. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -1
  27. package/es/components/Datagrid/useActionsColumn.js +28 -12
  28. package/es/components/Datagrid/useExpandedRow.js +0 -1
  29. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  30. package/es/components/Datagrid/useNestedRows.js +2 -2
  31. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  32. package/es/components/Datagrid/utils/DatagridActions.js +121 -0
  33. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  34. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  35. package/es/components/Datagrid/utils/getArgTypes.js +85 -0
  36. package/es/components/Datagrid/utils/makeData.js +25 -5
  37. package/es/components/InlineEdit/InlineEdit.js +7 -7
  38. package/es/components/OptionsTile/OptionsTile.js +4 -2
  39. package/es/global/js/utils/story-helper.js +5 -1
  40. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +1 -0
  41. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  42. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +2 -2
  43. package/lib/components/Datagrid/Datagrid/DatagridContent.js +44 -18
  44. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  45. package/lib/components/Datagrid/Datagrid/DatagridRow.js +19 -2
  46. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +14 -3
  47. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -4
  48. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +16 -8
  49. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +10 -7
  50. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +155 -87
  51. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +78 -0
  52. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +1 -1
  53. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -1
  54. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  55. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  56. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  57. package/lib/components/Datagrid/useNestedRows.js +3 -3
  58. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  59. package/lib/components/Datagrid/utils/DatagridActions.js +139 -0
  60. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  61. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  62. package/lib/components/Datagrid/utils/getArgTypes.js +93 -0
  63. package/lib/components/Datagrid/utils/makeData.js +26 -5
  64. package/lib/components/InlineEdit/InlineEdit.js +7 -7
  65. package/lib/components/OptionsTile/OptionsTile.js +4 -2
  66. package/lib/global/js/utils/story-helper.js +5 -1
  67. package/package.json +12 -12
  68. package/scss/components/Datagrid/styles/_datagrid.scss +0 -4
  69. package/scss/components/Datagrid/styles/_useActionsColumn.scss +12 -0
  70. package/scss/components/Datagrid/styles/_useExpandedRow.scss +30 -0
  71. package/scss/components/Datagrid/styles/_useInlineEdit.scss +6 -0
  72. package/scss/components/Datagrid/styles/_useNestedRows.scss +15 -1
  73. package/scss/components/Datagrid/styles/_useStickyColumn.scss +6 -0
  74. package/scss/components/OptionsTile/_options-tile.scss +4 -0
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DatagridActions = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _carbonComponentsReact = require("carbon-components-react");
13
+
14
+ var _iconsReact = require("@carbon/icons-react");
15
+
16
+ var _addonActions = require("@storybook/addon-actions");
17
+
18
+ var _settings = require("../../../settings");
19
+
20
+ var _ButtonMenu = require("../../ButtonMenu");
21
+
22
+ /**
23
+ * Copyright IBM Corp. 2020, 2022
24
+ *
25
+ * This source code is licensed under the Apache-2.0 license found in the
26
+ * LICENSE file in the root directory of this source tree.
27
+ */
28
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
29
+
30
+ var DatagridActions = function DatagridActions(datagridState) {
31
+ var selectedFlatRows = datagridState.selectedFlatRows,
32
+ setGlobalFilter = datagridState.setGlobalFilter,
33
+ CustomizeColumnsButton = datagridState.CustomizeColumnsButton,
34
+ RowSizeDropdown = datagridState.RowSizeDropdown,
35
+ rowSizeDropdownProps = datagridState.rowSizeDropdownProps,
36
+ useDenseHeader = datagridState.useDenseHeader;
37
+
38
+ var downloadCsv = function downloadCsv() {
39
+ alert('Downloading...');
40
+ };
41
+
42
+ var TableToolbarContent = _carbonComponentsReact.DataTable.TableToolbarContent,
43
+ TableToolbarSearch = _carbonComponentsReact.DataTable.TableToolbarSearch;
44
+
45
+ var refreshColumns = function refreshColumns() {
46
+ alert('refreshing...');
47
+ };
48
+
49
+ var leftPanelClick = function leftPanelClick() {
50
+ alert('open/close left panel...');
51
+ };
52
+
53
+ var searchForAColumn = 'Search';
54
+ var isNothingSelected = selectedFlatRows.length === 0;
55
+ var style = {
56
+ 'button:nth-child(1) > span:nth-child(1)': {
57
+ bottom: '-37px'
58
+ }
59
+ };
60
+ return isNothingSelected && (useDenseHeader && useDenseHeader ? /*#__PURE__*/_react.default.createElement(TableToolbarContent, {
61
+ size: "sm"
62
+ }, /*#__PURE__*/_react.default.createElement("div", {
63
+ style: style
64
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
65
+ kind: "ghost",
66
+ hasIconOnly: true,
67
+ tooltipPosition: "bottom",
68
+ renderIcon: _iconsReact.Download16,
69
+ iconDescription: 'Download CSV',
70
+ onClick: downloadCsv
71
+ })), /*#__PURE__*/_react.default.createElement("div", {
72
+ style: style
73
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
74
+ kind: "ghost",
75
+ hasIconOnly: true,
76
+ tooltipPosition: "bottom",
77
+ renderIcon: _iconsReact.Filter16,
78
+ iconDescription: 'Left panel',
79
+ onClick: leftPanelClick
80
+ })), /*#__PURE__*/_react.default.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/_react.default.createElement("div", {
81
+ style: style,
82
+ className: "".concat(blockClass, "__toolbar-divider")
83
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
84
+ kind: "ghost",
85
+ renderIcon: _iconsReact.Add16,
86
+ iconDescription: 'Action'
87
+ }, "Ghost button")), CustomizeColumnsButton && /*#__PURE__*/_react.default.createElement("div", {
88
+ style: style
89
+ }, /*#__PURE__*/_react.default.createElement(CustomizeColumnsButton, null))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
90
+ kind: "ghost",
91
+ hasIconOnly: true,
92
+ tooltipPosition: "bottom",
93
+ renderIcon: _iconsReact.Filter16,
94
+ iconDescription: 'Left panel',
95
+ onClick: leftPanelClick
96
+ }), /*#__PURE__*/_react.default.createElement(TableToolbarContent, null, /*#__PURE__*/_react.default.createElement(TableToolbarSearch, {
97
+ size: "xl",
98
+ id: "columnSearch",
99
+ persistent: true,
100
+ placeHolderText: searchForAColumn,
101
+ onChange: function onChange(e) {
102
+ return setGlobalFilter(e.target.value);
103
+ }
104
+ }), /*#__PURE__*/_react.default.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/_react.default.createElement("div", {
105
+ style: style
106
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
107
+ kind: "ghost",
108
+ hasIconOnly: true,
109
+ tooltipPosition: "bottom",
110
+ renderIcon: _iconsReact.Restart16,
111
+ iconDescription: 'Refresh',
112
+ onClick: refreshColumns
113
+ })), /*#__PURE__*/_react.default.createElement("div", {
114
+ style: style
115
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
116
+ kind: "ghost",
117
+ hasIconOnly: true,
118
+ tooltipPosition: "bottom",
119
+ renderIcon: _iconsReact.Download16,
120
+ iconDescription: 'Download CSV',
121
+ onClick: downloadCsv
122
+ })), CustomizeColumnsButton && /*#__PURE__*/_react.default.createElement("div", {
123
+ style: style
124
+ }, /*#__PURE__*/_react.default.createElement(CustomizeColumnsButton, null)), /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenu, {
125
+ label: "Primary button",
126
+ renderIcon: _iconsReact.Add16
127
+ }, /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
128
+ itemText: "Option 1",
129
+ onClick: (0, _addonActions.action)("Click on ButtonMenu Option 1")
130
+ }), /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
131
+ itemText: "Option 2",
132
+ onClick: (0, _addonActions.action)("Click on ButtonMenu Option 2")
133
+ }), /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
134
+ itemText: "Option 3",
135
+ onClick: (0, _addonActions.action)("Click on ButtonMenu Option 3")
136
+ })))));
137
+ };
138
+
139
+ exports.DatagridActions = DatagridActions;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DatagridPagination = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _carbonComponentsReact = require("carbon-components-react");
13
+
14
+ /* eslint-disable react/prop-types */
15
+
16
+ /**
17
+ * Copyright IBM Corp. 2022, 2022
18
+ *
19
+ * This source code is licensed under the Apache-2.0 license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ */
22
+ var DatagridPagination = function DatagridPagination(_ref) {
23
+ var state = _ref.state,
24
+ setPageSize = _ref.setPageSize,
25
+ gotoPage = _ref.gotoPage,
26
+ rows = _ref.rows;
27
+
28
+ var updatePagination = function updatePagination(_ref2) {
29
+ var page = _ref2.page,
30
+ pageSize = _ref2.pageSize;
31
+ console.log(state);
32
+ setPageSize(pageSize);
33
+ gotoPage(page - 1); // Carbon is non-zero-based
34
+ };
35
+
36
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Pagination, {
37
+ page: state.pageIndex + 1 // react-table is zero-based
38
+ ,
39
+ pageSize: state.pageSize,
40
+ pageSizes: state.pageSizes || [10, 20, 30, 40, 50],
41
+ totalItems: rows.length,
42
+ onChange: updatePagination
43
+ });
44
+ };
45
+
46
+ exports.DatagridPagination = DatagridPagination;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Wrapper = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ /* eslint-disable react/prop-types */
13
+
14
+ /**
15
+ * Copyright IBM Corp. 2020, 2022
16
+ *
17
+ * This source code is licensed under the Apache-2.0 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+ var Wrapper = function Wrapper(_ref) {
21
+ var children = _ref.children;
22
+ return /*#__PURE__*/_react.default.createElement("div", {
23
+ style: {
24
+ height: '100vh',
25
+ width: '100%',
26
+ padding: '1rem',
27
+ margin: '0',
28
+ zIndex: '0'
29
+ }
30
+ }, children);
31
+ };
32
+
33
+ exports.Wrapper = Wrapper;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ARG_TYPES = void 0;
7
+
8
+ /**
9
+ * Copyright IBM Corp. 2022, 2022
10
+ *
11
+ * This source code is licensed under the Apache-2.0 license found in the
12
+ * LICENSE file in the root directory of this source tree.
13
+ */
14
+ var ARG_TYPES = {
15
+ gridTitle: {
16
+ name: 'gridTitle',
17
+ control: 'text',
18
+ description: 'This sets the title text for the Datagrid component. _This value is set/passed inside of the `datagridState` object._',
19
+ type: {
20
+ name: 'string',
21
+ required: false
22
+ }
23
+ },
24
+ gridDescription: {
25
+ name: 'gridDescription',
26
+ control: 'text',
27
+ description: 'This sets the description text for the Datagrid component. _This value is set/passed inside of the `datagridState` object._',
28
+ type: {
29
+ name: 'string',
30
+ required: false
31
+ }
32
+ },
33
+ emptyStateTitle: {
34
+ name: 'emptyStateTitle',
35
+ control: 'text',
36
+ description: 'This sets the empty state title text for the Datagrid component. _This value is set/passed inside of the `datagridState` object._',
37
+ type: {
38
+ name: 'string',
39
+ required: false
40
+ }
41
+ },
42
+ emptyStateDescription: {
43
+ name: 'emptyStateDescription',
44
+ control: 'text',
45
+ description: 'This sets the empty state description text for the Datagrid component. _This value is set/passed inside of the `datagridState` object._',
46
+ type: {
47
+ name: 'string',
48
+ required: false
49
+ }
50
+ },
51
+ emptyStateSize: {
52
+ control: 'select',
53
+ options: ['sm', 'lg']
54
+ },
55
+ useDenseHeader: {
56
+ control: {
57
+ type: 'radio'
58
+ },
59
+ options: [true, false],
60
+ description: 'This sets the dense header option for the Datagrid component. _This value is set/passed inside of the `datagridState` object._'
61
+ },
62
+ rowSize: {
63
+ control: 'select',
64
+ options: ['xs', 'sm', 'md', 'lg', 'xl'],
65
+ description: 'This sets the height for each row of the Datagrid component. _This value is set/passed inside of the `datagridState` object._'
66
+ },
67
+ rowSizes: {
68
+ control: 'object',
69
+ description: 'This array of objects specifies the different row size options that will render from the settings icon in the table actions. _This value is set/passed inside of the `datagridState` object._'
70
+ },
71
+ onRowSizeChange: {
72
+ description: 'Callback function that is called on row size changes. _This value is set/passed inside of the `datagridState` object._'
73
+ },
74
+ rowActions: {
75
+ control: 'object',
76
+ description: 'This array of objects renders the action buttons for each row in the Datagrid. _This value is set/passed inside of the `datagridState` object._',
77
+ action: 'Row action onClick'
78
+ },
79
+ batchActions: {
80
+ control: {
81
+ type: 'radio'
82
+ },
83
+ options: [true, false],
84
+ description: 'This will allow the Datagrid component to use batch actions. _This value is set/passed inside of the `datagridState` object._'
85
+ },
86
+ expandedContentHeight: {
87
+ control: {
88
+ type: 'number'
89
+ },
90
+ description: 'This value controls the height of the expanded content area. _This value is set/passed inside of the `datagridState` object._'
91
+ }
92
+ };
93
+ exports.ARG_TYPES = ARG_TYPES;
@@ -13,16 +13,25 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _namor = _interopRequireDefault(require("namor"));
15
15
 
16
+ var _StatusIcon = require("../../StatusIcon");
17
+
16
18
  var _getInlineEditColumns = require("./getInlineEditColumns");
17
19
 
18
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
21
 
20
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
23
 
22
- var getRandomInteger = function getRandomInteger(min, max) {
23
- min = Math.ceil(min);
24
- max = Math.floor(max);
25
- return Math.floor(Math.random() * (max - min + 1)) + min;
24
+ var getRandomInteger = function getRandomInteger(min, max, decimalPlaces) {
25
+ var roundedMin = Math.ceil(min);
26
+ var roundedMax = Math.floor(max);
27
+ var randomNumber = Math.random() * (max - min) + min;
28
+
29
+ if (!decimalPlaces) {
30
+ return Math.floor(Math.random() * (roundedMax - roundedMin + 1)) + roundedMin;
31
+ }
32
+
33
+ var power = Math.pow(10, decimalPlaces);
34
+ return Math.floor(randomNumber * power) / power;
26
35
  };
27
36
 
28
37
  var makeData = function makeData() {
@@ -57,6 +66,16 @@ var range = function range(len) {
57
66
 
58
67
  exports.range = range;
59
68
 
69
+ var renderStatusIcon = function renderStatusIcon(statusChance) {
70
+ var iconProps = {
71
+ size: 'sm',
72
+ theme: 'light',
73
+ kind: statusChance > 0.66 ? 'critical' : statusChance > 0.33 ? 'minor-warning' : 'normal',
74
+ iconDescription: statusChance > 0.66 ? 'Critical' : statusChance > 0.33 ? 'Minor warning' : 'Normal'
75
+ };
76
+ return /*#__PURE__*/_react.default.createElement(_StatusIcon.StatusIcon, iconProps);
77
+ };
78
+
60
79
  var newPerson = function newPerson() {
61
80
  var statusChance = Math.random();
62
81
  var initialChartTypeIndex = getRandomInteger(0, 2);
@@ -159,7 +178,9 @@ var newPerson = function newPerson() {
159
178
  }),
160
179
  status: statusChance > 0.66 ? 'relationship' : statusChance > 0.33 ? 'complicated' : 'single',
161
180
  chartType: initialChartTypeIndex === 0 ? _getInlineEditColumns.inlineEditSelectItems[0] : initialChartTypeIndex === 1 ? _getInlineEditColumns.inlineEditSelectItems[1] : _getInlineEditColumns.inlineEditSelectItems[2],
162
- activeSince: statusChance > 0.66 ? activeSinceDate : statusChance > 0.33 ? yesterdayDate : twoDaysAgoDate
181
+ activeSince: statusChance > 0.66 ? activeSinceDate : statusChance > 0.33 ? yesterdayDate : twoDaysAgoDate,
182
+ bonus: "$\r".concat(getRandomInteger(100, 500, 2)),
183
+ status_icon: renderStatusIcon(statusChance)
163
184
  };
164
185
  };
165
186
 
@@ -56,7 +56,7 @@ var buttons = ['cancel', 'edit', 'save'];
56
56
  */
57
57
 
58
58
  var InlineEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn) {
59
- var _cx, _refInput$current, _refInput$current$inn, _cx3;
59
+ var _cx, _refInput$current, _refInput$current$tex, _cx3;
60
60
 
61
61
  var buttonTooltipAlignment = _ref.buttonTooltipAlignment,
62
62
  buttonTooltipPosition = _ref.buttonTooltipPosition,
@@ -81,7 +81,7 @@ var InlineEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn) {
81
81
  value = _ref.value,
82
82
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
83
83
  var refInput = (0, _react.useRef)({
84
- innerText: value
84
+ textContent: value
85
85
  });
86
86
  var localRef = (0, _react.useRef)(null);
87
87
  var ref = refIn || localRef;
@@ -163,15 +163,15 @@ var InlineEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn) {
163
163
  document.getSelection().removeAllRanges();
164
164
 
165
165
  if (onSave) {
166
- onSave(refInput.current.innerText);
166
+ onSave(refInput.current.textContent);
167
167
  }
168
168
  };
169
169
 
170
170
  var handleInput = function handleInput() {
171
- setInternalValue(refInput.current.innerText);
171
+ setInternalValue(refInput.current.textContent);
172
172
 
173
173
  if (onChange) {
174
- onChange(refInput.current.innerText);
174
+ onChange(refInput.current.textContent);
175
175
  }
176
176
  }; // pasting into contentEditable not supported by userEvent
177
177
 
@@ -206,7 +206,7 @@ var InlineEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn) {
206
206
  };
207
207
 
208
208
  var handleCancel = function handleCancel() {
209
- refInput.current.innerText = value;
209
+ refInput.current.textContent = value;
210
210
  handleInput(value);
211
211
  doSetEditing(false);
212
212
  document.getSelection().removeAllRanges();
@@ -274,7 +274,7 @@ var InlineEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn) {
274
274
  }, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, (0, _devtools.getDevtoolsProps)(componentName), {
275
275
  id: id,
276
276
  size: size,
277
- className: (0, _classnames.default)("".concat(blockClass, "__input"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__input--empty"), ((_refInput$current = refInput.current) === null || _refInput$current === void 0 ? void 0 : (_refInput$current$inn = _refInput$current.innerText) === null || _refInput$current$inn === void 0 ? void 0 : _refInput$current$inn.length) === 0)),
277
+ className: (0, _classnames.default)("".concat(blockClass, "__input"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__input--empty"), ((_refInput$current = refInput.current) === null || _refInput$current === void 0 ? void 0 : (_refInput$current$tex = _refInput$current.textContent) === null || _refInput$current$tex === void 0 ? void 0 : _refInput$current$tex.length) === 0)),
278
278
  contentEditable: true,
279
279
  "aria-label": labelText,
280
280
  role: "textbox",
@@ -221,12 +221,14 @@ var OptionsTile = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
221
221
  className: "".concat(blockClass, "__heading")
222
222
  }, /*#__PURE__*/_react.default.createElement("h6", {
223
223
  id: titleId,
224
- className: "".concat(blockClass, "__title")
224
+ className: "".concat(blockClass, "__title"),
225
+ title: title
225
226
  }, title), text && /*#__PURE__*/_react.default.createElement("span", {
226
227
  className: (0, _classnames.default)(summaryClasses),
227
228
  "aria-hidden": summaryHidden
228
229
  }, Icon && /*#__PURE__*/_react.default.createElement(Icon, null), /*#__PURE__*/_react.default.createElement("span", {
229
- className: "".concat(blockClass, "__summary-text")
230
+ className: "".concat(blockClass, "__summary-text"),
231
+ title: text
230
232
  }, text)));
231
233
  }
232
234
 
@@ -46,7 +46,11 @@ var getStoryTitle = function getStoryTitle(componentName) {
46
46
 
47
47
  exports.getStoryTitle = getStoryTitle;
48
48
 
49
- var getStoryId = function getStoryId(componentName, scenario) {
49
+ var getStoryId = function getStoryId(componentName, scenario, subdirectory) {
50
+ if (subdirectory) {
51
+ return "".concat((0, _csf.sanitize)(getStoryTitle(componentName)), "-").concat((0, _csf.sanitize)(subdirectory), "--").concat(scenario);
52
+ }
53
+
50
54
  return "".concat((0, _csf.sanitize)(getStoryTitle(componentName)), "--").concat(scenario);
51
55
  };
52
56
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "1.31.0",
4
+ "version": "1.32.1",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -51,26 +51,26 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@babel/cli": "^7.18.10",
54
- "@babel/core": "^7.18.13",
55
- "babel-preset-ibm-cloud-cognitive": "^0.14.19",
54
+ "@babel/core": "^7.19.1",
55
+ "babel-preset-ibm-cloud-cognitive": "^0.14.20",
56
56
  "chalk": "^4.1.2",
57
57
  "change-case": "^4.1.2",
58
58
  "copyfiles": "^2.4.1",
59
59
  "cross-env": "^7.0.3",
60
60
  "fs-extra": "^10.1.0",
61
61
  "glob": "^8.0.3",
62
- "jest": "^29.0.1",
63
- "jest-config-ibm-cloud-cognitive": "^0.24.5",
64
- "jest-environment-jsdom": "^29.0.1",
62
+ "jest": "^29.0.3",
63
+ "jest-config-ibm-cloud-cognitive": "^0.24.6",
64
+ "jest-environment-jsdom": "^29.0.3",
65
65
  "namor": "^1.1.2",
66
- "npm-check-updates": "^16.0.6",
66
+ "npm-check-updates": "^16.1.3",
67
67
  "npm-run-all": "^4.1.5",
68
68
  "rimraf": "^3.0.2",
69
- "sass": "^1.54.8",
69
+ "sass": "^1.54.9",
70
70
  "yargs": "^17.5.1"
71
71
  },
72
72
  "dependencies": {
73
- "@babel/runtime": "^7.18.9",
73
+ "@babel/runtime": "^7.19.0",
74
74
  "@carbon/telemetry": "^0.1.0",
75
75
  "immutability-helper": "^3.1.1",
76
76
  "react-dnd": "^15.1.2",
@@ -87,11 +87,11 @@
87
87
  "@carbon/motion": "^10.29.0",
88
88
  "@carbon/themes": "^10.55.0",
89
89
  "@carbon/type": "^10.45.0",
90
- "carbon-components": "^10.58.0",
91
- "carbon-components-react": "^7.59.0",
90
+ "carbon-components": "^10.58.1",
91
+ "carbon-components-react": "^7.59.1",
92
92
  "carbon-icons": "^7.0.7",
93
93
  "react": "^16.8.6 || ^17.0.1",
94
94
  "react-dom": "^16.8.6 || ^17.0.1"
95
95
  },
96
- "gitHead": "4694f431eeac26bb0787857b39aaa347edddc212"
96
+ "gitHead": "829c3e97ae9b2412f7fcb1859dc8dd8b019963ee"
97
97
  }
@@ -275,10 +275,6 @@
275
275
  flex: 1 1 auto;
276
276
  }
277
277
 
278
- .#{$block-class}__with-pagination table tr:last-of-type > td {
279
- border-bottom: none;
280
- }
281
-
282
278
  .#{$block-class}__resizer {
283
279
  position: absolute;
284
280
  z-index: 1;
@@ -22,3 +22,15 @@
22
22
  .#{$block-class}__actions-column-loading {
23
23
  margin-bottom: $spacing-03;
24
24
  }
25
+
26
+ .#{$block-class} .#{$block-class}__disabled-row-action-button {
27
+ cursor: not-allowed;
28
+ }
29
+
30
+ .#{$block-class} .#{$block-class}__disabled-row-action {
31
+ pointer-events: none;
32
+ }
33
+
34
+ .#{$block-class} .#{$block-class}__disabled-row-action svg {
35
+ fill: $disabled-03;
36
+ }
@@ -5,3 +5,33 @@
5
5
  * US Government Users Restricted Rights - Use, duplication or disclosure
6
6
  * restricted by GSA ADP Schedule Contract with IBM Corp.
7
7
  */
8
+
9
+ @import './variables';
10
+
11
+ @mixin shared-pseudo-styles() {
12
+ height: 1px;
13
+ background-color: $ui-03;
14
+ content: '';
15
+ }
16
+
17
+ .#{$block-class} .#{$block-class}__expanded-row-content {
18
+ position: relative;
19
+ padding: $spacing-05 $spacing-05 $spacing-06 $spacing-09;
20
+ }
21
+
22
+ .#{$block-class} .#{$block-class}__expanded-row-content::before {
23
+ position: absolute;
24
+ /* stylelint-disable-next-line carbon/layout-token-use */
25
+ top: -1px;
26
+ right: 0;
27
+ width: calc(100% - #{$spacing-09});
28
+ @include shared-pseudo-styles();
29
+ }
30
+
31
+ .#{$block-class} .#{$block-class}__expanded-row-content::after {
32
+ position: absolute;
33
+ bottom: 0;
34
+ left: 0;
35
+ width: 100%;
36
+ @include shared-pseudo-styles();
37
+ }
@@ -85,6 +85,7 @@ $row-heights: (
85
85
  cursor: pointer;
86
86
  outline: 0; // handled by active class
87
87
  .#{$block-class}__label-icon {
88
+ height: $spacing-05;
88
89
  padding-right: $spacing-05;
89
90
  }
90
91
  &.#{$block-class}__inline-edit-button--non-edit {
@@ -209,3 +210,8 @@ $row-heights: (
209
210
  text-overflow: ellipsis;
210
211
  white-space: nowrap;
211
212
  }
213
+
214
+ .#{$carbon-prefix}--data-table .#{$block-class}__carbon-row-hover-active td {
215
+ border-top-color: $hover-ui;
216
+ background-color: $hover-ui;
217
+ }
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Licensed Materials - Property of IBM
3
3
  * 5724-Q36
4
- * (c) Copyright IBM Corp. 2020 - 2021
4
+ * (c) Copyright IBM Corp. 2020 - 2022
5
5
  * US Government Users Restricted Rights - Use, duplication or disclosure
6
6
  * restricted by GSA ADP Schedule Contract with IBM Corp.
7
7
  */
@@ -15,3 +15,17 @@
15
15
  border-bottom: 1px solid $ui-03;
16
16
  }
17
17
  }
18
+
19
+ .#{$block-class} .#{$block-class}__expander-icon {
20
+ transition: transform $duration--fast-01 motion(entrance, productive);
21
+ }
22
+
23
+ .#{$block-class} .#{$block-class}__expander-icon--open {
24
+ transform: rotate(90deg);
25
+ }
26
+
27
+ .#{$block-class}__expanded-row
28
+ .#{$block-class}__carbon-row-expanded
29
+ td:first-child {
30
+ border-bottom: none;
31
+ }
@@ -58,3 +58,9 @@
58
58
  /* stylelint-disable-next-line */
59
59
  right: 6px !important; // offset the vertical scroll bar in the table body
60
60
  }
61
+
62
+ .#{$block-class}__select-all-toggle-on.#{$block-class}__select-all-sticky-left {
63
+ position: sticky;
64
+ z-index: 1;
65
+ left: 0;
66
+ }
@@ -70,13 +70,17 @@
70
70
  }
71
71
 
72
72
  .#{$block-class}__heading {
73
+ overflow: hidden;
73
74
  grid-column: 2;
74
75
  }
75
76
 
76
77
  .#{$block-class}__title {
77
78
  @include carbon--type-style('productive-heading-01');
78
79
 
80
+ overflow: hidden;
79
81
  color: $text-01;
82
+ text-overflow: ellipsis;
83
+ white-space: nowrap;
80
84
  }
81
85
 
82
86
  .#{$block-class}__summary {