@carbon/ibm-products 2.1.0 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. package/css/index-full-carbon.css +215 -57
  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 +58 -10
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +91 -29
  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 +113 -27
  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/AboutModal/AboutModal.js +1 -3
  18. package/es/components/ActionBar/ActionBar.js +2 -6
  19. package/es/components/AddSelect/AddSelectFormControl.js +6 -6
  20. package/es/components/AddSelect/AddSelectRow.js +15 -5
  21. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -6
  22. package/es/components/ButtonMenu/ButtonMenu.js +4 -4
  23. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -9
  24. package/es/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
  25. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  26. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
  27. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +5 -11
  29. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
  30. package/es/components/Datagrid/useStickyColumn.js +10 -3
  31. package/es/components/Datagrid/utils/DatagridActions.js +6 -14
  32. package/es/components/ImportModal/ImportModal.js +13 -6
  33. package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
  34. package/es/components/PageHeader/PageHeader.js +2 -6
  35. package/es/components/PageHeader/PageHeaderUtils.js +2 -2
  36. package/es/components/SidePanel/SidePanel.js +1 -3
  37. package/es/components/TagSet/TagSet.js +4 -7
  38. package/es/components/Tearsheet/TearsheetShell.js +4 -5
  39. package/es/global/js/hooks/useCreateComponentStepChange.js +16 -15
  40. package/es/global/js/hooks/useResizeObserver.js +14 -28
  41. package/es/global/js/utils/story-helper.js +1 -1
  42. package/lib/components/AboutModal/AboutModal.js +1 -3
  43. package/lib/components/ActionBar/ActionBar.js +2 -6
  44. package/lib/components/AddSelect/AddSelectFormControl.js +6 -6
  45. package/lib/components/AddSelect/AddSelectRow.js +15 -5
  46. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -6
  47. package/lib/components/ButtonMenu/ButtonMenu.js +4 -4
  48. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -9
  49. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
  50. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  51. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
  52. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
  53. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +4 -10
  54. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
  55. package/lib/components/Datagrid/useStickyColumn.js +10 -3
  56. package/lib/components/Datagrid/utils/DatagridActions.js +5 -13
  57. package/lib/components/ImportModal/ImportModal.js +13 -6
  58. package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
  59. package/lib/components/PageHeader/PageHeader.js +2 -6
  60. package/lib/components/PageHeader/PageHeaderUtils.js +2 -2
  61. package/lib/components/SidePanel/SidePanel.js +1 -3
  62. package/lib/components/TagSet/TagSet.js +4 -7
  63. package/lib/components/Tearsheet/TearsheetShell.js +4 -5
  64. package/lib/global/js/hooks/useCreateComponentStepChange.js +16 -15
  65. package/lib/global/js/hooks/useResizeObserver.js +13 -27
  66. package/lib/global/js/utils/story-helper.js +1 -1
  67. package/package.json +17 -17
  68. package/scss/components/AddSelect/_add-select.scss +4 -0
  69. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +0 -1
  70. package/scss/components/ButtonMenu/_button-menu.scss +32 -1
  71. package/scss/components/DataSpreadsheet/_storybook-styles.scss +6 -0
  72. package/scss/components/Datagrid/_datagrid.scss +4 -2
  73. package/scss/components/Datagrid/_storybook-styles.scss +15 -1
  74. package/scss/components/Datagrid/styles/_datagrid.scss +12 -13
  75. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +7 -0
  76. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +4 -0
  77. package/scss/components/HTTPErrors/_storybook-styles.scss +16 -2
  78. package/scss/components/NotificationsPanel/_storybook-styles.scss +0 -4
  79. package/scss/components/PageHeader/_page-header.scss +0 -1
  80. package/scss/components/PageHeader/_storybook-styles.scss +42 -14
  81. package/scss/components/SidePanel/_side-panel.scss +0 -2
  82. package/scss/components/Tearsheet/_tearsheet.scss +7 -6
  83. package/scss/components/WebTerminal/_storybook-styles.scss +16 -1
  84. package/scss/global/styles/_display-box.scss +1 -0
@@ -167,6 +167,9 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
167
167
  setDisplayedBreadcrumbItems(newDisplayedBreadcrumbItems);
168
168
  }, [breadcrumbs, displayCount]);
169
169
  var checkFullyVisibleBreadcrumbItems = function checkFullyVisibleBreadcrumbItems() {
170
+ if (!breadcrumbItemWithOverflow.current) {
171
+ return;
172
+ }
170
173
  var displayItemIndex = function displayItemIndex(itemCount, index) {
171
174
  // In this data set the overflow measuring item is [0]
172
175
  // so the first displayItem in the list is [1]
@@ -257,13 +260,9 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
257
260
  }
258
261
 
259
262
  // container resize
260
- (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, {
261
- callback: handleResize
262
- });
263
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, handleResize);
263
264
  // item resize
264
- (0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow, {
265
- callback: handleResize
266
- });
265
+ (0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow, handleResize);
267
266
  return /*#__PURE__*/_react.default.createElement("div", {
268
267
  className: (0, _classnames.default)(blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__with-items"), displayedBreadcrumbItems.length > 1)),
269
268
  ref: breadcrumbItemWithOverflow
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.ButtonMenu = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _react = _interopRequireDefault(require("react"));
11
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -58,15 +59,14 @@ var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
58
59
  return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, (0, _extends2.default)({}, rest, {
59
60
  className: (0, _classnames.default)(blockClass,
60
61
  // Apply the block class to the main HTML element
61
- className // Apply any supplied class names to the main HTML element.
62
- ),
63
-
62
+ className, // Apply any supplied class names to the main HTML element.
63
+ "".concat(carbonPrefix, "--btn--").concat(size), (0, _defineProperty2.default)({}, "".concat(blockClass, "__wrapper--").concat(kind), kind)),
64
64
  "aria-label": menuAriaLabel,
65
65
  menuOptionsClass: (0, _classnames.default)("".concat(blockClass, "__options"), menuOptionsClass),
66
66
  size: size,
67
67
  renderIcon: function renderIcon() {
68
68
  return /*#__PURE__*/_react.default.createElement("div", {
69
- className: (0, _classnames.default)(["".concat(blockClass, "__trigger"), "".concat(carbonPrefix, "--btn"), "".concat(carbonPrefix, "--btn--").concat(kind), "".concat(carbonPrefix, "--btn--").concat(size)])
69
+ className: (0, _classnames.default)("".concat(blockClass, "__trigger"))
70
70
  }, label, Icon && /*#__PURE__*/_react.default.createElement(Icon, {
71
71
  "aria-hidden": "true",
72
72
  "aria-label": iconDescription,
@@ -145,15 +145,9 @@ var ButtonSetWithOverflow = function ButtonSetWithOverflow(_ref) {
145
145
  }, (0, _propsHelper.prepareProps)(other, ['iconDescription', 'renderIcon'])));
146
146
  }).reverse());
147
147
  });
148
- (0, _useResizeObserver.useResizeObserver)(sizingContainerRefSet, {
149
- callback: checkFullyVisibleItems
150
- });
151
- (0, _useResizeObserver.useResizeObserver)(sizingContainerRefCombo, {
152
- callback: checkFullyVisibleItems
153
- });
154
- (0, _useResizeObserver.useResizeObserver)(spaceAvailableRef, {
155
- callback: checkFullyVisibleItems
156
- });
148
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRefSet, checkFullyVisibleItems);
149
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRefCombo, checkFullyVisibleItems);
150
+ (0, _useResizeObserver.useResizeObserver)(spaceAvailableRef, checkFullyVisibleItems);
157
151
  return /*#__PURE__*/_react.default.createElement("div", {
158
152
  className: (0, _classnames.default)([blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "--right"), rightAlign)]),
159
153
  ref: spaceAvailableRef
@@ -674,9 +674,6 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
674
674
  defaultColumn: defaultColumn,
675
675
  cellEditorValue: cellEditorValue
676
676
  });
677
- var handleActiveCellMouseEnter = (0, _react.useCallback)(function () {
678
- handleActiveCellMouseEnterCallback(selectionAreas, clickAndHoldActive);
679
- }, [clickAndHoldActive, selectionAreas, handleActiveCellMouseEnterCallback]);
680
677
 
681
678
  // Only update if there are cell selection areas
682
679
  // Find point object that matches currentMatcher and remove the second point
@@ -709,6 +706,9 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
709
706
  });
710
707
  }
711
708
  }, [spreadsheetRef, currentMatcher]);
709
+ var handleActiveCellMouseEnter = (0, _react.useCallback)(function () {
710
+ handleActiveCellMouseEnterCallback(selectionAreas, clickAndHoldActive);
711
+ }, [clickAndHoldActive, selectionAreas, handleActiveCellMouseEnterCallback]);
712
712
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, getTableProps(), (0, _devtools.getDevtoolsProps)(componentName), {
713
713
  className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__container-has-focus"), containerHasFocus), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__").concat(theme), theme === 'dark'), _cx)),
714
714
  ref: spreadsheetRef,
@@ -92,7 +92,7 @@ var DatagridContent = function DatagridContent(_ref) {
92
92
  return /*#__PURE__*/_react.default.createElement(_react2.Table, (0, _extends2.default)({}, getTableProps(), {
93
93
  className: (0, _classnames.default)(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), (0, _defineProperty2.default)({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-with-inline-edit"), withInlineEdit), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-grid-active"), gridActive), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className),
94
94
  role: withInlineEdit && 'grid',
95
- tabIndex: withInlineEdit && 0,
95
+ tabIndex: withInlineEdit ? 0 : -1,
96
96
  onKeyDown: withInlineEdit ? function (event) {
97
97
  return (0, _handleGridKeyPress.handleGridKeyPress)({
98
98
  event: event,
@@ -59,9 +59,7 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
59
59
  var gridRefElement = gridRef === null || gridRef === void 0 ? void 0 : gridRef.current;
60
60
  gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
61
61
  };
62
- (0, _useResizeObserver.useResizeObserver)(gridRef, {
63
- callback: handleVirtualGridResize
64
- });
62
+ (0, _useResizeObserver.useResizeObserver)(gridRef, handleVirtualGridResize);
65
63
  var syncScroll = function syncScroll(e) {
66
64
  var virtualBody = e.target;
67
65
  document.querySelector(".".concat(blockClass, "__head-wrap")).scrollLeft = virtualBody.scrollLeft;
@@ -29,7 +29,7 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
29
29
  rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
30
30
  return /*#__PURE__*/React.createElement(_CustomizeColumnsTearsheet.default, (0, _extends2.default)({}, rest, labels, {
31
31
  isOpen: isTearsheetOpen,
32
- isTableSortable: instance === null || instance === void 0 ? void 0 : instance.isTableSortable,
32
+ isTableSortable: (instance === null || instance === void 0 ? void 0 : instance.isTableSortable) || false,
33
33
  setIsTearsheetOpen: setIsTearsheetOpen,
34
34
  columnDefinitions: instance.allColumns,
35
35
  originalColumnDefinitions: instance.columns,
@@ -163,20 +163,14 @@ var FilterFlyout = function FilterFlyout(_ref) {
163
163
  }, [reactTableFiltersState, lastAppliedFilters]);
164
164
  return /*#__PURE__*/_react2.default.createElement("div", {
165
165
  className: "".concat(componentClass, "__container")
166
- }, /*#__PURE__*/_react2.default.createElement(_react.Button, {
166
+ }, /*#__PURE__*/_react2.default.createElement(_react.IconButton, {
167
+ label: flyoutIconDescription,
167
168
  kind: "ghost",
168
- hasIconOnly: true,
169
- tooltipPosition: "bottom",
170
- renderIcon: function renderIcon() {
171
- return /*#__PURE__*/_react2.default.createElement(_icons.Filter, {
172
- size: 16
173
- });
174
- },
175
- iconDescription: flyoutIconDescription,
169
+ align: "bottom",
176
170
  onClick: open ? closeFlyout : openFlyout,
177
171
  className: (0, _classnames.default)("".concat(componentClass, "__trigger"), (0, _defineProperty2.default)({}, "".concat(componentClass, "__trigger--open"), open)),
178
172
  disabled: data.length === 0
179
- }), /*#__PURE__*/_react2.default.createElement("div", {
173
+ }, /*#__PURE__*/_react2.default.createElement(_icons.Filter, null)), /*#__PURE__*/_react2.default.createElement("div", {
180
174
  ref: filterFlyoutRef,
181
175
  className: (0, _classnames.default)(componentClass, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--open"), open), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--instant"), !showActionSet), _cx2))
182
176
  }, /*#__PURE__*/_react2.default.createElement("div", {
@@ -80,6 +80,23 @@ var InlineEditCell = function InlineEditCell(_ref) {
80
80
  var dropdownRef = (0, _react.useRef)();
81
81
  var datePickerRef = (0, _react.useRef)();
82
82
  var outerButtonElement = (0, _react.useRef)();
83
+ var rowSize = instance.rowSize,
84
+ onDataUpdate = instance.onDataUpdate;
85
+
86
+ // Saves the new cell data, onDataUpdate is a required function to be
87
+ // passed to useDatagrid when using useInlineEdit
88
+ var saveCellData = (0, _react.useCallback)(function (newValue) {
89
+ var columnId = cell.column.id;
90
+ var rowIndex = cell.row.index;
91
+ onDataUpdate(function (prev) {
92
+ return prev.map(function (row, index) {
93
+ if (index === rowIndex) {
94
+ return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, newValue));
95
+ }
96
+ return row;
97
+ });
98
+ });
99
+ }, [cell, onDataUpdate]);
83
100
  (0, _react.useEffect)(function () {
84
101
  setInitialValue(value);
85
102
  var columnId = cell.column.id;
@@ -153,8 +170,6 @@ var InlineEditCell = function InlineEditCell(_ref) {
153
170
  }, 1);
154
171
  }
155
172
  };
156
- var rowSize = instance.rowSize,
157
- onDataUpdate = instance.onDataUpdate;
158
173
 
159
174
  // Auto focus text input when entering edit mode
160
175
  (0, _react.useEffect)(function () {
@@ -172,21 +187,6 @@ var InlineEditCell = function InlineEditCell(_ref) {
172
187
  (0, _react.useEffect)(function () {
173
188
  setCellValue(value);
174
189
  }, [value]);
175
-
176
- // Saves the new cell data, onDataUpdate is a required function to be
177
- // passed to useDatagrid when using useInlineEdit
178
- var saveCellData = (0, _react.useCallback)(function (newValue) {
179
- var columnId = cell.column.id;
180
- var rowIndex = cell.row.index;
181
- onDataUpdate(function (prev) {
182
- return prev.map(function (row, index) {
183
- if (index === rowIndex) {
184
- return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, newValue));
185
- }
186
- return row;
187
- });
188
- });
189
- }, [cell, onDataUpdate]);
190
190
  var sendFocusBackToGrid = function sendFocusBackToGrid() {
191
191
  // Allows the onKeyDown listener to go back to the entire grid area
192
192
  var inlineEditArea = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit"));
@@ -26,10 +26,13 @@ var OFFSET_SCROLL_CLASS = "".concat(styleClassPrefix, "-offset-scroll");
26
26
  var useStickyColumn = function useStickyColumn(hooks) {
27
27
  var tableBodyRef = (0, _react.useRef)();
28
28
  var stickyHeaderCellRef = (0, _react.useRef)();
29
- var _useState = (0, _react.useState)(window.innerWidth),
29
+ var _useState = (0, _react.useState)(null),
30
30
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
31
31
  windowSize = _useState2[0],
32
32
  setWindowSize = _useState2[1];
33
+ (0, _react.useEffect)(function () {
34
+ setWindowSize(window.innerWidth);
35
+ }, []);
33
36
  (0, _react.useLayoutEffect)(function () {
34
37
  function updateSize() {
35
38
  setWindowSize(window.innerWidth);
@@ -58,9 +61,13 @@ var useStickyColumn = function useStickyColumn(hooks) {
58
61
  headerCellElement.classList.add(OFFSET_SCROLL_CLASS);
59
62
  }
60
63
  var boundListener = (0, _debounce.default)(onBodyResize.bind(null, tableBodyElement, headerCellElement), 250);
61
- window.addEventListener('resize', boundListener);
64
+ if (typeof window !== 'undefined') {
65
+ window.addEventListener('resize', boundListener);
66
+ }
62
67
  return function () {
63
- window.removeEventListener('resize', boundListener);
68
+ if (typeof window !== 'undefined') {
69
+ window.removeEventListener('resize', boundListener);
70
+ }
64
71
  };
65
72
  }, [instance.rows, instance.isFetching]);
66
73
  (0, _react.useEffect)(function () {
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.DatagridActions = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _react2 = require("@carbon/react");
13
12
  var _icons = require("@carbon/react/icons");
@@ -55,25 +54,18 @@ var DatagridActions = function DatagridActions(datagridState) {
55
54
  return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'flyout' && /*#__PURE__*/_react.default.createElement(FilterFlyout, getFilterFlyoutProps());
56
55
  };
57
56
  var renderFilterPanelButton = function renderFilterPanelButton() {
58
- return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/_react.default.createElement(_react2.Button, {
57
+ return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
59
58
  kind: "ghost",
60
- hasIconOnly: true,
61
- tooltipPosition: "bottom",
62
- renderIcon: function renderIcon(props) {
63
- return /*#__PURE__*/_react.default.createElement(_icons.Filter, (0, _extends2.default)({
64
- size: 16
65
- }, props));
66
- },
67
- iconDescription: filterProps.panelIconDescription,
59
+ align: "bottom",
60
+ label: filterProps.panelIconDescription,
68
61
  className: "".concat(blockClass, "-filter-panel-open-button"),
69
62
  onClick: function onClick() {
70
63
  return setPanelOpen(function (open) {
71
64
  return !open;
72
65
  });
73
66
  },
74
- disabled: data.length === 0,
75
- tooltipAlignment: "start"
76
- });
67
+ disabled: data.length === 0
68
+ }, /*#__PURE__*/_react.default.createElement(_icons.Filter, null));
77
69
  };
78
70
  var _useState = (0, _react.useState)(false),
79
71
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -187,6 +187,13 @@ var ImportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
187
187
  var inputHandler = function inputHandler(evt) {
188
188
  setImportUrl(evt.target.value);
189
189
  };
190
+ var onCloseHandler = function onCloseHandler() {
191
+ setFiles([]);
192
+ setImportUrl('');
193
+ if (onClose) {
194
+ onClose();
195
+ }
196
+ };
190
197
  var numberOfFiles = files.length;
191
198
  var numberOfValidFiles = files.filter(function (f) {
192
199
  return !f.invalid;
@@ -198,13 +205,13 @@ var ImportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
198
205
  var blockClass = "".concat(_settings.pkg.prefix, "--import-modal");
199
206
  return /*#__PURE__*/_react.default.createElement(_react2.ComposedModal, (0, _extends2.default)({}, rest, _objectSpread({
200
207
  open: open,
201
- ref: ref,
202
- onClose: onClose
208
+ ref: ref
203
209
  }, (0, _devtools.getDevtoolsProps)(componentName)), {
204
210
  "aria-label": title,
205
211
  className: (0, _classnames.default)(blockClass, className),
206
212
  size: "sm",
207
- preventCloseOnClickOutside: true
213
+ preventCloseOnClickOutside: true,
214
+ onClose: onCloseHandler
208
215
  }), /*#__PURE__*/_react.default.createElement(_react2.ModalHeader, {
209
216
  className: "".concat(blockClass, "__header"),
210
217
  title: title
@@ -267,7 +274,7 @@ var ImportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
267
274
  }, /*#__PURE__*/_react.default.createElement(_react2.Button, {
268
275
  type: "button",
269
276
  kind: "secondary",
270
- onClick: onClose
277
+ onClick: onCloseHandler
271
278
  }, secondaryButtonText), /*#__PURE__*/_react.default.createElement(_react2.Button, {
272
279
  type: "submit",
273
280
  kind: "primary",
@@ -371,11 +378,11 @@ ImportModal.propTypes = {
371
378
  /**
372
379
  * Specify a handler for "submitting" modal. Access the imported file via `file => {}`
373
380
  */
374
- onRequestSubmit: _propTypes.default.func,
381
+ onRequestSubmit: _propTypes.default.func.isRequired,
375
382
  /**
376
383
  * Specify whether the Modal is currently open
377
384
  */
378
- open: _propTypes.default.bool,
385
+ open: _propTypes.default.bool.isRequired,
379
386
  /**
380
387
  * Specify the text for the primary button
381
388
  */
@@ -22,34 +22,19 @@ var UnreadNotificationBell = function UnreadNotificationBell() {
22
22
  xmlns: "http://www.w3.org/2000/svg",
23
23
  xmlnsXlink: "http://www.w3.org/1999/xlink"
24
24
  }, /*#__PURE__*/_react.default.createElement("title", null, "Unread notification bell"), /*#__PURE__*/_react.default.createElement("g", {
25
- id: "Page-1",
26
- stroke: "none",
27
- strokeWidth: "1",
28
- fill: "none",
29
- fillRule: "evenodd"
30
- }, /*#__PURE__*/_react.default.createElement("g", {
31
25
  id: "Group",
32
26
  transform: "translate(-1.000000, 0.000000)"
33
- }, /*#__PURE__*/_react.default.createElement("g", {
34
- id: "notification"
35
27
  }, /*#__PURE__*/_react.default.createElement("path", {
36
28
  d: "M17.9419375,12.058125 L16.25,10.3661875 L16.25,8.125 C16.245845,4.91692673 13.816599,2.23147626 10.625,1.90675 L10.625,0.625 L9.375,0.625 L9.375,1.90675 C6.183401,2.23147626 3.754155,4.91692673 3.75,8.125 L3.75,10.3661875 L2.0580625,12.058125 C1.94086706,12.1753182 1.875,12.3342622 1.875,12.5 L1.875,14.375 C1.875,14.720178 2.15482203,15 2.5,15 L6.875,15 L6.875,15.4855 C6.84694527,17.1272367 8.05869477,18.5271305 9.6875,18.7346875 C10.5660567,18.8218694 11.4405518,18.5337871 12.0952737,17.9415019 C12.7499955,17.3492167 13.1239886,16.5078712 13.125,15.625 L13.125,15 L17.5,15 C17.845178,15 18.125,14.720178 18.125,14.375 L18.125,12.5 C18.125,12.3342622 18.0591329,12.1753182 17.9419375,12.058125 Z M11.875,15.625 C11.875,16.6605339 11.0355339,17.5 10,17.5 C8.96446609,17.5 8.125,16.6605339 8.125,15.625 L8.125,15 L11.875,15 L11.875,15.625 Z M16.875,13.75 L3.125,13.75 L3.125,12.7588125 L4.816875,11.066875 C4.93409336,10.949692 4.9999646,10.7907468 5,10.625 L5,8.125 C5,5.36357625 7.23857625,3.125 10,3.125 C12.7614237,3.125 15,5.36357625 15,8.125 L15,10.625 C15.0000354,10.7907468 15.0659066,10.949692 15.183125,11.066875 L16.875,12.7588125 L16.875,13.75 Z",
37
29
  id: "Shape",
38
- fill: "#FFFFFF",
39
30
  fillRule: "nonzero"
40
- }), /*#__PURE__*/_react.default.createElement("rect", {
41
- id: "_Transparent_Rectangle_",
42
- x: "0",
43
- y: "0",
44
- width: "20",
45
- height: "20"
46
- })), /*#__PURE__*/_react.default.createElement("circle", {
31
+ }), /*#__PURE__*/_react.default.createElement("circle", {
47
32
  id: "Oval",
48
33
  stroke: "#161616",
49
34
  fill: "#DA1E28",
50
35
  cx: "15",
51
36
  cy: "4.375",
52
37
  r: "2.5"
53
- }))));
38
+ })));
54
39
  };
55
40
  exports.UnreadNotificationBell = UnreadNotificationBell;
@@ -320,12 +320,8 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
320
320
  (0, _PageHeaderUtils.utilSetCollapsed)(collapseHeader, metrics.headerOffset, metrics.headerTopValue);
321
321
  }
322
322
  }, [collapseHeader, metrics.headerOffset, metrics.headerTopValue]);
323
- (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, {
324
- callback: handleResizeActionBarColumn
325
- });
326
- (0, _useResizeObserver.useResizeObserver)(headerRef, {
327
- callback: handleResize
328
- });
323
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, handleResizeActionBarColumn);
324
+ (0, _useResizeObserver.useResizeObserver)(headerRef, handleResize);
329
325
 
330
326
  // Determine what form of title to display in the breadcrumb
331
327
  var breadcrumbItemForTitle = (0, _PageHeaderUtils.utilGetBreadcrumbItemForTitle)(_PageHeaderUtils.blockClass, collapseTitle, title);
@@ -71,11 +71,11 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
71
71
  var scrollableContainer = (0, _scrollableAncestor.scrollableAncestor)(headerRef.current);
72
72
 
73
73
  /* istanbul ignore next */
74
- var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.offsetTop : 0;
74
+ var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.getBoundingClientRect().top : 0;
75
75
 
76
76
  // The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
77
77
  // top and the measuring ref top, or the difference between. It does not change on scroll or resize.
78
- update.headerOffset = scrollableContainerTop + offsetTopMeasuringRef.current.getBoundingClientRect().top;
78
+ update.headerOffset = (offsetTopMeasuringRef.current ? offsetTopMeasuringRef.current.getBoundingClientRect().top : 0) + scrollableContainerTop;
79
79
 
80
80
  /* istanbul ignore next */
81
81
  update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
@@ -451,9 +451,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
451
451
  }, title));
452
452
  };
453
453
  var contentRef = ref || sidePanelRef;
454
- (0, _useResizeObserver.useResizeObserver)(contentRef, {
455
- callback: handleResize
456
- });
454
+ (0, _useResizeObserver.useResizeObserver)(contentRef, handleResize);
457
455
  return /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, null, open && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, (0, _extends2.default)({}, (0, _devtools.getDevtoolsProps)(componentName), rest, {
458
456
  id: "".concat(blockClass, "-outer"),
459
457
  className: mainPanelClassNames,
@@ -164,7 +164,8 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
164
164
  if (sizingTags.length > 0) {
165
165
  var spaceAvailable = tagSetRef.current.offsetWidth;
166
166
  for (var i in sizingTags) {
167
- var tagWidth = sizingTags[i].offsetWidth;
167
+ var _sizingTags$i;
168
+ var tagWidth = ((_sizingTags$i = sizingTags[i]) === null || _sizingTags$i === void 0 ? void 0 : _sizingTags$i.offsetWidth) || 0;
168
169
  if (spaceAvailable >= tagWidth) {
169
170
  spaceAvailable -= tagWidth;
170
171
  willFit += 1;
@@ -206,12 +207,8 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
206
207
  var handleModalClose = function handleModalClose() {
207
208
  setShowAllModalOpen(false);
208
209
  };
209
- (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, {
210
- callback: handleSizerTagsResize
211
- });
212
- (0, _useResizeObserver.useResizeObserver)(tagSetRef, {
213
- callback: handleResize
214
- });
210
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, handleSizerTagsResize);
211
+ (0, _useResizeObserver.useResizeObserver)(tagSetRef, handleResize);
215
212
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
216
213
  className: (0, _classnames.default)([blockClass, className]),
217
214
  ref: tagSetRef
@@ -225,7 +225,8 @@ var TearsheetShell = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
225
225
  closeModal: onClose,
226
226
  iconDescription: closeIconDescription
227
227
  }, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
228
- className: "".concat(bc, "__header-content")
228
+ className: "".concat(bc, "__header-content"),
229
+ element: wide ? _react2.Layer : undefined
229
230
  }, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
230
231
  className: "".concat(bc, "__header-fields")
231
232
  }, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
@@ -250,12 +251,10 @@ var TearsheetShell = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
250
251
  className: "".concat(bc, "__right")
251
252
  }, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
252
253
  className: "".concat(bc, "__main"),
253
- alwaysRender: includeActions,
254
- element: wide ? _react2.Layer : undefined
254
+ alwaysRender: includeActions
255
255
  }, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
256
256
  className: "".concat(bc, "__content"),
257
- alwaysRender: influencer && influencerPosition === 'right',
258
- element: wide ? _react2.Layer : undefined
257
+ alwaysRender: influencer && influencerPosition === 'right'
259
258
  }, children), /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
260
259
  className: (0, _classnames.default)((_cx6 = {}, (0, _defineProperty2.default)(_cx6, "".concat(bc, "__influencer"), true), (0, _defineProperty2.default)(_cx6, "".concat(bc, "__influencer--wide"), influencerWidth === 'wide'), _cx6)),
261
260
  neverRender: influencerPosition !== 'right'
@@ -37,6 +37,20 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
37
37
  componentBlockClass = _ref.componentBlockClass,
38
38
  setCreateComponentActions = _ref.setCreateComponentActions,
39
39
  setModalIsOpen = _ref.setModalIsOpen;
40
+ var continueToNextStep = (0, _react.useCallback)(function () {
41
+ setIsSubmitting(false);
42
+ setCurrentStep(function (prev) {
43
+ // Find next included step to render
44
+ // There will always be a next step otherwise we will
45
+ // have reach the onSubmit
46
+ do {
47
+ var _stepData;
48
+ prev++;
49
+ } while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
50
+ return prev;
51
+ });
52
+ }, [setCurrentStep, setIsSubmitting, stepData]);
53
+
40
54
  // useEffect to handle multi step logic
41
55
  (0, _react.useEffect)(function () {
42
56
  var onUnmount = function onUnmount() {
@@ -164,9 +178,9 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
164
178
  // There will always be a previous step otherwise we will
165
179
  // have disabled the back button since we have reached the first visible step
166
180
  do {
167
- var _stepData;
181
+ var _stepData2;
168
182
  prev--;
169
- } while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
183
+ } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
170
184
  return prev;
171
185
  });
172
186
  },
@@ -194,18 +208,5 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
194
208
  setCreateComponentActions(buttons);
195
209
  }
196
210
  }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
197
- var continueToNextStep = (0, _react.useCallback)(function () {
198
- setIsSubmitting(false);
199
- setCurrentStep(function (prev) {
200
- // Find next included step to render
201
- // There will always be a next step otherwise we will
202
- // have reach the onSubmit
203
- do {
204
- var _stepData2;
205
- prev++;
206
- } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
207
- return prev;
208
- });
209
- }, [setCurrentStep, setIsSubmitting, stepData]);
210
211
  };
211
212
  exports.useCreateComponentStepChange = useCreateComponentStepChange;
@@ -14,13 +14,7 @@ var _react = require("react");
14
14
  * LICENSE file in the root directory of this source tree.
15
15
  */
16
16
 
17
- var useResizeObserver = function useResizeObserver(ref) {
18
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
19
- callback: null,
20
- throttleInterval: 0
21
- };
22
- var callback = options.callback,
23
- throttleInterval = options.throttleInterval;
17
+ var useResizeObserver = function useResizeObserver(ref, callback) {
24
18
  var _useState = (0, _react.useState)(0),
25
19
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
26
20
  width = _useState2[0],
@@ -29,8 +23,14 @@ var useResizeObserver = function useResizeObserver(ref) {
29
23
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
30
24
  height = _useState4[0],
31
25
  setHeight = _useState4[1];
32
- var throttleTimeout = (0, _react.useRef)(null);
33
26
  var entriesToHandle = (0, _react.useRef)(null);
27
+ var cb = (0, _react.useRef)(callback);
28
+ (0, _react.useEffect)(function () {
29
+ // ref for callback removes it as dependency fro useLayoutEffect
30
+ // This significantly reduces repeated calls if a function is redefined on every
31
+ // render
32
+ cb.current = callback;
33
+ }, [callback]);
34
34
  (0, _react.useLayoutEffect)(function () {
35
35
  if (!(ref !== null && ref !== void 0 && ref.current)) {
36
36
  return;
@@ -42,29 +42,15 @@ var useResizeObserver = function useResizeObserver(ref) {
42
42
  var entry = entriesToHandle.current[0];
43
43
  setWidth(entry.contentRect.width);
44
44
  setHeight(entry.contentRect.height);
45
- throttleTimeout.current = null;
46
- callback && callback(entry.contentRect);
45
+ cb.current && cb.current(entry.contentRect);
47
46
  };
48
47
  var observer = new ResizeObserver(function (entries) {
49
48
  // always update entriesToHandle
50
49
  entriesToHandle.current = entries;
51
- if (throttleInterval) {
52
- // if a throttleInterval check for running timeout
53
- if (throttleTimeout.current === null) {
54
- // no live timeout set entries to handle and move on
55
-
56
- // set up throttle
57
- throttleTimeout.current = setTimeout(function () {
58
- // do callbacks
59
- doCallbacks();
60
- // reset throttle
61
- throttleTimeout.current = null;
62
- }, throttleInterval);
63
- }
64
- } else {
65
- // no throttle do callbacks every time
50
+ window.requestAnimationFrame(function () {
51
+ // do callbacks
66
52
  doCallbacks();
67
- }
53
+ });
68
54
  });
69
55
 
70
56
  // observe all refs passed
@@ -74,7 +60,7 @@ var useResizeObserver = function useResizeObserver(ref) {
74
60
  observer = null;
75
61
  };
76
62
  // eslint-disable-next-line react-hooks/exhaustive-deps
77
- }, [ref, options]);
63
+ }, [ref]);
78
64
  return {
79
65
  width: width,
80
66
  height: height
@@ -114,7 +114,7 @@ StackblitzLink.propTypes = {
114
114
  * @returns "dark" or "light"
115
115
  */
116
116
  var getSelectedCarbonTheme = function getSelectedCarbonTheme() {
117
- var themeId = document.querySelector('html').getAttribute('storybook-carbon-theme');
117
+ var themeId = document.querySelector('[storybook-carbon-theme]').getAttribute('storybook-carbon-theme');
118
118
  return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
119
119
  };
120
120
  exports.getSelectedCarbonTheme = getSelectedCarbonTheme;