@carbon/ibm-products 1.9.0 → 1.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. package/css/index-full-carbon.css +364 -5838
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +5 -5
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +68 -3430
  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 +185 -4098
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +5 -5
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +302 -4099
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +5 -5
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +98 -92
  18. package/es/components/AddSelect/AddSelectColumn.js +219 -8
  19. package/es/components/AddSelect/AddSelectList.js +5 -5
  20. package/es/components/AddSelect/AddSelectSidebar.js +3 -15
  21. package/es/components/AddSelect/add-select-utils.js +64 -0
  22. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
  23. package/es/components/ButtonMenu/ButtonMenu.js +12 -4
  24. package/es/components/DataSpreadsheet/DataSpreadsheet.js +480 -182
  25. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +124 -81
  26. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +74 -8
  27. package/es/components/DataSpreadsheet/hooks/useMoveActiveCell.js +27 -0
  28. package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +28 -0
  29. package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +41 -0
  30. package/es/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +34 -0
  31. package/es/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +21 -8
  32. package/es/components/DataSpreadsheet/{createCellSelectionArea.js → utils/createCellSelectionArea.js} +8 -4
  33. package/es/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
  34. package/es/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
  35. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +46 -0
  36. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +82 -0
  37. package/es/components/DataSpreadsheet/utils/removeCellSelections.js +30 -0
  38. package/es/components/InlineEdit/InlineEdit.js +58 -27
  39. package/es/components/OptionsTile/OptionsTile.js +31 -21
  40. package/es/components/OptionsTile/index.js +1 -1
  41. package/es/components/PageHeader/PageHeader.js +26 -15
  42. package/es/components/PageHeader/PageHeaderTitle.js +2 -1
  43. package/es/components/PageHeader/PageHeaderUtils.js +24 -29
  44. package/es/components/TagSet/TagSet.js +12 -3
  45. package/es/components/UserProfileImage/UserProfileImage.js +2 -1
  46. package/es/components/index.js +0 -1
  47. package/es/global/js/package-settings.js +1 -2
  48. package/lib/components/AddSelect/AddSelect.js +101 -92
  49. package/lib/components/AddSelect/AddSelectColumn.js +232 -13
  50. package/lib/components/AddSelect/AddSelectList.js +5 -5
  51. package/lib/components/AddSelect/AddSelectSidebar.js +9 -15
  52. package/lib/components/AddSelect/add-select-utils.js +78 -0
  53. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
  54. package/lib/components/ButtonMenu/ButtonMenu.js +12 -4
  55. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +490 -186
  56. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +127 -82
  57. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +82 -9
  58. package/lib/components/DataSpreadsheet/hooks/useMoveActiveCell.js +37 -0
  59. package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +39 -0
  60. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +52 -0
  61. package/lib/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +45 -0
  62. package/lib/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +21 -8
  63. package/lib/components/DataSpreadsheet/{createCellSelectionArea.js → utils/createCellSelectionArea.js} +8 -4
  64. package/lib/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
  65. package/lib/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
  66. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +59 -0
  67. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +92 -0
  68. package/lib/components/DataSpreadsheet/utils/removeCellSelections.js +41 -0
  69. package/lib/components/InlineEdit/InlineEdit.js +60 -28
  70. package/lib/components/OptionsTile/OptionsTile.js +30 -20
  71. package/lib/components/PageHeader/PageHeader.js +25 -15
  72. package/lib/components/PageHeader/PageHeaderTitle.js +2 -1
  73. package/lib/components/PageHeader/PageHeaderUtils.js +24 -29
  74. package/lib/components/TagSet/TagSet.js +13 -3
  75. package/lib/components/UserProfileImage/UserProfileImage.js +2 -1
  76. package/lib/components/index.js +0 -8
  77. package/lib/global/js/package-settings.js +1 -2
  78. package/package.json +17 -17
  79. package/scss/components/AddSelect/_add-select.scss +47 -14
  80. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +7 -3
  81. package/scss/components/CreateInfluencer/_create-influencer.scss +2 -0
  82. package/scss/components/CreateModal/_create-modal.scss +1 -0
  83. package/scss/components/CreateSidePanel/_create-side-panel.scss +1 -1
  84. package/scss/components/CreateSidePanel/_storybook-styles.scss +1 -1
  85. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
  86. package/scss/components/CreateTearsheetNarrow/_create-tearsheet-narrow.scss +1 -0
  87. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +25 -7
  88. package/scss/components/EditSidePanel/_edit-side-panel.scss +9 -0
  89. package/scss/components/EditSidePanel/_storybook-styles.scss +1 -1
  90. package/scss/components/InlineEdit/_inline-edit.scss +46 -39
  91. package/scss/components/InlineEdit/_storybook-styles.scss +1 -0
  92. package/scss/components/ModifiedTabs/_modified-tabs.scss +5 -0
  93. package/scss/components/NotificationsPanel/_notifications-panel.scss +10 -3
  94. package/scss/components/OptionsTile/_index.scss +1 -1
  95. package/scss/components/OptionsTile/_options-tile.scss +17 -17
  96. package/scss/components/OptionsTile/_storybook-styles.scss +4 -4
  97. package/scss/components/PageHeader/_page-header.scss +5 -2
  98. package/scss/components/SidePanel/_side-panel.scss +19 -12
  99. package/scss/components/StatusIcon/_status-icon.scss +1 -0
  100. package/scss/components/Tearsheet/_tearsheet.scss +4 -0
  101. package/scss/components/UserProfileImage/_user-profile-image.scss +9 -0
  102. package/scss/components/WebTerminal/_web-terminal.scss +2 -0
  103. package/scss/components/_index.scss +0 -1
  104. package/es/components/LoadingBar/LoadingBar.js +0 -156
  105. package/es/components/LoadingBar/index.js +0 -7
  106. package/lib/components/LoadingBar/LoadingBar.js +0 -170
  107. package/lib/components/LoadingBar/index.js +0 -13
  108. package/scss/components/LoadingBar/_index.scss +0 -8
  109. package/scss/components/LoadingBar/_loading-bar.scss +0 -211
  110. package/scss/components/LoadingBar/_storybook-styles.scss +0 -14
@@ -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, _enableBreadcrumbScro, _ref6, _cx2, _ref7, _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
+ 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,
@@ -73,8 +75,10 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
73
75
  rest = _objectWithoutProperties(_ref, _excluded);
74
76
 
75
77
  // handle deprecated props - START
76
- // if withoutBackground is null check deprecated_hasBackgroundAlways and default false
77
- (_withoutBackground = withoutBackground) !== null && _withoutBackground !== void 0 ? _withoutBackground : withoutBackground = !(deprecated_hasBackgroundAlways !== null && deprecated_hasBackgroundAlways !== void 0 ? deprecated_hasBackgroundAlways : true); // handle deprecated props - END
78
+ // if withoutBackground is nullish check deprecated_hasBackgroundAlways and default false
79
+ (_withoutBackground = withoutBackground) !== null && _withoutBackground !== void 0 ? _withoutBackground : withoutBackground = !(deprecated_hasBackgroundAlways !== null && deprecated_hasBackgroundAlways !== void 0 ? deprecated_hasBackgroundAlways : true); // prefer enabled if nullish check deprecated_disableBreadcrumbScroll and default false
80
+
81
+ (_enableBreadcrumbScro = enableBreadcrumbScroll) !== null && _enableBreadcrumbScro !== void 0 ? _enableBreadcrumbScro : enableBreadcrumbScroll = !(deprecated_disableBreadcrumbScroll !== null && deprecated_disableBreadcrumbScroll !== void 0 ? deprecated_disableBreadcrumbScroll : true); // handle deprecated props - END
78
82
 
79
83
  var _useState = useState({}),
80
84
  _useState2 = _slicedToArray(_useState, 2),
@@ -96,7 +100,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
96
100
  var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems; // utility functions
97
101
 
98
102
  var checkUpdateVerticalSpace = function checkUpdateVerticalSpace() {
99
- return utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
103
+ return utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
100
104
  }; // NOTE: The buffer is used to add space between the bottom of the header and the last content
101
105
  // Not pre-collapsed and (subtitle or children)
102
106
 
@@ -215,6 +219,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
215
219
 
216
220
 
217
221
  useEffect(function () {
222
+ /* istanbul ignore else */
218
223
  if (pageActions !== null && pageActions !== void 0 && pageActions.content) {
219
224
  var minWidth = pageActions.minWidth,
220
225
  maxWidth = pageActions.maxWidth;
@@ -272,8 +277,9 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
272
277
  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
278
  )))), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-row-width-px"), "".concat(metrics.breadcrumbRowWidth, "px")), _objectSpread3));
274
279
  });
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]);
280
+ }, [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
281
  useNearestScroll(headerRef, // on scroll or various layout changes check updates if needed
282
+ // istanbul ignore next
277
283
  function (_ref4) {
278
284
  var current = _ref4.current;
279
285
  setPageHeaderStyles(function (prev) {
@@ -290,13 +296,13 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
290
296
  document.documentElement.style.setProperty("--".concat(blockClass, "--tagset-tooltip-position"), fullyCollapsed ? 'fixed' : 'absolute');
291
297
  document.documentElement.style.setProperty("--".concat(blockClass, "--tagset-tooltip-offset"), "".concat(tagsetTooltipOffset, "px"));
292
298
  setScrollYValue(current.scrollY);
293
- }, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, disableBreadcrumbScroll]);
299
+ }, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, enableBreadcrumbScroll]);
294
300
  useWindowResize(function (_ref5) {
295
301
  var current = _ref5.current;
296
302
  // on window resize and other updates some values may have changed
297
303
  checkUpdateVerticalSpace();
298
- setWidthIsNarrow(current.innerWidth < 672); // small (below medium) media query
299
- }, [actionBarItems, children, breadcrumbs, disableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
304
+ setWidthIsNarrow(current.innerWidth < breakpoints.md.width); // small (below medium) media query
305
+ }, [actionBarItems, children, breadcrumbs, enableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
300
306
  useEffect(function () {
301
307
  checkUpdateVerticalSpace(); // eslint-disable-next-line react-hooks/exhaustive-deps
302
308
  }, [fullWidthGrid, narrowGrid]);
@@ -334,7 +340,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
334
340
 
335
341
  var nextToTabsCheck = function nextToTabsCheck() {
336
342
  /* istanbul ignore next */
337
- return disableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
343
+ return enableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
338
344
  };
339
345
 
340
346
  useEffect(function () {
@@ -425,7 +431,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
425
431
  showAllTagsLabel: showAllTagsLabel,
426
432
  tags: tags,
427
433
  overflowClassName: "".concat(blockClass, "__navigation-tags-overflow")
428
- }))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on disableBreadcrumbScroll
434
+ }))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on enableBreadcrumbScroll
429
435
  navigation ? /*#__PURE__*/React.createElement(Row, {
430
436
  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
437
  }, /*#__PURE__*/React.createElement(Column, {
@@ -497,6 +503,11 @@ var TYPES = {
497
503
  };
498
504
  var tagTypes = Object.keys(TYPES);
499
505
  export var deprecatedProps = {
506
+ /**
507
+ * **Deprecated** see property `enableBreadcrumbScroll`
508
+ */
509
+ disableBreadcrumbScroll: deprecateProp(PropTypes.bool, 'Property replaced by `enableBreadcrumbScroll`'),
510
+
500
511
  /**
501
512
  * **Deprecated** see property `withoutBackground`
502
513
  */
@@ -645,10 +656,10 @@ PageHeader.propTypes = _objectSpread({
645
656
  collapseTitle: PropTypes.bool,
646
657
 
647
658
  /**
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.
659
+ * Standard keeps the breadcrumb on the page. This option allows the breadcrumb
660
+ * to scroll off
650
661
  */
651
- disableBreadcrumbScroll: PropTypes.bool,
662
+ enableBreadcrumbScroll: PropTypes.bool,
652
663
 
653
664
  /**
654
665
  * If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
@@ -55,7 +55,8 @@ export var PageHeaderTitle = function PageHeaderTitle(_ref) {
55
55
  onSave: onSave,
56
56
  labelText: editableLabel,
57
57
  revertDescription: revertDescription,
58
- saveDescription: saveDescription
58
+ saveDescription: saveDescription,
59
+ buttonTooltipPosition: "bottom"
59
60
  }, rest)) : /*#__PURE__*/React.createElement("span", {
60
61
  title: !loading ? asText : null
61
62
  }, text));
@@ -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) {
@@ -75,7 +75,10 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
75
75
  var scrollableContainer = scrollableAncestor(headerRef.current);
76
76
  /* istanbul ignore next */
77
77
 
78
- update.headerOffset = offsetTopMeasuringRef.current.getBoundingClientRect().top - (scrollableContainer === null || scrollableContainer === void 0 ? void 0 : scrollableContainer.getBoundingClientRect().top) || 0;
78
+ var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.offsetTop : 0; // The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
79
+ // top and the measuring ref top, or the difference between. It does not change on scroll or resize.
80
+
81
+ update.headerOffset = scrollableContainerTop + offsetTopMeasuringRef.current.getBoundingClientRect().top;
79
82
  /* istanbul ignore next */
80
83
 
81
84
  update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
@@ -112,42 +115,34 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
112
115
  update.headerTopValue += 8;
113
116
  }
114
117
 
115
- if (disableBreadcrumbScroll || !navigation) {
118
+ if (!enableBreadcrumbScroll || !navigation) {
116
119
  // adjust sticky top if no navigation or breadcrumb is to stay on screen
117
120
  update.headerTopValue += update.breadcrumbRowHeight;
118
- } else {
119
- if (navigation && !widthIsNarrow) {
120
- update.headerTopValue -= 8;
121
- }
122
- }
121
+ } // if (window) {
123
122
 
124
- if (window) {
125
- var val;
126
- /* don't know how to test resize */
127
123
 
128
- /* istanbul ignore if */
124
+ var val;
125
+ /* don't know how to test resize */
129
126
 
130
- if (breadcrumbRowEl) {
131
- val = parseFloat(window.getComputedStyle(breadcrumbRowEl).getPropertyValue('margin-bottom'), 10);
132
- update.breadcrumbRowSpaceBelow = isNaN(val) ? 0 : val;
133
- }
134
- /* don't know how to test resize */
127
+ /* istanbul ignore if */
128
+
129
+ if (breadcrumbRowEl) {
130
+ val = parseFloat(window.getComputedStyle(breadcrumbRowEl).getPropertyValue('margin-bottom'), 10);
131
+ update.breadcrumbRowSpaceBelow = isNaN(val) ? 0 : val;
132
+ }
133
+ /* don't know how to test resize */
135
134
 
136
- /* istanbul ignore if */
135
+ /* istanbul ignore if */
137
136
 
138
137
 
139
- if (titleRowEl) {
140
- val = parseFloat(window.getComputedStyle(titleRowEl).getPropertyValue('margin-top'), 10);
141
- update.titleRowSpaceAbove = isNaN(val) ? 0 : val;
138
+ if (titleRowEl) {
139
+ val = parseFloat(window.getComputedStyle(titleRowEl).getPropertyValue('margin-top'), 10);
140
+ update.titleRowSpaceAbove = isNaN(val) ? 0 : val;
142
141
 
143
- if (pageActionsEl) {
144
- val = parseFloat(window.getComputedStyle(pageActionsEl).getPropertyValue('margin-top'), 10);
145
- update.pageActionsSpaceAbove = titleRowEl.clientHeight - pageActionsEl.clientHeight + update.titleRowSpaceAbove - (isNaN(val) ? 0 : val);
146
- }
142
+ if (pageActionsEl) {
143
+ val = parseFloat(window.getComputedStyle(pageActionsEl).getPropertyValue('margin-top'), 10);
144
+ update.pageActionsSpaceAbove = titleRowEl.clientHeight - pageActionsEl.clientHeight + update.titleRowSpaceAbove - (isNaN(val) ? 0 : val);
147
145
  }
148
- } else {
149
- update.breadcrumbRowSpaceBelow = 0;
150
- update.titleRowSpaceAbove = 0;
151
146
  }
152
147
 
153
148
  return _objectSpread(_objectSpread({}, previous), update);
@@ -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
 
@@ -18,7 +18,6 @@ export { ExportModal } from './ExportModal';
18
18
  export { ExpressiveCard } from './ExpressiveCard';
19
19
  export { HTTPError403, HTTPError404, HTTPErrorOther } from './HTTPErrors';
20
20
  export { ImportModal } from './ImportModal';
21
- export { LoadingBar } from './LoadingBar';
22
21
  export { ModifiedTabs } from './ModifiedTabs';
23
22
  export { MultiAddSelect } from './MultiAddSelect';
24
23
  export { NotificationsPanel } from './NotificationsPanel';
@@ -40,6 +40,7 @@ var defaults = {
40
40
  NoTagsEmptyState: true,
41
41
  NotFoundEmptyState: true,
42
42
  NotificationsEmptyState: true,
43
+ OptionsTile: true,
43
44
  PageHeader: true,
44
45
  ProductiveCard: true,
45
46
  RemoveModal: true,
@@ -54,14 +55,12 @@ var defaults = {
54
55
  // other public components not yet reviewed and released:
55
56
  MultiAddSelect: false,
56
57
  SingleAddSelect: false,
57
- LoadingBar: false,
58
58
  ModifiedTabs: false,
59
59
  Toolbar: false,
60
60
  ToolbarButton: false,
61
61
  ToolbarGroup: false,
62
62
  WebTerminal: false,
63
63
  EditSidePanel: false,
64
- OptionsTile: false,
65
64
  CancelableTextEdit: false,
66
65
  InlineEdit: false,
67
66
  DataSpreadsheet: false