@carbon/ibm-products 2.6.0 → 2.7.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 (56) hide show
  1. package/css/index-full-carbon.css +6291 -5856
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +21 -21
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +2 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +1259 -193
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +3674 -3623
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/CreateTearsheet/CreateTearsheet.js +30 -14
  18. package/es/components/CreateTearsheet/CreateTearsheetStep.js +10 -4
  19. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -0
  20. package/es/components/Datagrid/Datagrid/Datagrid.js +12 -7
  21. package/es/components/Datagrid/Datagrid/DatagridContent.js +18 -14
  22. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +12 -1
  23. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
  24. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
  25. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +11 -17
  26. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
  27. package/es/components/Datagrid/useDefaultStringRenderer.js +2 -1
  28. package/es/components/Datagrid/useSortableColumns.js +13 -5
  29. package/es/components/Datagrid/utils/getColTitle.js +25 -0
  30. package/es/components/NotificationsPanel/NotificationsPanel.js +5 -5
  31. package/es/components/OptionsTile/OptionsTile.js +2 -4
  32. package/es/global/js/hooks/useCreateComponentStepChange.js +98 -49
  33. package/es/global/js/hooks/useResizeObserver.js +15 -1
  34. package/es/global/js/hooks/useRetrieveStepData.js +1 -1
  35. package/es/global/js/utils/StoryDocsPage.js +0 -1
  36. package/lib/components/CreateTearsheet/CreateTearsheet.js +30 -14
  37. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +10 -4
  38. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -0
  39. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -7
  40. package/lib/components/Datagrid/Datagrid/DatagridContent.js +17 -13
  41. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +12 -1
  42. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
  43. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
  44. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +11 -17
  45. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
  46. package/lib/components/Datagrid/useDefaultStringRenderer.js +2 -1
  47. package/lib/components/Datagrid/useSortableColumns.js +13 -5
  48. package/lib/components/Datagrid/utils/getColTitle.js +32 -0
  49. package/lib/components/NotificationsPanel/NotificationsPanel.js +5 -5
  50. package/lib/components/OptionsTile/OptionsTile.js +2 -4
  51. package/lib/global/js/hooks/useCreateComponentStepChange.js +98 -49
  52. package/lib/global/js/hooks/useResizeObserver.js +15 -1
  53. package/lib/global/js/hooks/useRetrieveStepData.js +1 -1
  54. package/lib/global/js/utils/StoryDocsPage.js +0 -1
  55. package/package.json +9 -9
  56. package/scss/components/Datagrid/styles/_useColumnCenterAlign.scss +9 -9
@@ -7,27 +7,28 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
 
10
+ import { FilterContext, FilterPanel } from './addons/Filtering';
10
11
  import React, { useContext, useEffect, useRef } from 'react';
11
- import cx from 'classnames';
12
- import PropTypes from 'prop-types';
13
- import { TableContainer, Table } from '@carbon/react';
14
- import { px } from '@carbon/layout';
15
- import DatagridHead from './DatagridHead';
12
+ import { Table, TableContainer } from '@carbon/react';
13
+ import { carbon, pkg } from '../../../settings';
14
+ import { CLEAR_FILTERS } from './addons/Filtering/constants';
16
15
  import DatagridBody from './DatagridBody';
16
+ import DatagridHead from './DatagridHead';
17
17
  import DatagridToolbar from './DatagridToolbar';
18
- import { handleGridKeyPress } from './addons/InlineEdit/handleGridKeyPress';
19
- import { carbon, pkg } from '../../../settings';
18
+ import { FilterSummary } from '../../FilterSummary';
20
19
  import { InlineEditContext } from './addons/InlineEdit/InlineEditContext';
21
- import { FilterContext, FilterPanel } from './addons/Filtering';
20
+ import PropTypes from 'prop-types';
21
+ import cx from 'classnames';
22
22
  import { handleGridFocus } from './addons/InlineEdit/handleGridFocus';
23
+ import { handleGridKeyPress } from './addons/InlineEdit/handleGridKeyPress';
24
+ import { px } from '@carbon/layout';
23
25
  import { useClickOutside } from '../../../global/js/hooks';
24
26
  import { useMultipleKeyTracking } from '../../DataSpreadsheet/hooks';
25
- import { FilterSummary } from '../../FilterSummary';
26
- import { CLEAR_FILTERS } from './addons/Filtering/constants';
27
27
  var blockClass = "".concat(pkg.prefix, "--datagrid");
28
28
  export var DatagridContent = function DatagridContent(_ref) {
29
29
  var _cx4;
30
- var datagridState = _ref.datagridState;
30
+ var datagridState = _ref.datagridState,
31
+ title = _ref.title;
31
32
  var _useContext = useContext(InlineEditContext),
32
33
  inlineEditState = _useContext.state,
33
34
  dispatch = _useContext.dispatch;
@@ -95,7 +96,8 @@ export var DatagridContent = function DatagridContent(_ref) {
95
96
  } : null,
96
97
  onFocus: withInlineEdit ? function () {
97
98
  return handleGridFocus(inlineEditState, dispatch);
98
- } : null
99
+ } : null,
100
+ title: title
99
101
  }), !withVirtualScroll ? /*#__PURE__*/React.createElement(DatagridHead, datagridState) : null, /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
100
102
  rows: rows
101
103
  })));
@@ -126,7 +128,8 @@ export var DatagridContent = function DatagridContent(_ref) {
126
128
  filters: filterTags,
127
129
  clearFilters: function clearFilters() {
128
130
  return EventEmitter.dispatch(CLEAR_FILTERS);
129
- }
131
+ },
132
+ renderLabel: filterProps.renderLabel
130
133
  });
131
134
  };
132
135
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableContainer, {
@@ -177,5 +180,6 @@ DatagridContent.propTypes = {
177
180
  setAllFilters: PropTypes.func,
178
181
  getFilterProps: PropTypes.func,
179
182
  state: PropTypes.object
180
- })
183
+ }),
184
+ title: PropTypes.string
181
185
  };
@@ -13,7 +13,18 @@ import cx from 'classnames';
13
13
  import { TableHeader, TableRow } from '@carbon/react';
14
14
  import { selectionColumnId } from '../common-column-ids';
15
15
  import { pkg } from '../../../settings';
16
+ import getColTitle from '../utils/getColTitle';
16
17
  var blockClass = "".concat(pkg.prefix, "--datagrid");
18
+ var getAccessibilityProps = function getAccessibilityProps(header) {
19
+ var props = {};
20
+ var title = getColTitle(header);
21
+ if (title) {
22
+ props.title = title;
23
+ } else {
24
+ props['aria-hidden'] = true;
25
+ }
26
+ return props;
27
+ };
17
28
  var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
18
29
  return /*#__PURE__*/React.createElement(TableRow, _extends({}, headerGroup.getHeaderGroupProps({
19
30
  role: false
@@ -36,7 +47,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
36
47
  }), {
37
48
  className: cx((_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__resizableColumn"), header.getResizerProps), _defineProperty(_cx, "".concat(blockClass, "__isResizing"), header.isResizing), _defineProperty(_cx, "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable), _defineProperty(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
38
49
  key: header.id
39
- }), header.render('Header'), header.getResizerProps && /*#__PURE__*/React.createElement("div", _extends({}, header.getResizerProps(), {
50
+ }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/React.createElement("div", _extends({}, header.getResizerProps(), {
40
51
  className: "".concat(blockClass, "__resizer")
41
52
  })));
42
53
  }));
@@ -35,8 +35,7 @@ var Columns = function Columns(_ref) {
35
35
  onSelectColumn = _ref.onSelectColumn,
36
36
  assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
37
37
  assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
38
- selectAllLabel = _ref.selectAllLabel,
39
- isTableSortable = _ref.isTableSortable;
38
+ selectAllLabel = _ref.selectAllLabel;
40
39
  var _React$useState = React.useState(''),
41
40
  _React$useState2 = _slicedToArray(_React$useState, 2),
42
41
  ariaRegionText = _React$useState2[0],
@@ -92,7 +91,6 @@ var Columns = function Columns(_ref) {
92
91
  filterString: filterString,
93
92
  focusIndex: focusIndex,
94
93
  getNextIndex: getNextIndex,
95
- isTableSortable: isTableSortable,
96
94
  moveElement: moveElement,
97
95
  onSelectColumn: onSelectColumn,
98
96
  setAriaRegionText: setAriaRegionText,
@@ -108,7 +106,6 @@ Columns.propTypes = {
108
106
  filterString: PropTypes.string.isRequired,
109
107
  getVisibleColumnsCount: PropTypes.func.isRequired,
110
108
  instructionsLabel: PropTypes.string,
111
- isTableSortable: PropTypes.bool.isRequired,
112
109
  onSelectColumn: PropTypes.func.isRequired,
113
110
  selectAllLabel: PropTypes.string,
114
111
  setColumnStatus: PropTypes.func,
@@ -41,8 +41,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
41
41
  _ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
42
42
  assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
43
43
  _ref$selectAllLabel = _ref.selectAllLabel,
44
- selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel,
45
- isTableSortable = _ref.isTableSortable;
44
+ selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel;
46
45
  var _useState = useState(''),
47
46
  _useState2 = _slicedToArray(_useState, 2),
48
47
  visibleColumnsCount = _useState2[0],
@@ -152,8 +151,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
152
151
  setColumnObjects(cols);
153
152
  setDirty();
154
153
  },
155
- selectAllLabel: selectAllLabel,
156
- isTableSortable: isTableSortable
154
+ selectAllLabel: selectAllLabel
157
155
  }));
158
156
  };
159
157
  CustomizeColumnsTearsheet.propTypes = {
@@ -164,7 +162,6 @@ CustomizeColumnsTearsheet.propTypes = {
164
162
  findColumnPlaceholderLabel: PropTypes.string,
165
163
  instructionsLabel: PropTypes.string,
166
164
  isOpen: PropTypes.bool.isRequired,
167
- isTableSortable: PropTypes.bool.isRequired,
168
165
  onSaveColumnPrefs: PropTypes.func.isRequired,
169
166
  originalColumnDefinitions: PropTypes.array.isRequired,
170
167
  primaryButtonTextLabel: PropTypes.string,
@@ -11,13 +11,13 @@ import { Checkbox } from '@carbon/react';
11
11
  import { isColumnVisible } from './common';
12
12
  import DraggableElement from '../../DraggableElement';
13
13
  import { pkg } from '../../../../../settings';
14
+ import getColTitle from '../../../utils/getColTitle';
14
15
  var blockClass = "".concat(pkg.prefix, "--datagrid");
15
16
  export var DraggableItemsList = function DraggableItemsList(_ref) {
16
17
  var columns = _ref.columns,
17
18
  filterString = _ref.filterString,
18
19
  focusIndex = _ref.focusIndex,
19
20
  getNextIndex = _ref.getNextIndex,
20
- isTableSortable = _ref.isTableSortable,
21
21
  moveElement = _ref.moveElement,
22
22
  onSelectColumn = _ref.onSelectColumn,
23
23
  setAriaRegionText = _ref.setAriaRegionText,
@@ -26,23 +26,18 @@ export var DraggableItemsList = function DraggableItemsList(_ref) {
26
26
  return /*#__PURE__*/React.createElement(React.Fragment, null, columns
27
27
  // hide the columns without Header, e.g the sticky actions, spacer
28
28
  .filter(function (colDef) {
29
- var _colDef$Header$props$, _colDef$Header$props;
30
- var sortableTitle = isTableSortable && ((_colDef$Header$props$ = colDef.Header().props.children.props) === null || _colDef$Header$props$ === void 0 ? void 0 : _colDef$Header$props$.title);
31
- return !!colDef.Header.props && !!((_colDef$Header$props = colDef.Header.props) !== null && _colDef$Header$props !== void 0 && _colDef$Header$props.title) || isTableSortable && !!sortableTitle;
32
- }).filter(function (colDef) {
29
+ return !!getColTitle(colDef);
30
+ }).filter(Boolean).filter(function (colDef) {
33
31
  return !colDef.isAction;
34
32
  }).filter(function (colDef) {
35
- var _colDef$Header$props$2, _colDef$Header$props2;
36
- var sortableTitle = isTableSortable && ((_colDef$Header$props$2 = colDef.Header().props.children.props) === null || _colDef$Header$props$2 === void 0 ? void 0 : _colDef$Header$props$2.title);
37
- return filterString.length === 0 || (isTableSortable ? sortableTitle === null || sortableTitle === void 0 ? void 0 : sortableTitle.toLowerCase().includes(filterString) : (_colDef$Header$props2 = colDef.Header.props) === null || _colDef$Header$props2 === void 0 || (_colDef$Header$props2 = _colDef$Header$props2.title) === null || _colDef$Header$props2 === void 0 ? void 0 : _colDef$Header$props2.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
33
+ var _getColTitle;
34
+ return filterString.length === 0 || ((_getColTitle = getColTitle(colDef)) === null || _getColTitle === void 0 ? void 0 : _getColTitle.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
38
35
  }).map(function (colDef, i) {
39
- var _colDef$Header$props$3, _colDef$Header$props3, _colDef$Header$props4, _colDef$Header$props5, _colDef$Header$props6;
40
- var isSortableColumn = !!colDef.canSort && !!isTableSortable;
41
- var sortableTitle = isTableSortable && ((_colDef$Header$props$3 = colDef.Header().props.children.props) === null || _colDef$Header$props$3 === void 0 ? void 0 : _colDef$Header$props$3.title);
36
+ var colHeaderTitle = getColTitle(colDef);
42
37
  var searchString = new RegExp('(' + filterString + ')');
43
- var res = filterString.length ? isSortableColumn ? sortableTitle.toLowerCase().split(searchString) : colDef.Header.props.title.toLowerCase().split(searchString) : null;
38
+ var res = filterString.length ? colHeaderTitle.toLowerCase().split(searchString) : null;
44
39
  var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
45
- var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : isSortableColumn ? sortableTitle : (_colDef$Header$props3 = colDef.Header.props) === null || _colDef$Header$props3 === void 0 ? void 0 : _colDef$Header$props3.title;
40
+ var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colHeaderTitle;
46
41
  var isFrozenColumn = !!colDef.sticky;
47
42
  var listContents = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
48
43
  wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
@@ -53,8 +48,8 @@ export var DraggableItemsList = function DraggableItemsList(_ref) {
53
48
  return onSelectColumn(colDef, checked);
54
49
  },
55
50
  id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
56
- labelText: isSortableColumn ? sortableTitle : (_colDef$Header$props4 = colDef.Header.props) === null || _colDef$Header$props4 === void 0 ? void 0 : _colDef$Header$props4.title,
57
- title: isSortableColumn ? sortableTitle : (_colDef$Header$props5 = colDef.Header.props) === null || _colDef$Header$props5 === void 0 ? void 0 : _colDef$Header$props5.title,
51
+ labelText: colHeaderTitle,
52
+ title: colHeaderTitle,
58
53
  className: "".concat(blockClass, "__customize-columns-checkbox"),
59
54
  hideLabel: true
60
55
  }), /*#__PURE__*/React.createElement("div", {
@@ -71,7 +66,7 @@ export var DraggableItemsList = function DraggableItemsList(_ref) {
71
66
  id: "dnd-datagrid-columns-".concat(colDef.id),
72
67
  type: "column-customization",
73
68
  disabled: filterString.length > 0 || isFrozenColumn,
74
- ariaLabel: isSortableColumn ? sortableTitle : (_colDef$Header$props6 = colDef.Header.props) === null || _colDef$Header$props6 === void 0 ? void 0 : _colDef$Header$props6.title,
69
+ ariaLabel: colHeaderTitle,
75
70
  onGrab: setAriaRegionText,
76
71
  isFocused: focusIndex === i,
77
72
  moveElement: moveElement,
@@ -100,7 +95,6 @@ DraggableItemsList.propTypes = {
100
95
  filterString: PropTypes.string.isRequired,
101
96
  focusIndex: PropTypes.number.isRequired,
102
97
  getNextIndex: PropTypes.func.isRequired,
103
- isTableSortable: PropTypes.bool,
104
98
  moveElement: PropTypes.func.isRequired,
105
99
  onSelectColumn: PropTypes.func.isRequired,
106
100
  setAriaRegionText: PropTypes.func.isRequired,
@@ -20,7 +20,6 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
20
20
  rest = _objectWithoutProperties(_instance$customizeCo, _excluded);
21
21
  return /*#__PURE__*/React.createElement(CustomizeColumnsTearsheet, _extends({}, rest, labels, {
22
22
  isOpen: isTearsheetOpen,
23
- isTableSortable: (instance === null || instance === void 0 ? void 0 : instance.isTableSortable) || false,
24
23
  setIsTearsheetOpen: setIsTearsheetOpen,
25
24
  columnDefinitions: instance.allColumns,
26
25
  originalColumnDefinitions: instance.columns,
@@ -24,7 +24,8 @@ var useDefaultStringRenderer = function useDefaultStringRenderer(hooks) {
24
24
  var HeaderRenderer = function HeaderRenderer(header) {
25
25
  return /*#__PURE__*/React.createElement("div", {
26
26
  className: "".concat(blockClass, "__defaultStringRenderer"),
27
- title: typeof header === 'string' ? header : ''
27
+ title: typeof header === 'string' ? header : '',
28
+ key: typeof header === 'string' ? header : ''
28
29
  }, header);
29
30
  };
30
31
  var visibleColumns = function visibleColumns(columns) {
@@ -25,8 +25,12 @@ var getAriaSortValue = function getAriaSortValue(col, _ref) {
25
25
  var ascendingSortableLabelText = _ref.ascendingSortableLabelText,
26
26
  descendingSortableLabelText = _ref.descendingSortableLabelText,
27
27
  defaultSortableLabelText = _ref.defaultSortableLabelText;
28
- var isSorted = col.isSorted,
29
- isSortedDesc = col.isSortedDesc;
28
+ if (!col) {
29
+ return;
30
+ }
31
+ var _ref2 = col || {},
32
+ isSorted = _ref2.isSorted,
33
+ isSortedDesc = _ref2.isSortedDesc;
30
34
  if (!isSorted) {
31
35
  return defaultSortableLabelText || 'none';
32
36
  }
@@ -38,16 +42,20 @@ var getAriaSortValue = function getAriaSortValue(col, _ref) {
38
42
  }
39
43
  };
40
44
  var getAriaPressedValue = function getAriaPressedValue(col) {
41
- var isSorted = col.isSorted;
45
+ if (!col) {
46
+ return;
47
+ }
48
+ var _ref3 = col || {},
49
+ isSorted = _ref3.isSorted;
42
50
  if (isSorted) {
43
51
  return 'true';
44
52
  }
45
53
  return 'false';
46
54
  };
47
55
  var useSortableColumns = function useSortableColumns(hooks) {
48
- var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref2) {
56
+ var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref4) {
49
57
  var _instance$customizeCo;
50
- var instance = _ref2.instance;
58
+ var instance = _ref4.instance;
51
59
  var onSort = instance.onSort,
52
60
  ascendingSortableLabelText = instance.ascendingSortableLabelText,
53
61
  descendingSortableLabelText = instance.descendingSortableLabelText,
@@ -0,0 +1,25 @@
1
+ // This function recursively looks for the nested header element until we can find the key which contains the title.
2
+ // This can happen if multiple hooks are used together that manipulate the rendering of the column
3
+ // header, such as `useColumnCenterAlign` and `useSortableColumns`.
4
+ var getNestedTitle = function getNestedTitle(component) {
5
+ if (component && !component.key) {
6
+ return getNestedTitle(component.children);
7
+ }
8
+ if (component && component.key && typeof component.key === 'string') {
9
+ return component.key;
10
+ }
11
+ };
12
+ var getColTitle = function getColTitle(col) {
13
+ var _col$Header;
14
+ if (!col) {
15
+ return;
16
+ }
17
+ var checkTitle = function checkTitle() {
18
+ if (col.Header().props.children.props && col.Header().props.children.props.title) {
19
+ return col.Header().props.children.props.title;
20
+ }
21
+ return getNestedTitle(col.Header().props.children.props);
22
+ };
23
+ return typeof (col === null || col === void 0 ? void 0 : col.Header) === 'function' ? checkTitle() : col === null || col === void 0 || (_col$Header = col.Header) === null || _col$Header === void 0 || (_col$Header = _col$Header.props) === null || _col$Header === void 0 ? void 0 : _col$Header.title;
24
+ };
25
+ export default getColTitle;
@@ -331,7 +331,7 @@ export var NotificationsPanel = /*#__PURE__*/React.forwardRef(function (_ref, re
331
331
  className: "".concat(blockClass, "__header-container")
332
332
  }, /*#__PURE__*/React.createElement("div", {
333
333
  className: "".concat(blockClass, "__header-flex")
334
- }, /*#__PURE__*/React.createElement("h1", {
334
+ }, /*#__PURE__*/React.createElement("h2", {
335
335
  className: "".concat(blockClass, "__header")
336
336
  }, title), /*#__PURE__*/React.createElement(Button, {
337
337
  size: "sm",
@@ -340,7 +340,7 @@ export var NotificationsPanel = /*#__PURE__*/React.forwardRef(function (_ref, re
340
340
  onClick: function onClick() {
341
341
  return onDismissAllNotifications();
342
342
  }
343
- }, dismissAllLabel)), /*#__PURE__*/React.createElement(Toggle, {
343
+ }, dismissAllLabel)), onDoNotDisturbChange && /*#__PURE__*/React.createElement(Toggle, {
344
344
  size: "sm",
345
345
  className: "".concat(blockClass, "__do-not-disturb-toggle"),
346
346
  id: "".concat(blockClass, "__do-not-disturb-toggle-component"),
@@ -441,11 +441,11 @@ NotificationsPanel.propTypes = {
441
441
  */
442
442
  dismissSingleNotificationIconDescription: PropTypes.string,
443
443
  /**
444
- * Determines if the `Do not disturb` toggle is on or off when the component is rendered
444
+ * Optional: Determines if the `Do not disturb` toggle is on or off when the component is rendered
445
445
  */
446
446
  doNotDisturbDefaultToggled: PropTypes.bool,
447
447
  /**
448
- * Label for Do not disturb toggle
448
+ * Optional: Label for Do not disturb toggle
449
449
  */
450
450
  doNotDisturbLabel: PropTypes.string,
451
451
  /**
@@ -493,7 +493,7 @@ NotificationsPanel.propTypes = {
493
493
  */
494
494
  onDismissSingleNotification: PropTypes.func,
495
495
  /**
496
- * Function that returns the current selected value of the disable notification toggle
496
+ * Optional: function that returns the current selected value of the disable notification toggle
497
497
  */
498
498
  onDoNotDisturbChange: PropTypes.func,
499
499
  /**
@@ -217,13 +217,11 @@ export var OptionsTile = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
217
217
  id: "".concat(id, "-toggle"),
218
218
  className: "".concat(blockClass, "__toggle"),
219
219
  toggled: enabled,
220
- labelA: "",
221
- labelB: "",
222
220
  "aria-labelledby": titleId,
221
+ hideLabel: true,
223
222
  onToggle: onToggle,
224
223
  size: "sm",
225
- disabled: isLocked,
226
- labelText: title
224
+ disabled: isLocked
227
225
  })), isExpandable ? /*#__PURE__*/React.createElement("details", {
228
226
  open: isOpen,
229
227
  ref: detailsRef
@@ -1,7 +1,7 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  /**
4
- * Copyright IBM Corp. 2021, 2022
4
+ * Copyright IBM Corp. 2021, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -12,16 +12,19 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
12
12
  var firstIncludedStep = _ref.firstIncludedStep,
13
13
  lastIncludedStep = _ref.lastIncludedStep,
14
14
  stepData = _ref.stepData,
15
+ onPrevious = _ref.onPrevious,
15
16
  onNext = _ref.onNext,
16
17
  isSubmitDisabled = _ref.isSubmitDisabled,
17
18
  setCurrentStep = _ref.setCurrentStep,
18
19
  setIsSubmitting = _ref.setIsSubmitting,
19
- setShouldViewAll = _ref.setShouldViewAll,
20
+ _ref$setLoadingPrevio = _ref.setLoadingPrevious,
21
+ setLoadingPrevious = _ref$setLoadingPrevio === void 0 ? null : _ref$setLoadingPrevio,
22
+ _ref$loadingPrevious = _ref.loadingPrevious,
23
+ loadingPrevious = _ref$loadingPrevious === void 0 ? false : _ref$loadingPrevious,
20
24
  onClose = _ref.onClose,
21
25
  onRequestSubmit = _ref.onRequestSubmit,
22
26
  componentName = _ref.componentName,
23
27
  currentStep = _ref.currentStep,
24
- shouldViewAll = _ref.shouldViewAll,
25
28
  backButtonText = _ref.backButtonText,
26
29
  cancelButtonText = _ref.cancelButtonText,
27
30
  submitButtonText = _ref.submitButtonText,
@@ -43,6 +46,21 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
43
46
  return prev;
44
47
  });
45
48
  }, [setCurrentStep, setIsSubmitting, stepData]);
49
+ var moveToPreviousStep = useCallback(function () {
50
+ if (componentName !== 'CreateFullPage') {
51
+ setLoadingPrevious(false);
52
+ }
53
+ setCurrentStep(function (prev) {
54
+ // Find previous included step to render
55
+ // There will always be a previous step otherwise we will
56
+ // have disabled the back button since we have reached the first visible step
57
+ do {
58
+ var _stepData2;
59
+ prev--;
60
+ } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
61
+ return prev;
62
+ });
63
+ }, [setCurrentStep, stepData, setLoadingPrevious, componentName]);
46
64
 
47
65
  // useEffect to handle multi step logic
48
66
  useEffect(function () {
@@ -51,7 +69,6 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
51
69
  setCurrentStep(0);
52
70
  }
53
71
  setIsSubmitting(false);
54
- setShouldViewAll(false);
55
72
  onClose();
56
73
  };
57
74
  var handleOnRequestSubmit = /*#__PURE__*/function () {
@@ -81,104 +98,136 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
81
98
  return _ref2.apply(this, arguments);
82
99
  };
83
100
  }();
84
- var handleNext = /*#__PURE__*/function () {
101
+ var handlePrevious = /*#__PURE__*/function () {
85
102
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
86
103
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
87
104
  while (1) switch (_context2.prev = _context2.next) {
105
+ case 0:
106
+ if (!(componentName === 'CreateFullPage')) {
107
+ _context2.next = 2;
108
+ break;
109
+ }
110
+ return _context2.abrupt("return");
111
+ case 2:
112
+ setLoadingPrevious(true);
113
+ if (!(typeof onPrevious === 'function')) {
114
+ _context2.next = 15;
115
+ break;
116
+ }
117
+ _context2.prev = 4;
118
+ _context2.next = 7;
119
+ return onPrevious();
120
+ case 7:
121
+ moveToPreviousStep();
122
+ _context2.next = 13;
123
+ break;
124
+ case 10:
125
+ _context2.prev = 10;
126
+ _context2.t0 = _context2["catch"](4);
127
+ console.warn("".concat(componentName, " onBack error: ").concat(_context2.t0));
128
+ case 13:
129
+ _context2.next = 16;
130
+ break;
131
+ case 15:
132
+ moveToPreviousStep();
133
+ case 16:
134
+ case "end":
135
+ return _context2.stop();
136
+ }
137
+ }, _callee2, null, [[4, 10]]);
138
+ }));
139
+ return function handlePrevious() {
140
+ return _ref3.apply(this, arguments);
141
+ };
142
+ }();
143
+ var handleNext = /*#__PURE__*/function () {
144
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
145
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
146
+ while (1) switch (_context3.prev = _context3.next) {
88
147
  case 0:
89
148
  setIsSubmitting(true);
90
149
  if (!(typeof onNext === 'function')) {
91
- _context2.next = 14;
150
+ _context3.next = 14;
92
151
  break;
93
152
  }
94
- _context2.prev = 2;
95
- _context2.next = 5;
153
+ _context3.prev = 2;
154
+ _context3.next = 5;
96
155
  return onNext();
97
156
  case 5:
98
157
  continueToNextStep();
99
- _context2.next = 12;
158
+ _context3.next = 12;
100
159
  break;
101
160
  case 8:
102
- _context2.prev = 8;
103
- _context2.t0 = _context2["catch"](2);
161
+ _context3.prev = 8;
162
+ _context3.t0 = _context3["catch"](2);
104
163
  setIsSubmitting(false);
105
- console.warn("".concat(componentName, " onNext error: ").concat(_context2.t0));
164
+ console.warn("".concat(componentName, " onNext error: ").concat(_context3.t0));
106
165
  case 12:
107
- _context2.next = 15;
166
+ _context3.next = 15;
108
167
  break;
109
168
  case 14:
110
169
  continueToNextStep();
111
170
  case 15:
112
171
  case "end":
113
- return _context2.stop();
172
+ return _context3.stop();
114
173
  }
115
- }, _callee2, null, [[2, 8]]);
174
+ }, _callee3, null, [[2, 8]]);
116
175
  }));
117
176
  return function handleNext() {
118
- return _ref3.apply(this, arguments);
177
+ return _ref4.apply(this, arguments);
119
178
  };
120
179
  }();
121
180
  var handleSubmit = /*#__PURE__*/function () {
122
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
123
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
124
- while (1) switch (_context3.prev = _context3.next) {
181
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
182
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
183
+ while (1) switch (_context4.prev = _context4.next) {
125
184
  case 0:
126
185
  setIsSubmitting(true);
127
186
  // last step should have onNext as well
128
187
  if (!(typeof onNext === 'function')) {
129
- _context3.next = 15;
188
+ _context4.next = 15;
130
189
  break;
131
190
  }
132
- _context3.prev = 2;
133
- _context3.next = 5;
191
+ _context4.prev = 2;
192
+ _context4.next = 5;
134
193
  return onNext();
135
194
  case 5:
136
- _context3.next = 7;
195
+ _context4.next = 7;
137
196
  return handleOnRequestSubmit();
138
197
  case 7:
139
- _context3.next = 13;
198
+ _context4.next = 13;
140
199
  break;
141
200
  case 9:
142
- _context3.prev = 9;
143
- _context3.t0 = _context3["catch"](2);
201
+ _context4.prev = 9;
202
+ _context4.t0 = _context4["catch"](2);
144
203
  setIsSubmitting(false);
145
- console.warn("".concat(componentName, " onNext error: ").concat(_context3.t0));
204
+ console.warn("".concat(componentName, " onNext error: ").concat(_context4.t0));
146
205
  case 13:
147
- _context3.next = 17;
206
+ _context4.next = 17;
148
207
  break;
149
208
  case 15:
150
- _context3.next = 17;
209
+ _context4.next = 17;
151
210
  return handleOnRequestSubmit();
152
211
  case 17:
153
212
  case "end":
154
- return _context3.stop();
213
+ return _context4.stop();
155
214
  }
156
- }, _callee3, null, [[2, 9]]);
215
+ }, _callee4, null, [[2, 9]]);
157
216
  }));
158
217
  return function handleSubmit() {
159
- return _ref4.apply(this, arguments);
218
+ return _ref5.apply(this, arguments);
160
219
  };
161
220
  }();
162
221
  if ((stepData === null || stepData === void 0 ? void 0 : stepData.length) > 0) {
163
222
  var buttons = [];
164
- if ((stepData === null || stepData === void 0 ? void 0 : stepData.length) > 1 && !shouldViewAll) {
223
+ if ((stepData === null || stepData === void 0 ? void 0 : stepData.length) > 1) {
165
224
  buttons.push({
166
225
  key: 'create-action-button-back',
167
226
  label: backButtonText,
168
- onClick: function onClick() {
169
- return setCurrentStep(function (prev) {
170
- // Find previous included step to render
171
- // There will always be a previous step otherwise we will
172
- // have disabled the back button since we have reached the first visible step
173
- do {
174
- var _stepData2;
175
- prev--;
176
- } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
177
- return prev;
178
- });
179
- },
227
+ onClick: handlePrevious,
180
228
  kind: 'secondary',
181
- disabled: currentStep === firstIncludedStep
229
+ disabled: currentStep === firstIncludedStep,
230
+ loading: loadingPrevious
182
231
  });
183
232
  }
184
233
  buttons.push({
@@ -191,8 +240,8 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
191
240
  });
192
241
  buttons.push({
193
242
  key: 'create-action-button-submit',
194
- label: shouldViewAll ? submitButtonText : currentStep < lastIncludedStep ? nextButtonText : submitButtonText,
195
- onClick: shouldViewAll ? handleSubmit : currentStep < lastIncludedStep ? handleNext : handleSubmit,
243
+ label: currentStep < lastIncludedStep ? nextButtonText : submitButtonText,
244
+ onClick: currentStep < lastIncludedStep ? handleNext : handleSubmit,
196
245
  disabled: isSubmitDisabled,
197
246
  kind: 'primary',
198
247
  loading: isSubmitting,
@@ -200,5 +249,5 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
200
249
  });
201
250
  setCreateComponentActions(buttons);
202
251
  }
203
- }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
252
+ }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setModalIsOpen, moveToPreviousStep, onPrevious, setLoadingPrevious, loadingPrevious]);
204
253
  };
@@ -18,11 +18,25 @@ export var useResizeObserver = function useResizeObserver(ref, callback) {
18
18
  var entriesToHandle = useRef(null);
19
19
  var cb = useRef(callback);
20
20
  useEffect(function () {
21
- // ref for callback removes it as dependency fro useLayoutEffect
21
+ // ref for callback removes it as dependency from useLayoutEffect
22
22
  // This significantly reduces repeated calls if a function is redefined on every
23
23
  // render
24
24
  cb.current = callback;
25
25
  }, [callback]);
26
+ useEffect(function () {
27
+ var getInitialSize = function getInitialSize() {
28
+ if (ref.current) {
29
+ var _ref$current;
30
+ var refComputedStyle = window.getComputedStyle(ref.current);
31
+ var initialWidth = (((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.offsetWidth) || 0) - (parseFloat((refComputedStyle === null || refComputedStyle === void 0 ? void 0 : refComputedStyle.paddingLeft) || 0), parseFloat((refComputedStyle === null || refComputedStyle === void 0 ? void 0 : refComputedStyle.paddingRight) || 0));
32
+ setWidth(initialWidth);
33
+ }
34
+ };
35
+ if (!(ref !== null && ref !== void 0 && ref.current) && width !== 0) {
36
+ return;
37
+ }
38
+ getInitialSize();
39
+ }, [width, ref]);
26
40
  useLayoutEffect(function () {
27
41
  if (!(ref !== null && ref !== void 0 && ref.current)) {
28
42
  return;