@carbon/ibm-products 1.31.0 → 1.32.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }