@carbon/ibm-products 1.31.0 → 1.32.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.
Files changed (58) hide show
  1. package/css/index-full-carbon.css +57 -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 +57 -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 +57 -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/Datagrid/Datagrid/DatagridContent.js +26 -5
  16. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  17. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +12 -3
  18. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -4
  19. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +16 -8
  20. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +9 -1
  21. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +153 -87
  22. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +66 -0
  23. package/es/components/Datagrid/useActionsColumn.js +28 -12
  24. package/es/components/Datagrid/useExpandedRow.js +0 -1
  25. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  26. package/es/components/Datagrid/useNestedRows.js +2 -2
  27. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  28. package/es/components/Datagrid/utils/DatagridActions.js +121 -0
  29. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  30. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  31. package/es/components/Datagrid/utils/getArgTypes.js +85 -0
  32. package/es/global/js/utils/story-helper.js +5 -1
  33. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +1 -0
  34. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  35. package/lib/components/Datagrid/Datagrid/DatagridContent.js +27 -5
  36. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  37. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +14 -3
  38. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -4
  39. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +16 -8
  40. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +10 -7
  41. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +155 -87
  42. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +78 -0
  43. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  44. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  45. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  46. package/lib/components/Datagrid/useNestedRows.js +3 -3
  47. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  48. package/lib/components/Datagrid/utils/DatagridActions.js +139 -0
  49. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  50. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  51. package/lib/components/Datagrid/utils/getArgTypes.js +93 -0
  52. package/lib/global/js/utils/story-helper.js +5 -1
  53. package/package.json +2 -2
  54. package/scss/components/Datagrid/styles/_datagrid.scss +0 -4
  55. package/scss/components/Datagrid/styles/_useActionsColumn.scss +12 -0
  56. package/scss/components/Datagrid/styles/_useExpandedRow.scss +30 -0
  57. package/scss/components/Datagrid/styles/_useNestedRows.scss +15 -1
  58. package/scss/components/Datagrid/styles/_useStickyColumn.scss +6 -0
@@ -7,8 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
12
16
  var _commonColumnIds = require("./common-column-ids");
13
17
 
14
18
  var _DatagridSelectAllWithToggle = _interopRequireDefault(require("./Datagrid/DatagridSelectAllWithToggle"));
@@ -53,12 +57,18 @@ var useSelectAllWithToggleComponent = function useSelectAllWithToggleComponent(h
53
57
 
54
58
  var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
55
59
  hooks.getCellProps.push(function (props, data) {
60
+ var _columns$;
61
+
56
62
  var column = data.cell.column;
57
- var DatagridPagination = data.instance.DatagridPagination;
63
+ var _data$instance = data.instance,
64
+ DatagridPagination = _data$instance.DatagridPagination,
65
+ columns = _data$instance.columns,
66
+ withStickyColumn = _data$instance.withStickyColumn;
67
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
58
68
 
59
69
  if (column.id === _commonColumnIds.selectionColumnId && DatagridPagination) {
60
70
  return [props, {
61
- className: "".concat(blockClass, "__select-all-toggle-on")
71
+ className: (0, _classnames.default)("".concat(blockClass, "__select-all-toggle-on"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
62
72
  }];
63
73
  }
64
74
 
@@ -72,14 +82,18 @@ var Header = function Header(gridState) {
72
82
  selectAllToggle = gridState.selectAllToggle,
73
83
  getToggleAllPageRowsSelectedProps = gridState.getToggleAllPageRowsSelectedProps,
74
84
  getToggleAllRowsSelectedProps = gridState.getToggleAllRowsSelectedProps,
75
- isAllRowsSelected = gridState.isAllRowsSelected;
85
+ isAllRowsSelected = gridState.isAllRowsSelected,
86
+ withStickyColumn = gridState.withStickyColumn,
87
+ columns = gridState.columns;
76
88
  var props = {
77
89
  tableId: tableId,
78
90
  isFetching: isFetching,
79
91
  selectAllToggle: selectAllToggle,
80
92
  getToggleAllPageRowsSelectedProps: getToggleAllPageRowsSelectedProps,
81
93
  getToggleAllRowsSelectedProps: getToggleAllRowsSelectedProps,
82
- isAllRowsSelected: isAllRowsSelected
94
+ isAllRowsSelected: isAllRowsSelected,
95
+ withStickyColumn: withStickyColumn,
96
+ columns: columns
83
97
  };
84
98
  return /*#__PURE__*/_react.default.createElement(_DatagridSelectAllWithToggle.default, props);
85
99
  };
@@ -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;
@@ -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.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -93,5 +93,5 @@
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": "07980288bb0aeea68a7b884846fb675e9bba82bd"
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
+ }
@@ -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
+ }