@carbon/ibm-products 1.9.0 → 1.10.0

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