@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
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- 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"];
5
+ 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"];
6
6
 
7
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
8
 
@@ -20,6 +20,7 @@ import { layout05, baseFontSize } from '@carbon/layout';
20
20
  import cx from 'classnames';
21
21
  import { useResizeDetector } from 'react-resize-detector';
22
22
  import { Grid, Column, Row, Button, Tag } from 'carbon-components-react';
23
+ import { breakpoints } from '@carbon/layout';
23
24
  import { useWindowResize, useNearestScroll } from '../../global/js/hooks';
24
25
  import { getDevtoolsProps } from '../../global/js/utils/devtools';
25
26
  import { deprecateProp, prepareProps } from '../../global/js/utils/props-helper';
@@ -38,7 +39,7 @@ var defaults = {
38
39
  narrowGrid: false
39
40
  };
40
41
  export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
41
- var _withoutBackground, _ref6, _cx2, _ref7, _cx4, _cx7;
42
+ var _withoutBackground, _ref2, _ref7, _cx2, _ref8, _cx4, _cx7;
42
43
 
43
44
  var actionBarItems = _ref.actionBarItems,
44
45
  actionBarMenuOptionsClass = _ref.actionBarMenuOptionsClass,
@@ -54,7 +55,8 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
54
55
  collapseHeader = _ref.collapseHeader,
55
56
  collapseHeaderIconDescription = _ref.collapseHeaderIconDescription,
56
57
  collapseTitle = _ref.collapseTitle,
57
- disableBreadcrumbScroll = _ref.disableBreadcrumbScroll,
58
+ deprecated_disableBreadcrumbScroll = _ref.disableBreadcrumbScroll,
59
+ in_enableBreadcrumbScroll = _ref.enableBreadcrumbScroll,
58
60
  expandHeaderIconDescription = _ref.expandHeaderIconDescription,
59
61
  _ref$fullWidthGrid = _ref.fullWidthGrid,
60
62
  fullWidthGrid = _ref$fullWidthGrid === void 0 ? defaults.fullWidthGrid : _ref$fullWidthGrid,
@@ -93,10 +95,11 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
93
95
  var offsetTopMeasuringRef = useRef(null); // state based on props only
94
96
 
95
97
  var hasActionBar = actionBarItems && actionBarItems.length > 0;
96
- var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems; // utility functions
98
+ var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems;
99
+ var enableBreadcrumbScroll = (_ref2 = in_enableBreadcrumbScroll !== null && in_enableBreadcrumbScroll !== void 0 ? in_enableBreadcrumbScroll : !deprecated_disableBreadcrumbScroll) !== null && _ref2 !== void 0 ? _ref2 : false; // utility functions
97
100
 
98
101
  var checkUpdateVerticalSpace = function checkUpdateVerticalSpace() {
99
- return utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
102
+ return utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
100
103
  }; // NOTE: The buffer is used to add space between the bottom of the header and the last content
101
104
  // Not pre-collapsed and (subtitle or children)
102
105
 
@@ -159,9 +162,9 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
159
162
  setWidthIsNarrow = _useState26[1]; // handlers
160
163
 
161
164
 
162
- var handleActionBarWidthChange = function handleActionBarWidthChange(_ref2) {
163
- var minWidth = _ref2.minWidth,
164
- maxWidth = _ref2.maxWidth;
165
+ var handleActionBarWidthChange = function handleActionBarWidthChange(_ref3) {
166
+ var minWidth = _ref3.minWidth,
167
+ maxWidth = _ref3.maxWidth;
165
168
 
166
169
  /* don't know how to test resize */
167
170
 
@@ -174,9 +177,9 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
174
177
  setActionBarMinWidth(minWidth);
175
178
  };
176
179
 
177
- var handlePageActionWidthChange = function handlePageActionWidthChange(_ref3) {
178
- var minWidth = _ref3.minWidth,
179
- maxWidth = _ref3.maxWidth;
180
+ var handlePageActionWidthChange = function handlePageActionWidthChange(_ref4) {
181
+ var minWidth = _ref4.minWidth,
182
+ maxWidth = _ref4.maxWidth;
180
183
 
181
184
  /* don't know how to test resize */
182
185
 
@@ -272,10 +275,10 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
272
275
  return _objectSpread(_objectSpread({}, prev), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, "--".concat(blockClass, "--height-px"), "".concat(metrics.headerHeight, "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--width-px"), "".concat(metrics.headerWidth, "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--header-top"), "".concat(metrics.headerTopValue + metrics.headerOffset, "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-title-visibility"), scrollYValue > 0 ? 'visible' : 'hidden'), _defineProperty(_objectSpread3, "--".concat(blockClass, "--scroll"), "".concat(scrollYValue)), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-title-top"), "".concat(Math.max(0, metrics.breadcrumbTitleHeight + metrics.titleRowSpaceAbove - scrollYValue), "px")), _defineProperty(_objectSpread3, "--".concat(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
273
276
  )))), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-row-width-px"), "".concat(metrics.breadcrumbRowWidth, "px")), _objectSpread3));
274
277
  });
275
- }, [headerRef, disableBreadcrumbScroll, metrics, metrics.breadcrumbRowHeight, metrics.breadcrumbRowSpaceBelow, metrics.breadcrumbTitleHeight, metrics.breadcrumbRowWidth, metrics.headerHeight, metrics.headerWidth, metrics.headerOffset, metrics.headerTopValue, metrics.navigationRowHeight, navigation, scrollYValue, tags]);
278
+ }, [headerRef, enableBreadcrumbScroll, metrics, metrics.breadcrumbRowHeight, metrics.breadcrumbRowSpaceBelow, metrics.breadcrumbTitleHeight, metrics.breadcrumbRowWidth, metrics.headerHeight, metrics.headerWidth, metrics.headerOffset, metrics.headerTopValue, metrics.navigationRowHeight, navigation, scrollYValue, tags]);
276
279
  useNearestScroll(headerRef, // on scroll or various layout changes check updates if needed
277
- function (_ref4) {
278
- var current = _ref4.current;
280
+ function (_ref5) {
281
+ var current = _ref5.current;
279
282
  setPageHeaderStyles(function (prev) {
280
283
  return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, "--".concat(blockClass, "--breadcrumb-top"), "".concat(metrics.headerOffset, "px")));
281
284
  });
@@ -290,13 +293,13 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
290
293
  document.documentElement.style.setProperty("--".concat(blockClass, "--tagset-tooltip-position"), fullyCollapsed ? 'fixed' : 'absolute');
291
294
  document.documentElement.style.setProperty("--".concat(blockClass, "--tagset-tooltip-offset"), "".concat(tagsetTooltipOffset, "px"));
292
295
  setScrollYValue(current.scrollY);
293
- }, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, disableBreadcrumbScroll]);
294
- useWindowResize(function (_ref5) {
295
- var current = _ref5.current;
296
+ }, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, enableBreadcrumbScroll]);
297
+ useWindowResize(function (_ref6) {
298
+ var current = _ref6.current;
296
299
  // on window resize and other updates some values may have changed
297
300
  checkUpdateVerticalSpace();
298
- setWidthIsNarrow(current.innerWidth < 672); // small (below medium) media query
299
- }, [actionBarItems, children, breadcrumbs, disableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
301
+ setWidthIsNarrow(current.innerWidth < breakpoints.md.width); // small (below medium) media query
302
+ }, [actionBarItems, children, breadcrumbs, enableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
300
303
  useEffect(function () {
301
304
  checkUpdateVerticalSpace(); // eslint-disable-next-line react-hooks/exhaustive-deps
302
305
  }, [fullWidthGrid, narrowGrid]);
@@ -334,7 +337,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
334
337
 
335
338
  var nextToTabsCheck = function nextToTabsCheck() {
336
339
  /* istanbul ignore next */
337
- return disableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
340
+ return enableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
338
341
  };
339
342
 
340
343
  useEffect(function () {
@@ -358,7 +361,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
358
361
  className: "".concat(blockClass, "--offset-top-measuring-element"),
359
362
  ref: offsetTopMeasuringRef
360
363
  }), /*#__PURE__*/React.createElement("section", _extends({}, rest, {
361
- className: cx([blockClass, "".concat(blockClass, "--no-margins-below-row"), className, (_ref6 = {}, _defineProperty(_ref6, "".concat(blockClass, "--has-navigation"), navigation || tags), _defineProperty(_ref6, "".concat(blockClass, "--has-navigation-tags-only"), !navigation && tags), _ref6)]),
364
+ className: cx([blockClass, "".concat(blockClass, "--no-margins-below-row"), className, (_ref7 = {}, _defineProperty(_ref7, "".concat(blockClass, "--has-navigation"), navigation || tags), _defineProperty(_ref7, "".concat(blockClass, "--has-navigation-tags-only"), !navigation && tags), _ref7)]),
362
365
  style: pageHeaderStyles,
363
366
  ref: headerRef
364
367
  }, getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement(Grid, {
@@ -380,7 +383,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
380
383
  breadcrumbs: breadcrumbs && breadcrumbItemForTitle ? breadcrumbs.concat(breadcrumbItemForTitle) : breadcrumbItemForTitle ? [breadcrumbItemForTitle] : breadcrumbs // breadcrumbs may be null or undefined
381
384
 
382
385
  }) : null), /*#__PURE__*/React.createElement(Column, {
383
- className: cx(["".concat(blockClass, "__action-bar-column ").concat(blockClass, "__action-bar-column--background"), (_ref7 = {}, _defineProperty(_ref7, "".concat(blockClass, "__action-bar-column--has-page-actions"), pageActions), _defineProperty(_ref7, "".concat(blockClass, "__action-bar-column--influenced-by-collapse-button"), spaceForCollapseButton), _ref7)])
386
+ className: cx(["".concat(blockClass, "__action-bar-column ").concat(blockClass, "__action-bar-column--background"), (_ref8 = {}, _defineProperty(_ref8, "".concat(blockClass, "__action-bar-column--has-page-actions"), pageActions), _defineProperty(_ref8, "".concat(blockClass, "__action-bar-column--influenced-by-collapse-button"), spaceForCollapseButton), _ref8)])
384
387
  }, /*#__PURE__*/React.createElement("div", {
385
388
  className: "".concat(blockClass, "__action-bar-column-content"),
386
389
  ref: sizingContainerRef
@@ -425,7 +428,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
425
428
  showAllTagsLabel: showAllTagsLabel,
426
429
  tags: tags,
427
430
  overflowClassName: "".concat(blockClass, "__navigation-tags-overflow")
428
- }))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on disableBreadcrumbScroll
431
+ }))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on enableBreadcrumbScroll
429
432
  navigation ? /*#__PURE__*/React.createElement(Row, {
430
433
  className: cx("".concat(blockClass, "__navigation-row"), (_cx7 = {}, _defineProperty(_cx7, "".concat(blockClass, "__navigation-row--spacing-above-06"), !!navigation), _defineProperty(_cx7, "".concat(blockClass, "__navigation-row--has-tags"), tags), _cx7))
431
434
  }, /*#__PURE__*/React.createElement(Column, {
@@ -497,6 +500,11 @@ var TYPES = {
497
500
  };
498
501
  var tagTypes = Object.keys(TYPES);
499
502
  export var deprecatedProps = {
503
+ /**
504
+ * **Deprecated** see property `enableBreadcrumbScroll`
505
+ */
506
+ disableBreadcrumbScroll: deprecateProp(PropTypes.bool, 'Property replaced by `enableBreadcrumbScroll`'),
507
+
500
508
  /**
501
509
  * **Deprecated** see property `withoutBackground`
502
510
  */
@@ -525,8 +533,8 @@ PageHeader.propTypes = _objectSpread({
525
533
  *
526
534
  * NOTE: This prop is required if actionBarItems are supplied
527
535
  */
528
- actionBarOverflowAriaLabel: PropTypes.string.isRequired.if(function (_ref9) {
529
- var actionBarItems = _ref9.actionBarItems;
536
+ actionBarOverflowAriaLabel: PropTypes.string.isRequired.if(function (_ref10) {
537
+ var actionBarItems = _ref10.actionBarItems;
530
538
  return actionBarItems && actionBarItems.length > 0;
531
539
  }),
532
540
 
@@ -561,8 +569,8 @@ PageHeader.propTypes = _objectSpread({
561
569
  * If the user supplies breadcrumbs then this property is required.
562
570
  * It is used in an overflow menu when there is insufficient space to display all breadcrumbs inline.
563
571
  */
564
- breadcrumbOverflowAriaLabel: PropTypes.string.isRequired.if(function (_ref10) {
565
- var breadcrumbs = _ref10.breadcrumbs;
572
+ breadcrumbOverflowAriaLabel: PropTypes.string.isRequired.if(function (_ref11) {
573
+ var breadcrumbs = _ref11.breadcrumbs;
566
574
  return breadcrumbs && breadcrumbs.length > 0;
567
575
  }),
568
576
 
@@ -601,8 +609,8 @@ PageHeader.propTypes = _objectSpread({
601
609
  /**
602
610
  * A text version of the `label` for display, required if `label` is not a string.
603
611
  */
604
- title: PropTypes.string.isRequired.if(function (_ref11) {
605
- var label = _ref11.label;
612
+ title: PropTypes.string.isRequired.if(function (_ref12) {
613
+ var label = _ref12.label;
606
614
  return typeof label !== 'string';
607
615
  })
608
616
  })),
@@ -632,9 +640,9 @@ PageHeader.propTypes = _objectSpread({
632
640
  * If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
633
641
  * required for both the expend and collapse states of the button component used.
634
642
  */
635
- collapseHeaderIconDescription: PropTypes.string.isRequired.if(function (_ref12) {
636
- var withoutBackground = _ref12.withoutBackground,
637
- hasCollapseHeaderToggle = _ref12.hasCollapseHeaderToggle;
643
+ collapseHeaderIconDescription: PropTypes.string.isRequired.if(function (_ref13) {
644
+ var withoutBackground = _ref13.withoutBackground,
645
+ hasCollapseHeaderToggle = _ref13.hasCollapseHeaderToggle;
638
646
  return !withoutBackground && hasCollapseHeaderToggle;
639
647
  }),
640
648
 
@@ -645,18 +653,18 @@ PageHeader.propTypes = _objectSpread({
645
653
  collapseTitle: PropTypes.bool,
646
654
 
647
655
  /**
648
- * Standard behavior scrolls the breadcrumb off to leave just tabs. This
649
- * option preserves vertical space for both the breadcrumb and tabs if they're supplied.
656
+ * Standard keeps the breadcrumb on the page. This option allows the breadcrumb
657
+ * to scroll off
650
658
  */
651
- disableBreadcrumbScroll: PropTypes.bool,
659
+ enableBreadcrumbScroll: PropTypes.bool,
652
660
 
653
661
  /**
654
662
  * If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
655
663
  * required for both the expend and collapse states of the button component used.
656
664
  */
657
- expandHeaderIconDescription: PropTypes.string.isRequired.if(function (_ref13) {
658
- var withoutBackground = _ref13.withoutBackground,
659
- hasCollapseHeaderToggle = _ref13.hasCollapseHeaderToggle;
665
+ expandHeaderIconDescription: PropTypes.string.isRequired.if(function (_ref14) {
666
+ var withoutBackground = _ref14.withoutBackground,
667
+ hasCollapseHeaderToggle = _ref14.hasCollapseHeaderToggle;
660
668
  return !withoutBackground && hasCollapseHeaderToggle;
661
669
  }),
662
670
 
@@ -727,8 +735,8 @@ PageHeader.propTypes = _objectSpread({
727
735
  *
728
736
  * NOTE: This prop is required if pageActions are supplied
729
737
  */
730
- pageActionsOverflowLabel: PropTypes.node.isRequired.if(function (_ref14) {
731
- var pageActions = _ref14.pageActions;
738
+ pageActionsOverflowLabel: PropTypes.node.isRequired.if(function (_ref15) {
739
+ var pageActions = _ref15.pageActions;
732
740
  return pageActions && pageActions.length > 0 && !pageActions.content;
733
741
  }),
734
742
 
@@ -21,13 +21,13 @@ export var blockClass = "".concat(pkg.prefix, "--page-header");
21
21
  * @param {{}} headerRef
22
22
  * @param {{}} offsetTopMeasuringRef
23
23
  * @param {{}} navigation
24
- * @param {boolean} disableBreadcrumbScroll
24
+ * @param {boolean} enableBreadcrumbScroll
25
25
  * @param {boolean} hasActionBar
26
26
  * @param {boolean} widthIsNarrow
27
27
  * @param {()} setMetrics
28
28
  */
29
29
 
30
- export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics) {
30
+ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics) {
31
31
  var dynamicRefs = {};
32
32
 
33
33
  var getDynamicRef = function getDynamicRef(selector) {
@@ -112,13 +112,9 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
112
112
  update.headerTopValue += 8;
113
113
  }
114
114
 
115
- if (disableBreadcrumbScroll || !navigation) {
115
+ if (!enableBreadcrumbScroll || !navigation) {
116
116
  // adjust sticky top if no navigation or breadcrumb is to stay on screen
117
117
  update.headerTopValue += update.breadcrumbRowHeight;
118
- } else {
119
- if (navigation && !widthIsNarrow) {
120
- update.headerTopValue -= 8;
121
- }
122
118
  }
123
119
 
124
120
  if (window) {
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _excluded = ["align", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
5
+ var _excluded = ["align", "allTagsModalTarget", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
6
6
  _excluded2 = ["label", "id"],
7
7
  _excluded3 = ["label"];
8
8
 
@@ -17,6 +17,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
17
17
  // LICENSE file in the root directory of this source tree.
18
18
  //
19
19
  import React, { useState, useEffect, useRef, useCallback } from 'react';
20
+ import { createPortal } from 'react-dom';
20
21
  import PropTypes from 'prop-types';
21
22
  import cx from 'classnames';
22
23
  import { TagSetOverflow } from './TagSetOverflow';
@@ -32,12 +33,15 @@ var allTagsModalSearchThreshold = 10; // Default values for props
32
33
 
33
34
  var defaults = {
34
35
  align: 'start',
36
+ allTagsModalTarget: document.body,
35
37
  overflowAlign: 'center',
36
38
  overflowDirection: 'bottom'
37
39
  };
38
40
  export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
39
41
  var _ref$align = _ref.align,
40
42
  align = _ref$align === void 0 ? defaults.align : _ref$align,
43
+ _ref$allTagsModalTarg = _ref.allTagsModalTarget,
44
+ allTagsModalTarget = _ref$allTagsModalTarg === void 0 ? defaults.allTagsModalTarget : _ref$allTagsModalTarg,
41
45
  className = _ref.className,
42
46
  maxVisible = _ref.maxVisible,
43
47
  _ref$overflowAlign = _ref.overflowAlign,
@@ -224,14 +228,14 @@ export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
224
228
  }, hiddenSizingTags), /*#__PURE__*/React.createElement("div", {
225
229
  className: "".concat(blockClass, "__tag-container"),
226
230
  ref: displayedArea
227
- }, displayedTags)), tags && displayCount < tags.length ? /*#__PURE__*/React.createElement(TagSetModal, {
231
+ }, displayedTags)), allTagsModalTarget && tags && displayCount < tags.length ? /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(TagSetModal, {
228
232
  allTags: tags,
229
233
  open: showAllModalOpen,
230
234
  title: allTagsModalTitle,
231
235
  onClose: handleModalClose,
232
236
  searchLabel: allTagsModalSearchLabel,
233
237
  searchPlaceholder: allTagsModalSearchPlaceholderText
234
- }) : null);
238
+ }), allTagsModalTarget) : null);
235
239
  }); // Return a placeholder if not released and not enabled by feature flag
236
240
 
237
241
  TagSet = pkg.checkComponentEnabled(TagSet, componentName);
@@ -276,6 +280,11 @@ TagSet.propTypes = {
276
280
  */
277
281
  allTagsModalSearchPlaceholderText: string_required_if_more_than_10_tags,
278
282
 
283
+ /**
284
+ * portal target for the all tags modal
285
+ */
286
+ allTagsModalTarget: PropTypes.node,
287
+
279
288
  /**
280
289
  * title for the show all modal. **Note: Required if more than 10 tags**
281
290
  */
@@ -78,7 +78,8 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
78
78
  };
79
79
 
80
80
  return FillItem && (tooltipText ? /*#__PURE__*/React.createElement(TooltipIcon, {
81
- tooltipText: tooltipText
81
+ tooltipText: tooltipText,
82
+ className: "".concat(blockClass, "__tooltip")
82
83
  }, renderUserProfileImage()) : renderUserProfileImage());
83
84
  }); // Return a placeholder if not released and not enabled by feature flag
84
85
 
@@ -39,7 +39,7 @@ var _AddSelectList = require("./AddSelectList");
39
39
 
40
40
  var _AddSelectColumn = require("./AddSelectColumn");
41
41
 
42
- var _excluded = ["className", "description", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSearchFilter", "onSubmit", "onSubmitButtonText", "open", "removeIconDescription", "textInputLabel", "title"],
42
+ var _excluded = ["className", "columnInputPlaceholder", "description", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSearchFilter", "onSubmit", "onSubmitButtonText", "open", "removeIconDescription", "textInputLabel", "title"],
43
43
  _excluded2 = ["children"];
44
44
 
45
45
  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); }
@@ -59,6 +59,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
59
59
  var _cx;
60
60
 
61
61
  var className = _ref.className,
62
+ columnInputPlaceholder = _ref.columnInputPlaceholder,
62
63
  description = _ref.description,
63
64
  influencerTitle = _ref.influencerTitle,
64
65
  inputPlaceholder = _ref.inputPlaceholder,
@@ -228,23 +229,26 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
228
229
  value: searchTerm,
229
230
  onChange: handleSearch
230
231
  }), /*#__PURE__*/_react.default.createElement("div", {
231
- className: "".concat(blockClass, "__items-label-container")
232
+ className: "".concat(blockClass, "__tag-container")
232
233
  }, path.length ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
233
234
  itemsLabel: itemsLabel,
234
235
  path: path,
235
236
  setPath: setPath
236
237
  }) : /*#__PURE__*/_react.default.createElement("p", {
237
- className: "".concat(blockClass, "__items-label")
238
+ className: "".concat(blockClass, "__tag-container-label")
238
239
  }, itemsLabel), !useNormalizedItems && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
239
240
  type: "gray",
240
- size: "sm",
241
- className: "".concat(blockClass, "__items-label-tag")
241
+ size: "sm"
242
242
  }, itemsToDisplay.length))), useNormalizedItems ? /*#__PURE__*/_react.default.createElement("div", {
243
243
  className: "".concat(blockClass, "__columns")
244
244
  }, itemsToDisplay.map(function (page, idx) {
245
+ var _path;
246
+
245
247
  return /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
246
248
  key: idx,
247
- filteredItems: page
249
+ filteredItems: page,
250
+ header: idx === 0 ? itemsLabel : (_path = path[idx - 1]) === null || _path === void 0 ? void 0 : _path.title,
251
+ columnInputPlaceholder: columnInputPlaceholder
248
252
  }));
249
253
  })) : /*#__PURE__*/_react.default.createElement("div", null, itemsToDisplay.length > 0 ? /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, commonListProps, {
250
254
  filteredItems: itemsToDisplay
@@ -292,6 +296,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
292
296
  exports.AddSelect = AddSelect;
293
297
  AddSelect.propTypes = {
294
298
  className: _propTypes.default.string,
299
+ columnInputPlaceholder: _propTypes.default.string,
295
300
  description: _propTypes.default.string,
296
301
  influencerTitle: _propTypes.default.string,
297
302
  inputPlaceholder: _propTypes.default.string,
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,29 +11,69 @@ exports.AddSelectColumn = void 0;
9
11
 
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _carbonComponentsReact = require("carbon-components-react");
13
23
 
14
24
  var _settings = require("../../settings");
15
25
 
16
26
  var _AddSelectList = require("./AddSelectList");
17
27
 
18
- //
19
- // Copyright IBM Corp. 2022
20
- //
21
- // This source code is licensed under the Apache-2.0 license found in the
22
- // LICENSE file in the root directory of this source tree.
23
- //
24
- // import PropTypes from 'prop-types';
28
+ var _excluded = ["columnInputPlaceholder", "filteredItems", "header"];
29
+
30
+ 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); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
25
34
  var componentName = 'AddSelect';
26
35
 
27
- var AddSelectColumn = function AddSelectColumn(props) {
28
- var blockClass = "".concat(_settings.pkg.prefix, "--add-select__col");
36
+ var AddSelectColumn = function AddSelectColumn(_ref) {
37
+ var columnInputPlaceholder = _ref.columnInputPlaceholder,
38
+ filteredItems = _ref.filteredItems,
39
+ header = _ref.header,
40
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
+
42
+ var _useState = (0, _react.useState)(''),
43
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
44
+ searchTerm = _useState2[0],
45
+ setSearchTerm = _useState2[1];
46
+
47
+ var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
48
+ var colItems = filteredItems.filter(function (item) {
49
+ return item.title.toLowerCase().includes(searchTerm);
50
+ });
29
51
  return /*#__PURE__*/_react.default.createElement("div", {
30
- className: blockClass
31
- }, /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, props, {
32
- inColumn: true
52
+ className: "".concat(blockClass, "__column")
53
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
54
+ value: searchTerm,
55
+ onChange: function onChange(e) {
56
+ return setSearchTerm(e.target.value);
57
+ },
58
+ light: true,
59
+ placeholder: columnInputPlaceholder
60
+ }), /*#__PURE__*/_react.default.createElement("div", {
61
+ className: "".concat(blockClass, "__tag-container")
62
+ }, /*#__PURE__*/_react.default.createElement("p", {
63
+ className: "".concat(blockClass, "__tag-container-label")
64
+ }, header), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
65
+ type: "gray",
66
+ size: "sm"
67
+ }, colItems.length)), /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, props, {
68
+ inColumn: true,
69
+ filteredItems: colItems
33
70
  })));
34
71
  };
35
72
 
36
73
  exports.AddSelectColumn = AddSelectColumn;
74
+ AddSelectColumn.propTypes = {
75
+ columnInputPlaceholder: _propTypes.default.string,
76
+ filteredItems: _propTypes.default.array,
77
+ header: _propTypes.default.string
78
+ };
37
79
  AddSelectColumn.displayName = componentName;
@@ -62,7 +62,7 @@ var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
62
62
  className: "".concat(_settings.carbon.prefix, "--btn__icon")
63
63
  }));
64
64
  },
65
- ref: ref
65
+ innerRef: ref
66
66
  }), children);
67
67
  }); // Return a placeholder if not released and not enabled by feature flag
68
68