@carbon/ibm-products 1.9.0 → 1.10.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 (60) hide show
  1. package/css/index-full-carbon.css +123 -5628
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +45 -3424
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +91 -3894
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -4
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +91 -3895
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -4
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +11 -6
  18. package/es/components/AddSelect/AddSelectColumn.js +44 -7
  19. package/es/components/ButtonMenu/ButtonMenu.js +1 -1
  20. package/es/components/DataSpreadsheet/DataSpreadsheet.js +316 -133
  21. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +113 -69
  22. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +22 -5
  23. package/es/components/DataSpreadsheet/checkActiveHeaderCell.js +34 -0
  24. package/es/components/DataSpreadsheet/createActiveCellFn.js +3 -1
  25. package/es/components/InlineEdit/InlineEdit.js +11 -21
  26. package/es/components/OptionsTile/OptionsTile.js +11 -1
  27. package/es/components/PageHeader/PageHeader.js +48 -40
  28. package/es/components/PageHeader/PageHeaderUtils.js +3 -7
  29. package/es/components/TagSet/TagSet.js +12 -3
  30. package/es/components/UserProfileImage/UserProfileImage.js +2 -1
  31. package/lib/components/AddSelect/AddSelect.js +11 -6
  32. package/lib/components/AddSelect/AddSelectColumn.js +55 -13
  33. package/lib/components/ButtonMenu/ButtonMenu.js +1 -1
  34. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +317 -134
  35. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +112 -70
  36. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +24 -5
  37. package/lib/components/DataSpreadsheet/checkActiveHeaderCell.js +45 -0
  38. package/lib/components/DataSpreadsheet/createActiveCellFn.js +3 -1
  39. package/lib/components/InlineEdit/InlineEdit.js +10 -20
  40. package/lib/components/OptionsTile/OptionsTile.js +11 -1
  41. package/lib/components/PageHeader/PageHeader.js +47 -40
  42. package/lib/components/PageHeader/PageHeaderUtils.js +3 -7
  43. package/lib/components/TagSet/TagSet.js +13 -3
  44. package/lib/components/UserProfileImage/UserProfileImage.js +2 -1
  45. package/package.json +14 -14
  46. package/scss/components/AddSelect/_add-select.scss +27 -14
  47. package/scss/components/CreateInfluencer/_create-influencer.scss +2 -0
  48. package/scss/components/CreateModal/_create-modal.scss +1 -0
  49. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
  50. package/scss/components/CreateTearsheetNarrow/_create-tearsheet-narrow.scss +1 -0
  51. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +12 -7
  52. package/scss/components/InlineEdit/_inline-edit.scss +20 -11
  53. package/scss/components/InlineEdit/_storybook-styles.scss +1 -0
  54. package/scss/components/LoadingBar/_loading-bar.scss +13 -0
  55. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -0
  56. package/scss/components/PageHeader/_page-header.scss +2 -0
  57. package/scss/components/SidePanel/_side-panel.scss +11 -4
  58. package/scss/components/StatusIcon/_status-icon.scss +1 -0
  59. package/scss/components/UserProfileImage/_user-profile-image.scss +9 -0
  60. package/scss/components/WebTerminal/_web-terminal.scss +2 -0
@@ -51,7 +51,7 @@ var _PageHeaderUtils = require("./PageHeaderUtils");
51
51
 
52
52
  var _PageHeaderTitle = require("./PageHeaderTitle");
53
53
 
54
- var _excluded = ["actionBarItems", "actionBarMenuOptionsClass", "actionBarOverflowAriaLabel", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "allTagsModalTitle", "hasBackgroundAlways", "breadcrumbOverflowAriaLabel", "breadcrumbs", "children", "className", "collapseHeader", "collapseHeaderIconDescription", "collapseTitle", "disableBreadcrumbScroll", "expandHeaderIconDescription", "fullWidthGrid", "hasCollapseHeaderToggle", "narrowGrid", "navigation", "pageActions", "pageActionsOverflowLabel", "pageActionsMenuOptionsClass", "showAllTagsLabel", "subtitle", "tags", "title", "withoutBackground"];
54
+ var _excluded = ["actionBarItems", "actionBarMenuOptionsClass", "actionBarOverflowAriaLabel", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "allTagsModalTitle", "hasBackgroundAlways", "breadcrumbOverflowAriaLabel", "breadcrumbs", "children", "className", "collapseHeader", "collapseHeaderIconDescription", "collapseTitle", "disableBreadcrumbScroll", "enableBreadcrumbScroll", "expandHeaderIconDescription", "fullWidthGrid", "hasCollapseHeaderToggle", "narrowGrid", "navigation", "pageActions", "pageActionsOverflowLabel", "pageActionsMenuOptionsClass", "showAllTagsLabel", "subtitle", "tags", "title", "withoutBackground"];
55
55
 
56
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
57
57
 
@@ -69,7 +69,7 @@ var defaults = {
69
69
  };
70
70
 
71
71
  var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
72
- var _withoutBackground, _ref6, _cx2, _ref7, _cx4, _cx7;
72
+ var _withoutBackground, _ref2, _ref7, _cx2, _ref8, _cx4, _cx7;
73
73
 
74
74
  var actionBarItems = _ref.actionBarItems,
75
75
  actionBarMenuOptionsClass = _ref.actionBarMenuOptionsClass,
@@ -85,7 +85,8 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
85
85
  collapseHeader = _ref.collapseHeader,
86
86
  collapseHeaderIconDescription = _ref.collapseHeaderIconDescription,
87
87
  collapseTitle = _ref.collapseTitle,
88
- disableBreadcrumbScroll = _ref.disableBreadcrumbScroll,
88
+ deprecated_disableBreadcrumbScroll = _ref.disableBreadcrumbScroll,
89
+ in_enableBreadcrumbScroll = _ref.enableBreadcrumbScroll,
89
90
  expandHeaderIconDescription = _ref.expandHeaderIconDescription,
90
91
  _ref$fullWidthGrid = _ref.fullWidthGrid,
91
92
  fullWidthGrid = _ref$fullWidthGrid === void 0 ? defaults.fullWidthGrid : _ref$fullWidthGrid,
@@ -123,10 +124,11 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
123
124
  var offsetTopMeasuringRef = (0, _react.useRef)(null); // state based on props only
124
125
 
125
126
  var hasActionBar = actionBarItems && actionBarItems.length > 0;
126
- var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems; // utility functions
127
+ var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems;
128
+ var enableBreadcrumbScroll = (_ref2 = in_enableBreadcrumbScroll !== null && in_enableBreadcrumbScroll !== void 0 ? in_enableBreadcrumbScroll : !deprecated_disableBreadcrumbScroll) !== null && _ref2 !== void 0 ? _ref2 : false; // utility functions
127
129
 
128
130
  var checkUpdateVerticalSpace = function checkUpdateVerticalSpace() {
129
- return (0, _PageHeaderUtils.utilCheckUpdateVerticalSpace)(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
131
+ return (0, _PageHeaderUtils.utilCheckUpdateVerticalSpace)(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
130
132
  }; // NOTE: The buffer is used to add space between the bottom of the header and the last content
131
133
  // Not pre-collapsed and (subtitle or children)
132
134
 
@@ -189,9 +191,9 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
189
191
  setWidthIsNarrow = _useState26[1]; // handlers
190
192
 
191
193
 
192
- var handleActionBarWidthChange = function handleActionBarWidthChange(_ref2) {
193
- var minWidth = _ref2.minWidth,
194
- maxWidth = _ref2.maxWidth;
194
+ var handleActionBarWidthChange = function handleActionBarWidthChange(_ref3) {
195
+ var minWidth = _ref3.minWidth,
196
+ maxWidth = _ref3.maxWidth;
195
197
 
196
198
  /* don't know how to test resize */
197
199
 
@@ -204,9 +206,9 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
204
206
  setActionBarMinWidth(minWidth);
205
207
  };
206
208
 
207
- var handlePageActionWidthChange = function handlePageActionWidthChange(_ref3) {
208
- var minWidth = _ref3.minWidth,
209
- maxWidth = _ref3.maxWidth;
209
+ var handlePageActionWidthChange = function handlePageActionWidthChange(_ref4) {
210
+ var minWidth = _ref4.minWidth,
211
+ maxWidth = _ref4.maxWidth;
210
212
 
211
213
  /* don't know how to test resize */
212
214
 
@@ -302,10 +304,10 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
302
304
  return _objectSpread(_objectSpread({}, prev), {}, (_objectSpread3 = {}, (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--height-px"), "".concat(metrics.headerHeight, "px")), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--width-px"), "".concat(metrics.headerWidth, "px")), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--header-top"), "".concat(metrics.headerTopValue + metrics.headerOffset, "px")), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--breadcrumb-title-visibility"), scrollYValue > 0 ? 'visible' : 'hidden'), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--scroll"), "".concat(scrollYValue)), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--breadcrumb-title-top"), "".concat(Math.max(0, metrics.breadcrumbTitleHeight + metrics.titleRowSpaceAbove - scrollYValue), "px")), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--breadcrumb-title-opacity"), "".concat(Math.min(1, Math.max(0, (scrollYValue - (metrics.titleRowSpaceAbove || 0)) / (metrics.breadcrumbTitleHeight || 1) // don't want to divide by zero
303
305
  )))), (0, _defineProperty2.default)(_objectSpread3, "--".concat(_PageHeaderUtils.blockClass, "--breadcrumb-row-width-px"), "".concat(metrics.breadcrumbRowWidth, "px")), _objectSpread3));
304
306
  });
305
- }, [headerRef, disableBreadcrumbScroll, metrics, metrics.breadcrumbRowHeight, metrics.breadcrumbRowSpaceBelow, metrics.breadcrumbTitleHeight, metrics.breadcrumbRowWidth, metrics.headerHeight, metrics.headerWidth, metrics.headerOffset, metrics.headerTopValue, metrics.navigationRowHeight, navigation, scrollYValue, tags]);
307
+ }, [headerRef, enableBreadcrumbScroll, metrics, metrics.breadcrumbRowHeight, metrics.breadcrumbRowSpaceBelow, metrics.breadcrumbTitleHeight, metrics.breadcrumbRowWidth, metrics.headerHeight, metrics.headerWidth, metrics.headerOffset, metrics.headerTopValue, metrics.navigationRowHeight, navigation, scrollYValue, tags]);
306
308
  (0, _hooks.useNearestScroll)(headerRef, // on scroll or various layout changes check updates if needed
307
- function (_ref4) {
308
- var current = _ref4.current;
309
+ function (_ref5) {
310
+ var current = _ref5.current;
309
311
  setPageHeaderStyles(function (prev) {
310
312
  return _objectSpread(_objectSpread({}, prev), {}, (0, _defineProperty2.default)({}, "--".concat(_PageHeaderUtils.blockClass, "--breadcrumb-top"), "".concat(metrics.headerOffset, "px")));
311
313
  });
@@ -320,13 +322,13 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
320
322
  document.documentElement.style.setProperty("--".concat(_PageHeaderUtils.blockClass, "--tagset-tooltip-position"), fullyCollapsed ? 'fixed' : 'absolute');
321
323
  document.documentElement.style.setProperty("--".concat(_PageHeaderUtils.blockClass, "--tagset-tooltip-offset"), "".concat(tagsetTooltipOffset, "px"));
322
324
  setScrollYValue(current.scrollY);
323
- }, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, disableBreadcrumbScroll]);
324
- (0, _hooks.useWindowResize)(function (_ref5) {
325
- var current = _ref5.current;
325
+ }, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, enableBreadcrumbScroll]);
326
+ (0, _hooks.useWindowResize)(function (_ref6) {
327
+ var current = _ref6.current;
326
328
  // on window resize and other updates some values may have changed
327
329
  checkUpdateVerticalSpace();
328
- setWidthIsNarrow(current.innerWidth < 672); // small (below medium) media query
329
- }, [actionBarItems, children, breadcrumbs, disableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
330
+ setWidthIsNarrow(current.innerWidth < _layout.breakpoints.md.width); // small (below medium) media query
331
+ }, [actionBarItems, children, breadcrumbs, enableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
330
332
  (0, _react.useEffect)(function () {
331
333
  checkUpdateVerticalSpace(); // eslint-disable-next-line react-hooks/exhaustive-deps
332
334
  }, [fullWidthGrid, narrowGrid]);
@@ -364,7 +366,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
364
366
 
365
367
  var nextToTabsCheck = function nextToTabsCheck() {
366
368
  /* istanbul ignore next */
367
- return disableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
369
+ return enableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
368
370
  };
369
371
 
370
372
  (0, _react.useEffect)(function () {
@@ -388,7 +390,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
388
390
  className: "".concat(_PageHeaderUtils.blockClass, "--offset-top-measuring-element"),
389
391
  ref: offsetTopMeasuringRef
390
392
  }), /*#__PURE__*/_react.default.createElement("section", (0, _extends2.default)({}, rest, {
391
- className: (0, _classnames.default)([_PageHeaderUtils.blockClass, "".concat(_PageHeaderUtils.blockClass, "--no-margins-below-row"), className, (_ref6 = {}, (0, _defineProperty2.default)(_ref6, "".concat(_PageHeaderUtils.blockClass, "--has-navigation"), navigation || tags), (0, _defineProperty2.default)(_ref6, "".concat(_PageHeaderUtils.blockClass, "--has-navigation-tags-only"), !navigation && tags), _ref6)]),
393
+ className: (0, _classnames.default)([_PageHeaderUtils.blockClass, "".concat(_PageHeaderUtils.blockClass, "--no-margins-below-row"), className, (_ref7 = {}, (0, _defineProperty2.default)(_ref7, "".concat(_PageHeaderUtils.blockClass, "--has-navigation"), navigation || tags), (0, _defineProperty2.default)(_ref7, "".concat(_PageHeaderUtils.blockClass, "--has-navigation-tags-only"), !navigation && tags), _ref7)]),
392
394
  style: pageHeaderStyles,
393
395
  ref: headerRef
394
396
  }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Grid, {
@@ -410,7 +412,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
410
412
  breadcrumbs: breadcrumbs && breadcrumbItemForTitle ? breadcrumbs.concat(breadcrumbItemForTitle) : breadcrumbItemForTitle ? [breadcrumbItemForTitle] : breadcrumbs // breadcrumbs may be null or undefined
411
413
 
412
414
  }) : null), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
413
- className: (0, _classnames.default)(["".concat(_PageHeaderUtils.blockClass, "__action-bar-column ").concat(_PageHeaderUtils.blockClass, "__action-bar-column--background"), (_ref7 = {}, (0, _defineProperty2.default)(_ref7, "".concat(_PageHeaderUtils.blockClass, "__action-bar-column--has-page-actions"), pageActions), (0, _defineProperty2.default)(_ref7, "".concat(_PageHeaderUtils.blockClass, "__action-bar-column--influenced-by-collapse-button"), spaceForCollapseButton), _ref7)])
415
+ className: (0, _classnames.default)(["".concat(_PageHeaderUtils.blockClass, "__action-bar-column ").concat(_PageHeaderUtils.blockClass, "__action-bar-column--background"), (_ref8 = {}, (0, _defineProperty2.default)(_ref8, "".concat(_PageHeaderUtils.blockClass, "__action-bar-column--has-page-actions"), pageActions), (0, _defineProperty2.default)(_ref8, "".concat(_PageHeaderUtils.blockClass, "__action-bar-column--influenced-by-collapse-button"), spaceForCollapseButton), _ref8)])
414
416
  }, /*#__PURE__*/_react.default.createElement("div", {
415
417
  className: "".concat(_PageHeaderUtils.blockClass, "__action-bar-column-content"),
416
418
  ref: sizingContainerRef
@@ -455,7 +457,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
455
457
  showAllTagsLabel: showAllTagsLabel,
456
458
  tags: tags,
457
459
  overflowClassName: "".concat(_PageHeaderUtils.blockClass, "__navigation-tags-overflow")
458
- }))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on disableBreadcrumbScroll
460
+ }))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on enableBreadcrumbScroll
459
461
  navigation ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, {
460
462
  className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__navigation-row"), (_cx7 = {}, (0, _defineProperty2.default)(_cx7, "".concat(_PageHeaderUtils.blockClass, "__navigation-row--spacing-above-06"), !!navigation), (0, _defineProperty2.default)(_cx7, "".concat(_PageHeaderUtils.blockClass, "__navigation-row--has-tags"), tags), _cx7))
461
463
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
@@ -529,6 +531,11 @@ var TYPES = {
529
531
  };
530
532
  var tagTypes = Object.keys(TYPES);
531
533
  var deprecatedProps = {
534
+ /**
535
+ * **Deprecated** see property `enableBreadcrumbScroll`
536
+ */
537
+ disableBreadcrumbScroll: (0, _propsHelper.deprecateProp)(_propTypes.default.bool, 'Property replaced by `enableBreadcrumbScroll`'),
538
+
532
539
  /**
533
540
  * **Deprecated** see property `withoutBackground`
534
541
  */
@@ -558,8 +565,8 @@ PageHeader.propTypes = _objectSpread({
558
565
  *
559
566
  * NOTE: This prop is required if actionBarItems are supplied
560
567
  */
561
- actionBarOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (_ref9) {
562
- var actionBarItems = _ref9.actionBarItems;
568
+ actionBarOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (_ref10) {
569
+ var actionBarItems = _ref10.actionBarItems;
563
570
  return actionBarItems && actionBarItems.length > 0;
564
571
  }),
565
572
 
@@ -594,8 +601,8 @@ PageHeader.propTypes = _objectSpread({
594
601
  * If the user supplies breadcrumbs then this property is required.
595
602
  * It is used in an overflow menu when there is insufficient space to display all breadcrumbs inline.
596
603
  */
597
- breadcrumbOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (_ref10) {
598
- var breadcrumbs = _ref10.breadcrumbs;
604
+ breadcrumbOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (_ref11) {
605
+ var breadcrumbs = _ref11.breadcrumbs;
599
606
  return breadcrumbs && breadcrumbs.length > 0;
600
607
  }),
601
608
 
@@ -634,8 +641,8 @@ PageHeader.propTypes = _objectSpread({
634
641
  /**
635
642
  * A text version of the `label` for display, required if `label` is not a string.
636
643
  */
637
- title: _propTypes.default.string.isRequired.if(function (_ref11) {
638
- var label = _ref11.label;
644
+ title: _propTypes.default.string.isRequired.if(function (_ref12) {
645
+ var label = _ref12.label;
639
646
  return typeof label !== 'string';
640
647
  })
641
648
  })),
@@ -665,9 +672,9 @@ PageHeader.propTypes = _objectSpread({
665
672
  * If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
666
673
  * required for both the expend and collapse states of the button component used.
667
674
  */
668
- collapseHeaderIconDescription: _propTypes.default.string.isRequired.if(function (_ref12) {
669
- var withoutBackground = _ref12.withoutBackground,
670
- hasCollapseHeaderToggle = _ref12.hasCollapseHeaderToggle;
675
+ collapseHeaderIconDescription: _propTypes.default.string.isRequired.if(function (_ref13) {
676
+ var withoutBackground = _ref13.withoutBackground,
677
+ hasCollapseHeaderToggle = _ref13.hasCollapseHeaderToggle;
671
678
  return !withoutBackground && hasCollapseHeaderToggle;
672
679
  }),
673
680
 
@@ -678,18 +685,18 @@ PageHeader.propTypes = _objectSpread({
678
685
  collapseTitle: _propTypes.default.bool,
679
686
 
680
687
  /**
681
- * Standard behavior scrolls the breadcrumb off to leave just tabs. This
682
- * option preserves vertical space for both the breadcrumb and tabs if they're supplied.
688
+ * Standard keeps the breadcrumb on the page. This option allows the breadcrumb
689
+ * to scroll off
683
690
  */
684
- disableBreadcrumbScroll: _propTypes.default.bool,
691
+ enableBreadcrumbScroll: _propTypes.default.bool,
685
692
 
686
693
  /**
687
694
  * If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
688
695
  * required for both the expend and collapse states of the button component used.
689
696
  */
690
- expandHeaderIconDescription: _propTypes.default.string.isRequired.if(function (_ref13) {
691
- var withoutBackground = _ref13.withoutBackground,
692
- hasCollapseHeaderToggle = _ref13.hasCollapseHeaderToggle;
697
+ expandHeaderIconDescription: _propTypes.default.string.isRequired.if(function (_ref14) {
698
+ var withoutBackground = _ref14.withoutBackground,
699
+ hasCollapseHeaderToggle = _ref14.hasCollapseHeaderToggle;
693
700
  return !withoutBackground && hasCollapseHeaderToggle;
694
701
  }),
695
702
 
@@ -760,8 +767,8 @@ PageHeader.propTypes = _objectSpread({
760
767
  *
761
768
  * NOTE: This prop is required if pageActions are supplied
762
769
  */
763
- pageActionsOverflowLabel: _propTypes.default.node.isRequired.if(function (_ref14) {
764
- var pageActions = _ref14.pageActions;
770
+ pageActionsOverflowLabel: _propTypes.default.node.isRequired.if(function (_ref15) {
771
+ var pageActions = _ref15.pageActions;
765
772
  return pageActions && pageActions.length > 0 && !pageActions.content;
766
773
  }),
767
774
 
@@ -29,7 +29,7 @@ var blockClass = "".concat(_settings.pkg.prefix, "--page-header");
29
29
  * @param {{}} headerRef
30
30
  * @param {{}} offsetTopMeasuringRef
31
31
  * @param {{}} navigation
32
- * @param {boolean} disableBreadcrumbScroll
32
+ * @param {boolean} enableBreadcrumbScroll
33
33
  * @param {boolean} hasActionBar
34
34
  * @param {boolean} widthIsNarrow
35
35
  * @param {()} setMetrics
@@ -37,7 +37,7 @@ var blockClass = "".concat(_settings.pkg.prefix, "--page-header");
37
37
 
38
38
  exports.blockClass = blockClass;
39
39
 
40
- var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics) {
40
+ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics) {
41
41
  var dynamicRefs = {};
42
42
 
43
43
  var getDynamicRef = function getDynamicRef(selector) {
@@ -122,13 +122,9 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
122
122
  update.headerTopValue += 8;
123
123
  }
124
124
 
125
- if (disableBreadcrumbScroll || !navigation) {
125
+ if (!enableBreadcrumbScroll || !navigation) {
126
126
  // adjust sticky top if no navigation or breadcrumb is to stay on screen
127
127
  update.headerTopValue += update.breadcrumbRowHeight;
128
- } else {
129
- if (navigation && !widthIsNarrow) {
130
- update.headerTopValue -= 8;
131
- }
132
128
  }
133
129
 
134
130
  if (window) {
@@ -19,6 +19,8 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
+ var _reactDom = require("react-dom");
23
+
22
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
25
 
24
26
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -37,7 +39,7 @@ var _propsHelper = require("../../global/js/utils/props-helper");
37
39
 
38
40
  var _settings = require("../../settings");
39
41
 
40
- var _excluded = ["align", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
42
+ var _excluded = ["align", "allTagsModalTarget", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
41
43
  _excluded2 = ["label", "id"],
42
44
  _excluded3 = ["label"];
43
45
 
@@ -55,6 +57,7 @@ var allTagsModalSearchThreshold = 10; // Default values for props
55
57
 
56
58
  var defaults = {
57
59
  align: 'start',
60
+ allTagsModalTarget: document.body,
58
61
  overflowAlign: 'center',
59
62
  overflowDirection: 'bottom'
60
63
  };
@@ -62,6 +65,8 @@ var defaults = {
62
65
  var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
63
66
  var _ref$align = _ref.align,
64
67
  align = _ref$align === void 0 ? defaults.align : _ref$align,
68
+ _ref$allTagsModalTarg = _ref.allTagsModalTarget,
69
+ allTagsModalTarget = _ref$allTagsModalTarg === void 0 ? defaults.allTagsModalTarget : _ref$allTagsModalTarg,
65
70
  className = _ref.className,
66
71
  maxVisible = _ref.maxVisible,
67
72
  _ref$overflowAlign = _ref.overflowAlign,
@@ -246,14 +251,14 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
246
251
  }, hiddenSizingTags), /*#__PURE__*/_react.default.createElement("div", {
247
252
  className: "".concat(blockClass, "__tag-container"),
248
253
  ref: displayedArea
249
- }, displayedTags)), tags && displayCount < tags.length ? /*#__PURE__*/_react.default.createElement(_TagSetModal.TagSetModal, {
254
+ }, displayedTags)), allTagsModalTarget && tags && displayCount < tags.length ? /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement(_TagSetModal.TagSetModal, {
250
255
  allTags: tags,
251
256
  open: showAllModalOpen,
252
257
  title: allTagsModalTitle,
253
258
  onClose: handleModalClose,
254
259
  searchLabel: allTagsModalSearchLabel,
255
260
  searchPlaceholder: allTagsModalSearchPlaceholderText
256
- }) : null);
261
+ }), allTagsModalTarget) : null);
257
262
  }); // Return a placeholder if not released and not enabled by feature flag
258
263
 
259
264
 
@@ -301,6 +306,11 @@ TagSet.propTypes = {
301
306
  */
302
307
  allTagsModalSearchPlaceholderText: string_required_if_more_than_10_tags,
303
308
 
309
+ /**
310
+ * portal target for the all tags modal
311
+ */
312
+ allTagsModalTarget: _propTypes.default.node,
313
+
304
314
  /**
305
315
  * title for the show all modal. **Note: Required if more than 10 tags**
306
316
  */
@@ -86,7 +86,8 @@ var UserProfileImage = /*#__PURE__*/_react.default.forwardRef(function (_ref, re
86
86
  };
87
87
 
88
88
  return FillItem && (tooltipText ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TooltipIcon, {
89
- tooltipText: tooltipText
89
+ tooltipText: tooltipText,
90
+ className: "".concat(blockClass, "__tooltip")
90
91
  }, renderUserProfileImage()) : renderUserProfileImage());
91
92
  }); // Return a placeholder if not released and not enabled by feature flag
92
93
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "1.9.0",
4
+ "version": "1.10.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -52,7 +52,7 @@
52
52
  "devDependencies": {
53
53
  "@babel/cli": "^7.17.6",
54
54
  "@babel/core": "^7.17.5",
55
- "babel-preset-ibm-cloud-cognitive": "^0.14.9",
55
+ "babel-preset-ibm-cloud-cognitive": "^0.14.10",
56
56
  "chalk": "^4.1.2",
57
57
  "change-case": "^4.1.2",
58
58
  "copyfiles": "^2.4.1",
@@ -60,8 +60,8 @@
60
60
  "fs-extra": "^10.0.1",
61
61
  "glob": "^7.2.0",
62
62
  "jest": "^27.5.1",
63
- "jest-config-ibm-cloud-cognitive": "^0.23.10",
64
- "npm-check-updates": "^12.4.0",
63
+ "jest-config-ibm-cloud-cognitive": "^0.23.11",
64
+ "npm-check-updates": "^12.5.2",
65
65
  "npm-run-all": "^4.1.5",
66
66
  "rimraf": "^3.0.2",
67
67
  "sass": "^1.49.9",
@@ -75,18 +75,18 @@
75
75
  "react-window": "^1.8.6"
76
76
  },
77
77
  "peerDependencies": {
78
- "@carbon/colors": "^10.36.0",
79
- "@carbon/icons-react": "^10.46.0",
80
- "@carbon/import-once": "^10.5.0",
81
- "@carbon/layout": "^10.36.0",
82
- "@carbon/motion": "^10.28.0",
83
- "@carbon/themes": "^10.50.0",
84
- "@carbon/type": "^10.40.0",
85
- "carbon-components": "^10.53.0",
86
- "carbon-components-react": "^7.53.0",
78
+ "@carbon/colors": "^10.37.0",
79
+ "@carbon/icons-react": "^10.47.0",
80
+ "@carbon/import-once": "^10.7.0",
81
+ "@carbon/layout": "^10.37.0",
82
+ "@carbon/motion": "^10.29.0",
83
+ "@carbon/themes": "^10.52.0",
84
+ "@carbon/type": "^10.42.0",
85
+ "carbon-components": "^10.54.0",
86
+ "carbon-components-react": "^7.54.2",
87
87
  "carbon-icons": "^7.0.7",
88
88
  "react": "^16.8.6 || ^17.0.1",
89
89
  "react-dom": "^16.8.6 || ^17.0.1"
90
90
  },
91
- "gitHead": "a21d7abe81dcae33cd53a13cc9d34e60edade3d4"
91
+ "gitHead": "9c24da12c6e7a113e4d6f20bfb5d61a212460c89"
92
92
  }
@@ -24,19 +24,11 @@
24
24
  padding: $spacing-05;
25
25
  }
26
26
 
27
- .#{$block-class}__items-label {
28
- margin-right: $spacing-03;
29
-
30
- &-container {
31
- display: flex;
32
- align-items: center;
33
- margin-top: $spacing-05;
34
- margin-bottom: $spacing-03;
35
- }
36
- }
37
-
38
27
  .#{$block-class}__selections {
39
- border-top: 1px solid $ui-03;
28
+ &.#{$carbon-prefix}--structured-list {
29
+ border-top: 1px solid $ui-03;
30
+ margin-bottom: 0;
31
+ }
40
32
 
41
33
  &-wrapper {
42
34
  display: block;
@@ -121,16 +113,32 @@
121
113
  .#{$block-class}__columns {
122
114
  display: flex;
123
115
  flex-direction: row;
116
+ overflow-x: auto;
124
117
  }
125
118
 
126
119
  .#{$block-class}__columns .#{$block-class}__selections-cell {
127
120
  // stylelint-disable-next-line
128
- padding: 0 $spacing-05 !important;
121
+ padding: 0 !important;
129
122
  }
130
123
 
131
124
  .#{$block-class}__column {
125
+ overflow: auto;
126
+ max-width: 15rem;
127
+ flex: 1 0 15rem;
132
128
  padding: $spacing-05;
133
- border-right: $ui-03;
129
+ border-top: 1px solid $ui-03;
130
+ border-right: 1px solid $ui-03;
131
+ }
132
+
133
+ .#{$block-class}__tag-container {
134
+ display: flex;
135
+ align-items: center;
136
+ margin-top: $spacing-05;
137
+ margin-bottom: $spacing-03;
138
+
139
+ &-label {
140
+ margin-right: $spacing-03;
141
+ }
134
142
  }
135
143
 
136
144
  // overrides
@@ -145,6 +153,11 @@
145
153
  color: $text-02;
146
154
  }
147
155
 
156
+ .#{$block-class} .#{$tearsheet-class} .#{$tearsheet-class}__content {
157
+ display: flex;
158
+ flex-direction: column;
159
+ }
160
+
148
161
  .#{$block-class} .#{$block-class}__items-label {
149
162
  @include carbon--type-style('productive-heading-01');
150
163
  }
@@ -19,6 +19,7 @@
19
19
  // stylelint-disable-next-line carbon/layout-token-use
20
20
  transform: translateX($influencerAnimationStart);
21
21
  }
22
+
22
23
  100% {
23
24
  opacity: 1;
24
25
  transform: translateX(0);
@@ -29,6 +30,7 @@
29
30
  opacity: 1;
30
31
  transform: translateX(0);
31
32
  }
33
+
32
34
  100% {
33
35
  opacity: 0;
34
36
  // stylelint-disable-next-line carbon/layout-token-use
@@ -70,6 +70,7 @@
70
70
 
71
71
  .#{$pkg-prefix}--create-modal__form > * {
72
72
  margin-bottom: $spacing-05;
73
+
73
74
  &:last-child {
74
75
  margin-bottom: 0;
75
76
  }
@@ -29,6 +29,7 @@
29
29
  // stylelint-disable-next-line carbon/layout-token-use
30
30
  transform: translateY(-0.75rem);
31
31
  }
32
+
32
33
  100% {
33
34
  opacity: 1;
34
35
  transform: translateY(0);
@@ -47,6 +47,7 @@
47
47
 
48
48
  .#{$block-class} .#{$block-class}__form > * {
49
49
  margin-bottom: $spacing-05;
50
+
50
51
  &:last-child {
51
52
  margin-bottom: 0;
52
53
  }
@@ -35,10 +35,6 @@
35
35
  position: relative;
36
36
  }
37
37
 
38
- button.#{$block-class}__td {
39
- margin: 0;
40
- background-color: transparent;
41
- }
42
38
  .#{$block-class}__tr {
43
39
  :last-child {
44
40
  .#{$block-class}__td {
@@ -60,22 +56,25 @@
60
56
  border-right: 1px solid $text-03;
61
57
  }
62
58
  .#{$block-class}__th,
63
- button.#{$block-class}__td-th {
59
+ .#{$block-class}__td-th.#{$block-class}__td {
64
60
  @include set-header-borders();
65
61
 
66
62
  background-color: $ui-01;
67
63
  cursor: pointer;
68
64
  }
69
- .#{$block-class}__td-th {
65
+ .#{$block-class}__td-th.#{$block-class}__td {
70
66
  @include carbon--font-weight('semibold');
71
67
 
72
68
  display: flex;
73
69
  align-items: center;
74
70
  justify-content: flex-end;
75
71
  }
72
+
76
73
  .#{$block-class}__td {
77
74
  @include set-body-borders();
78
75
 
76
+ margin: 0;
77
+ background-color: transparent;
79
78
  cursor: cell;
80
79
  text-align: left;
81
80
  }
@@ -87,9 +86,10 @@
87
86
  }
88
87
  .#{$block-class}__active-cell--highlight {
89
88
  position: absolute;
90
- z-index: 2;
89
+ z-index: 3;
91
90
  border: $spacing-01 solid $interactive-01;
92
91
  background-color: transparent;
92
+
93
93
  &:focus {
94
94
  border: $spacing-01 solid $interactive-01;
95
95
  outline: 0;
@@ -100,6 +100,7 @@
100
100
  z-index: 2;
101
101
  border: 1px solid $interactive-01;
102
102
  pointer-events: none;
103
+
103
104
  &::before {
104
105
  position: absolute;
105
106
  top: 0;
@@ -112,6 +113,10 @@
112
113
  opacity: 0.25;
113
114
  }
114
115
  }
116
+ .#{$block-class}__th--active-header,
117
+ .#{$block-class}__td-th--active-header.#{$block-class}__td {
118
+ background-color: $ui-03;
119
+ }
115
120
  }
116
121
  }
117
122
 
@@ -81,7 +81,9 @@
81
81
 
82
82
  position: relative;
83
83
  display: inline-block;
84
- // min-width: 250px; // similar to min input box with room for toolbar
84
+ // A standard input box is based on size (often around 150px)
85
+ // In our case there are potentially 2 * size buttons which we double
86
+ min-width: calc(4 * var(--#{$block-class}--size));
85
87
  max-width: 100%;
86
88
  height: var(--#{$block-class}--size);
87
89
  background-color: var(--#{$block-class}--background-color);
@@ -119,11 +121,11 @@
119
121
  overflow: hidden;
120
122
  // positions text and placeholder including when showing placeholder
121
123
  // NOTE: Using flex does strange things to a caret in content editable
122
- min-width: calc(100% - 3 * var(--#{$block-class}--size) - $spacing-05);
123
- max-width: calc(100% - 3 * var(--#{$block-class}--size) - $spacing-05);
124
+ width: calc(100% - 2 * var(--#{$block-class}--size) - $spacing-05);
125
+ max-width: calc(100% - 2 * var(--#{$block-class}--size) - $spacing-05);
124
126
  min-height: var(--#{$block-class}--size);
125
127
  // stylelint-disable-next-line carbon/layout-token-use
126
- margin-right: calc(3 * var(--#{$block-class}--size));
128
+ margin-right: calc(2 * var(--#{$block-class}--size));
127
129
  // room for toolbar
128
130
  margin-left: $spacing-05;
129
131
  // stylelint-disable-next-line carbon/type-token-use
@@ -134,6 +136,14 @@
134
136
  }
135
137
  }
136
138
 
139
+ &.#{$block-class}--invalid .#{$block-class}__input {
140
+ // add space for validation
141
+ width: calc(100% - 3 * var(--#{$block-class}--size) - $spacing-05);
142
+ max-width: calc(100% - 3 * var(--#{$block-class}--size) - $spacing-05);
143
+ // stylelint-disable-next-line carbon/layout-token-use
144
+ margin-right: calc(3 * var(--#{$block-class}--size));
145
+ }
146
+
137
147
  .#{$block-class}__input::after {
138
148
  position: absolute;
139
149
  top: 0;
@@ -198,12 +208,17 @@
198
208
  right: 0;
199
209
  display: flex;
200
210
  // width: room for validation, and two buttons
201
- width: calc(3 * var(--#{$block-class}--size));
211
+ width: calc(2 * var(--#{$block-class}--size));
202
212
  height: 100%;
203
213
  justify-content: space-between;
204
214
  cursor: text;
205
215
  }
206
216
 
217
+ &.#{$block-class}--invalid .#{$block-class}__after-input-elements {
218
+ // width: room for validation, and two buttons
219
+ width: calc(3 * var(--#{$block-class}--size));
220
+ }
221
+
207
222
  .#{$block-class}__toolbar--animation {
208
223
  // makes room for the top clip text but hides the side overflow
209
224
  clip-path: --tooltip-top-bottom-safe-clip();
@@ -276,9 +291,7 @@
276
291
 
277
292
  &.#{$block-class}.#{$block-class} .#{$block-class}__edit {
278
293
  @include input-button-defaults($block-class);
279
-
280
294
  // pointer-events: none;
281
-
282
295
  &:hover,
283
296
  &:active,
284
297
  &:focus {
@@ -309,10 +322,6 @@
309
322
  @include input-button-defaults($block-class);
310
323
  }
311
324
 
312
- &.#{$block-class}--warn .#{$block-class}__validation-icon {
313
- color: $support-warning;
314
- }
315
-
316
325
  &.#{$block-class}--invalid .#{$block-class}__validation-icon {
317
326
  color: $support-error;
318
327
  }