@carbon/ibm-products 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. package/css/index-full-carbon.css +24 -2
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +2 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +6 -1
  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 +24 -2
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +2 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +17 -1
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +2 -2
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +3 -0
  18. package/es/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
  19. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  20. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
  21. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +5 -11
  22. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
  23. package/es/components/Datagrid/utils/DatagridActions.js +6 -14
  24. package/es/components/ImportModal/ImportModal.js +13 -6
  25. package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
  26. package/es/components/PageHeader/PageHeaderUtils.js +2 -2
  27. package/es/components/Tearsheet/TearsheetShell.js +4 -5
  28. package/es/global/js/hooks/useCreateComponentStepChange.js +16 -15
  29. package/es/global/js/utils/story-helper.js +1 -1
  30. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +3 -0
  31. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
  32. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  33. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
  34. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +4 -10
  35. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
  36. package/lib/components/Datagrid/utils/DatagridActions.js +5 -13
  37. package/lib/components/ImportModal/ImportModal.js +13 -6
  38. package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
  39. package/lib/components/PageHeader/PageHeaderUtils.js +2 -2
  40. package/lib/components/Tearsheet/TearsheetShell.js +4 -5
  41. package/lib/global/js/hooks/useCreateComponentStepChange.js +16 -15
  42. package/lib/global/js/utils/story-helper.js +1 -1
  43. package/package.json +4 -4
  44. package/scss/components/DataSpreadsheet/_storybook-styles.scss +6 -0
  45. package/scss/components/Datagrid/_storybook-styles.scss +7 -1
  46. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +7 -0
  47. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +4 -0
  48. package/scss/components/HTTPErrors/_storybook-styles.scss +16 -2
  49. package/scss/components/NotificationsPanel/_storybook-styles.scss +0 -4
  50. package/scss/components/PageHeader/_storybook-styles.scss +42 -14
  51. package/scss/components/Tearsheet/_tearsheet.scss +7 -1
  52. package/scss/components/WebTerminal/_storybook-styles.scss +16 -1
  53. package/scss/global/styles/_display-box.scss +1 -0
@@ -179,6 +179,13 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
179
179
  var inputHandler = function inputHandler(evt) {
180
180
  setImportUrl(evt.target.value);
181
181
  };
182
+ var onCloseHandler = function onCloseHandler() {
183
+ setFiles([]);
184
+ setImportUrl('');
185
+ if (onClose) {
186
+ onClose();
187
+ }
188
+ };
182
189
  var numberOfFiles = files.length;
183
190
  var numberOfValidFiles = files.filter(function (f) {
184
191
  return !f.invalid;
@@ -190,13 +197,13 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
190
197
  var blockClass = "".concat(pkg.prefix, "--import-modal");
191
198
  return /*#__PURE__*/React.createElement(ComposedModal, _extends({}, rest, _objectSpread({
192
199
  open: open,
193
- ref: ref,
194
- onClose: onClose
200
+ ref: ref
195
201
  }, getDevtoolsProps(componentName)), {
196
202
  "aria-label": title,
197
203
  className: cx(blockClass, className),
198
204
  size: "sm",
199
- preventCloseOnClickOutside: true
205
+ preventCloseOnClickOutside: true,
206
+ onClose: onCloseHandler
200
207
  }), /*#__PURE__*/React.createElement(ModalHeader, {
201
208
  className: "".concat(blockClass, "__header"),
202
209
  title: title
@@ -259,7 +266,7 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
259
266
  }, /*#__PURE__*/React.createElement(Button, {
260
267
  type: "button",
261
268
  kind: "secondary",
262
- onClick: onClose
269
+ onClick: onCloseHandler
263
270
  }, secondaryButtonText), /*#__PURE__*/React.createElement(Button, {
264
271
  type: "submit",
265
272
  kind: "primary",
@@ -362,11 +369,11 @@ ImportModal.propTypes = {
362
369
  /**
363
370
  * Specify a handler for "submitting" modal. Access the imported file via `file => {}`
364
371
  */
365
- onRequestSubmit: PropTypes.func,
372
+ onRequestSubmit: PropTypes.func.isRequired,
366
373
  /**
367
374
  * Specify whether the Modal is currently open
368
375
  */
369
- open: PropTypes.bool,
376
+ open: PropTypes.bool.isRequired,
370
377
  /**
371
378
  * Specify the text for the primary button
372
379
  */
@@ -15,34 +15,19 @@ var UnreadNotificationBell = function UnreadNotificationBell() {
15
15
  xmlns: "http://www.w3.org/2000/svg",
16
16
  xmlnsXlink: "http://www.w3.org/1999/xlink"
17
17
  }, /*#__PURE__*/React.createElement("title", null, "Unread notification bell"), /*#__PURE__*/React.createElement("g", {
18
- id: "Page-1",
19
- stroke: "none",
20
- strokeWidth: "1",
21
- fill: "none",
22
- fillRule: "evenodd"
23
- }, /*#__PURE__*/React.createElement("g", {
24
18
  id: "Group",
25
19
  transform: "translate(-1.000000, 0.000000)"
26
- }, /*#__PURE__*/React.createElement("g", {
27
- id: "notification"
28
20
  }, /*#__PURE__*/React.createElement("path", {
29
21
  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",
30
22
  id: "Shape",
31
- fill: "#FFFFFF",
32
23
  fillRule: "nonzero"
33
- }), /*#__PURE__*/React.createElement("rect", {
34
- id: "_Transparent_Rectangle_",
35
- x: "0",
36
- y: "0",
37
- width: "20",
38
- height: "20"
39
- })), /*#__PURE__*/React.createElement("circle", {
24
+ }), /*#__PURE__*/React.createElement("circle", {
40
25
  id: "Oval",
41
26
  stroke: "#161616",
42
27
  fill: "#DA1E28",
43
28
  cx: "15",
44
29
  cy: "4.375",
45
30
  r: "2.5"
46
- }))));
31
+ })));
47
32
  };
48
33
  export { UnreadNotificationBell };
@@ -65,11 +65,11 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
65
65
  var scrollableContainer = scrollableAncestor(headerRef.current);
66
66
 
67
67
  /* istanbul ignore next */
68
- var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.offsetTop : 0;
68
+ var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.getBoundingClientRect().top : 0;
69
69
 
70
70
  // The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
71
71
  // top and the measuring ref top, or the difference between. It does not change on scroll or resize.
72
- update.headerOffset = scrollableContainerTop + offsetTopMeasuringRef.current.getBoundingClientRect().top;
72
+ update.headerOffset = (offsetTopMeasuringRef.current ? offsetTopMeasuringRef.current.getBoundingClientRect().top : 0) + scrollableContainerTop;
73
73
 
74
74
  /* istanbul ignore next */
75
75
  update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
@@ -216,7 +216,8 @@ export var TearsheetShell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
216
216
  closeModal: onClose,
217
217
  iconDescription: closeIconDescription
218
218
  }, /*#__PURE__*/React.createElement(Wrap, {
219
- className: "".concat(bc, "__header-content")
219
+ className: "".concat(bc, "__header-content"),
220
+ element: wide ? Layer : undefined
220
221
  }, /*#__PURE__*/React.createElement(Wrap, {
221
222
  className: "".concat(bc, "__header-fields")
222
223
  }, /*#__PURE__*/React.createElement(Wrap, {
@@ -241,12 +242,10 @@ export var TearsheetShell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
241
242
  className: "".concat(bc, "__right")
242
243
  }, /*#__PURE__*/React.createElement(Wrap, {
243
244
  className: "".concat(bc, "__main"),
244
- alwaysRender: includeActions,
245
- element: wide ? Layer : undefined
245
+ alwaysRender: includeActions
246
246
  }, /*#__PURE__*/React.createElement(Wrap, {
247
247
  className: "".concat(bc, "__content"),
248
- alwaysRender: influencer && influencerPosition === 'right',
249
- element: wide ? Layer : undefined
248
+ alwaysRender: influencer && influencerPosition === 'right'
250
249
  }, children), /*#__PURE__*/React.createElement(Wrap, {
251
250
  className: cx((_cx6 = {}, _defineProperty(_cx6, "".concat(bc, "__influencer"), true), _defineProperty(_cx6, "".concat(bc, "__influencer--wide"), influencerWidth === 'wide'), _cx6)),
252
251
  neverRender: influencerPosition !== 'right'
@@ -30,6 +30,20 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
30
30
  componentBlockClass = _ref.componentBlockClass,
31
31
  setCreateComponentActions = _ref.setCreateComponentActions,
32
32
  setModalIsOpen = _ref.setModalIsOpen;
33
+ var continueToNextStep = useCallback(function () {
34
+ setIsSubmitting(false);
35
+ setCurrentStep(function (prev) {
36
+ // Find next included step to render
37
+ // There will always be a next step otherwise we will
38
+ // have reach the onSubmit
39
+ do {
40
+ var _stepData;
41
+ prev++;
42
+ } while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
43
+ return prev;
44
+ });
45
+ }, [setCurrentStep, setIsSubmitting, stepData]);
46
+
33
47
  // useEffect to handle multi step logic
34
48
  useEffect(function () {
35
49
  var onUnmount = function onUnmount() {
@@ -157,9 +171,9 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
157
171
  // There will always be a previous step otherwise we will
158
172
  // have disabled the back button since we have reached the first visible step
159
173
  do {
160
- var _stepData;
174
+ var _stepData2;
161
175
  prev--;
162
- } while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
176
+ } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
163
177
  return prev;
164
178
  });
165
179
  },
@@ -187,17 +201,4 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
187
201
  setCreateComponentActions(buttons);
188
202
  }
189
203
  }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
190
- var continueToNextStep = useCallback(function () {
191
- setIsSubmitting(false);
192
- setCurrentStep(function (prev) {
193
- // Find next included step to render
194
- // There will always be a next step otherwise we will
195
- // have reach the onSubmit
196
- do {
197
- var _stepData2;
198
- prev++;
199
- } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
200
- return prev;
201
- });
202
- }, [setCurrentStep, setIsSubmitting, stepData]);
203
204
  };
@@ -103,6 +103,6 @@ StackblitzLink.propTypes = {
103
103
  * @returns "dark" or "light"
104
104
  */
105
105
  export var getSelectedCarbonTheme = function getSelectedCarbonTheme() {
106
- var themeId = document.querySelector('html').getAttribute('storybook-carbon-theme');
106
+ var themeId = document.querySelector('[storybook-carbon-theme]').getAttribute('storybook-carbon-theme');
107
107
  return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
108
108
  };
@@ -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]
@@ -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,
@@ -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"));
@@ -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;
@@ -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;
@@ -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;
@@ -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;
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": "2.1.1",
4
+ "version": "2.1.2",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -56,7 +56,7 @@
56
56
  "devDependencies": {
57
57
  "@babel/cli": "^7.21.5",
58
58
  "@babel/core": "^7.22.1",
59
- "babel-preset-ibm-cloud-cognitive": "^0.14.35",
59
+ "babel-preset-ibm-cloud-cognitive": "^0.14.36",
60
60
  "chalk": "^4.1.2",
61
61
  "change-case": "^4.1.2",
62
62
  "copyfiles": "^2.4.1",
@@ -64,7 +64,7 @@
64
64
  "fs-extra": "^11.1.1",
65
65
  "glob": "^10.2.6",
66
66
  "jest": "^29.5.0",
67
- "jest-config-ibm-cloud-cognitive": "^0.24.22",
67
+ "jest-config-ibm-cloud-cognitive": "^0.24.23",
68
68
  "jest-environment-jsdom": "^29.5.0",
69
69
  "namor": "^1.1.2",
70
70
  "npm-check-updates": "^16.10.12",
@@ -94,5 +94,5 @@
94
94
  "react": "^16.8.6 || ^17.0.1",
95
95
  "react-dom": "^16.8.6 || ^17.0.1"
96
96
  },
97
- "gitHead": "30b5fa97e450c8587e04b5e2e1be98c9a7379d45"
97
+ "gitHead": "32a25a322d0213e135506f646b0ad5721e67d813"
98
98
  }
@@ -4,3 +4,9 @@
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
+
8
+ $story-anchor: 'data-spreadsheet';
9
+ div[id*='#{$story-anchor}'] .docs-story > div:first-child > div:first-child {
10
+ overflow: auto;
11
+ width: 100%;
12
+ }
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2022, 2022
2
+ // Copyright IBM Corp. 2022, 2023
3
3
  //
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
@@ -122,3 +122,9 @@ $block-class: #{c4p-settings.$pkg-prefix}--datagrid;
122
122
  width: 100vw;
123
123
  }
124
124
  }
125
+
126
+ $story-anchor: 'datagrid';
127
+ div[id*='#{$story-anchor}'] .docs-story > div:first-child > div:first-child {
128
+ overflow: auto;
129
+ width: 100%;
130
+ }
@@ -75,6 +75,13 @@ $action-set-height: rem(64px);
75
75
  }
76
76
 
77
77
  // Carbon overrides
78
+ .#{variables.$block-class}-filter-flyout__trigger.#{c4p-settings.$carbon-prefix}--btn {
79
+ display: flex;
80
+ width: 3rem;
81
+ height: 3rem;
82
+ justify-content: center;
83
+ }
84
+
78
85
  .#{variables.$block-class}-filter-flyout__trigger--open.#{c4p-settings.$carbon-prefix}--btn.#{c4p-settings.$carbon-prefix}--btn--icon-only {
79
86
  position: relative;
80
87
  background-color: $layer-02;