@carbon/ibm-products 2.21.0 → 2.22.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/README.md +8 -5
  2. package/css/index-full-carbon.css +531 -251
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +1 -1
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +199 -177
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +1 -1
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +243 -189
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +1 -1
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +223 -192
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +1 -1
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/Datagrid/Datagrid/DatagridContent.js +8 -3
  19. package/es/components/Datagrid/Datagrid/DatagridRow.js +6 -1
  20. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -3
  21. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +2 -2
  22. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +30 -72
  23. package/es/components/Datagrid/useRowIsMouseOver.js +3 -1
  24. package/es/components/DelimitedList/DelimitedList.docs-page.js +15 -0
  25. package/es/components/DelimitedList/DelimitedList.js +73 -0
  26. package/es/components/DelimitedList/index.js +8 -0
  27. package/es/components/SidePanel/SidePanel.js +145 -189
  28. package/es/components/TagSet/TagSet.js +21 -5
  29. package/es/components/TagSet/TagSetOverflow.js +13 -8
  30. package/es/components/index.js +2 -1
  31. package/es/global/js/hooks/useResizeObserver.js +5 -2
  32. package/es/global/js/package-settings.js +1 -0
  33. package/lib/components/Datagrid/Datagrid/DatagridContent.js +8 -3
  34. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -1
  35. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -3
  36. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +2 -2
  37. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +30 -72
  38. package/lib/components/Datagrid/useRowIsMouseOver.js +3 -1
  39. package/lib/components/DelimitedList/DelimitedList.docs-page.js +25 -0
  40. package/lib/components/DelimitedList/DelimitedList.js +78 -0
  41. package/lib/components/DelimitedList/index.js +12 -0
  42. package/lib/components/SidePanel/SidePanel.js +145 -189
  43. package/lib/components/TagSet/TagSet.js +21 -5
  44. package/lib/components/TagSet/TagSetOverflow.js +12 -7
  45. package/lib/components/index.js +8 -1
  46. package/lib/global/js/hooks/useResizeObserver.js +5 -2
  47. package/lib/global/js/package-settings.js +1 -0
  48. package/package.json +9 -8
  49. package/scss/components/Datagrid/_datagrid.scss +4 -0
  50. package/scss/components/Datagrid/styles/_datagrid.scss +9 -1
  51. package/scss/components/Datagrid/styles/_useStickyColumn.scss +2 -0
  52. package/scss/components/DelimitedList/_carbon-imports.scss +9 -0
  53. package/scss/components/DelimitedList/_delimited-list.scss +27 -0
  54. package/scss/components/DelimitedList/_index-with-carbon.scss +9 -0
  55. package/scss/components/DelimitedList/_index.scss +8 -0
  56. package/scss/components/SidePanel/_side-panel-variables.scss +5 -1
  57. package/scss/components/SidePanel/_side-panel.scss +155 -187
  58. package/scss/components/_index-with-carbon.scss +1 -0
  59. package/scss/components/_index.scss +1 -0
  60. package/telemetry.yml +790 -0
@@ -99,47 +99,56 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
99
99
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
100
100
  animationComplete = _useState2[0],
101
101
  setAnimationComplete = _useState2[1];
102
- var _useState3 = (0, _react.useState)(0),
103
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
104
- panelHeight = _useState4[0],
105
- setPanelHeight = _useState4[1];
106
- var sidePanelRef = (0, _react.useRef)();
107
- var sidePanelOverlayRef = (0, _react.useRef)();
102
+ var localRef = (0, _react.useRef)();
103
+ var sidePanelRef = ref || localRef;
104
+ var overlayRef = (0, _react.useRef)();
108
105
  var startTrapRef = (0, _react.useRef)();
109
106
  var endTrapRef = (0, _react.useRef)();
110
- var sidePanelInnerRef = (0, _react.useRef)();
111
- var sidePanelCloseRef = (0, _react.useRef)();
107
+ var innerContentRef = (0, _react.useRef)();
108
+ var closeRef = (0, _react.useRef)();
109
+ var animatedScrollRef = (0, _react.useRef)();
110
+ var headerRef = (0, _react.useRef)();
111
+ var titleRef = (0, _react.useRef)();
112
+ var collapsedTitleRef = (0, _react.useRef)();
113
+ var labelTextRef = (0, _react.useRef)();
114
+ var subtitleRef = (0, _react.useRef)();
112
115
  var previousState = (0, _hooks.usePreviousValue)({
113
116
  size: size,
114
117
  open: open
115
118
  });
119
+ var _useState3 = (0, _react.useState)(-1),
120
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
121
+ scrollAnimationDistance = _useState4[0],
122
+ setScrollAnimationDistance = _useState4[1];
123
+ var _useState5 = (0, _react.useState)(true),
124
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
125
+ doAnimateTitle = _useState6[0],
126
+ setDoAnimateTitle = _useState6[1];
127
+ (0, _react.useEffect)(function () {
128
+ setDoAnimateTitle(animateTitle);
129
+ }, [animateTitle]);
130
+ var handleScroll = (0, _react.useCallback)(function () {
131
+ var scrollTop = animatedScrollRef.current.scrollTop;
132
+ sidePanelRef.current.style.setProperty("--".concat(blockClass, "--scroll-animation-progress"), Math.min(scrollTop, scrollAnimationDistance) / scrollAnimationDistance);
133
+ }, [scrollAnimationDistance, sidePanelRef]);
116
134
  var reducedMotion = typeof window !== 'undefined' && (_window = window) !== null && _window !== void 0 && _window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)') : {
117
135
  matches: true
118
136
  };
119
- var getActionsContainerElement = (0, _react.useCallback)(function () {
120
- var sidePanelOuter = document.querySelector("#".concat(id));
121
- return sidePanelOuter && sidePanelOuter.querySelector(".".concat(blockClass, "__actions-container"));
122
- }, [id]);
123
137
 
124
138
  // scroll panel to top going between steps
125
139
  (0, _react.useEffect)(function () {
126
- var panelRef = ref || sidePanelRef;
127
- if (panelRef && panelRef.current) {
128
- var _document$querySelect;
129
- var scrollableSection = panelRef.current.querySelector(".".concat(blockClass, "__inner-content"));
130
- var sidePanelOuter = document.querySelector("#".concat(id));
131
- var initialTitleHeight = (_document$querySelect = document.querySelector(".".concat(blockClass, "__title-container"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.offsetHeight;
140
+ if (sidePanelRef && sidePanelRef.current) {
141
+ var _animatedScrollRef$cu;
142
+ var scrollableSection = (_animatedScrollRef$cu = animatedScrollRef.current) !== null && _animatedScrollRef$cu !== void 0 ? _animatedScrollRef$cu : innerContentRef.current;
132
143
  scrollableSection.scrollTop = 0;
133
144
  // The size of the panel has changed while it is still opened
134
- // so we need to scroll it to the top and reset the title container
145
+ // so we need to scroll it to the top and reset the header
135
146
  // height css custom property
136
147
  if ((previousState === null || previousState === void 0 ? void 0 : previousState.size) !== size) {
137
- var _sidePanelOuter$style;
138
148
  scrollableSection.scrollTop = 0;
139
- sidePanelOuter === null || sidePanelOuter === void 0 || (_sidePanelOuter$style = sidePanelOuter.style) === null || _sidePanelOuter$style === void 0 || _sidePanelOuter$style.setProperty("--".concat(blockClass, "--title-container-height"), "".concat(Number(initialTitleHeight), "px"));
140
149
  }
141
150
  }
142
- }, [currentStep, ref, size, previousState === null || previousState === void 0 ? void 0 : previousState.size, id]);
151
+ }, [currentStep, sidePanelRef, size, previousState === null || previousState === void 0 ? void 0 : previousState.size, id]);
143
152
 
144
153
  // set initial focus when side panel opens
145
154
  (0, _react.useEffect)(function () {
@@ -149,7 +158,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
149
158
  if (primaryFocusElement) {
150
159
  return primaryFocusElement;
151
160
  } else {
152
- return sidePanelCloseRef && sidePanelCloseRef.current;
161
+ return closeRef && closeRef.current;
153
162
  }
154
163
  };
155
164
  var focusButton = function focusButton(focusContainerElement) {
@@ -157,19 +166,9 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
157
166
  target === null || target === void 0 || target.focus();
158
167
  };
159
168
  if (open && animationComplete) {
160
- focusButton(sidePanelInnerRef.current);
169
+ focusButton(innerContentRef.current);
161
170
  }
162
171
  }, [selectorPrimaryFocus, open, animationComplete]);
163
- (0, _react.useEffect)(function () {
164
- if (open && actions && actions.length && animationComplete) {
165
- var _sidePanelOuter$style2;
166
- var sidePanelOuter = document.querySelector("#".concat(id));
167
- var actionsContainer = getActionsContainerElement();
168
- var actionsHeight = (actionsContainer === null || actionsContainer === void 0 ? void 0 : actionsContainer.offsetHeight) + 16; // add additional 1rem spacing to bottom padding
169
- actionsHeight = "".concat(Math.round(actionsHeight / 16), "rem");
170
- sidePanelOuter === null || sidePanelOuter === void 0 || (_sidePanelOuter$style2 = sidePanelOuter.style) === null || _sidePanelOuter$style2 === void 0 || _sidePanelOuter$style2.setProperty("--".concat(blockClass, "--content-bottom-padding"), actionsHeight);
171
- }
172
- }, [actions, condensedActions, open, animationComplete, id, getActionsContainerElement]);
173
172
 
174
173
  // Add console warning if labelText is provided without a title.
175
174
  // This combination is not allowed.
@@ -178,120 +177,67 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
178
177
  console.warn("".concat(componentName, ": The prop `labelText` was provided without a `title`. It is required to have a `title` when using the `labelText` prop."));
179
178
  }
180
179
  }, [labelText, title]);
180
+ var checkSetDoAnimateTitle = function checkSetDoAnimateTitle() {
181
+ if (sidePanelRef !== null && sidePanelRef !== void 0 && sidePanelRef.current && open && animateTitle && animationComplete && titleRef !== null && titleRef !== void 0 && titleRef.current && title && title.length && !reducedMotion.matches) {
182
+ var _labelTextRef$current, _labelTextRef$current2, _subtitleRef$current$, _subtitleRef$current;
183
+ var titleEl = titleRef.current;
184
+ var labelHeight = (_labelTextRef$current = labelTextRef === null || labelTextRef === void 0 || (_labelTextRef$current2 = labelTextRef.current) === null || _labelTextRef$current2 === void 0 ? void 0 : _labelTextRef$current2.offsetHeight) !== null && _labelTextRef$current !== void 0 ? _labelTextRef$current : 0;
185
+ var subtitleHeight = (_subtitleRef$current$ = subtitleRef === null || subtitleRef === void 0 || (_subtitleRef$current = subtitleRef.current) === null || _subtitleRef$current === void 0 ? void 0 : _subtitleRef$current.offsetHeight) !== null && _subtitleRef$current$ !== void 0 ? _subtitleRef$current$ : 0;
181
186
 
182
- /* istanbul ignore next */
183
- var handleResize = function handleResize(_ref2) {
184
- var _sidePanelOuter$style3;
185
- var height = _ref2.height;
186
- setPanelHeight(height);
187
- var sidePanelOuter = document.querySelector("#".concat(id));
188
- var actionsContainer = getActionsContainerElement();
189
- var actionsHeight = (actionsContainer === null || actionsContainer === void 0 ? void 0 : actionsContainer.offsetHeight) + 16; // add additional 1rem spacing to bottom padding
190
- actionsHeight = "".concat(Math.round(actionsHeight / 16), "rem");
191
- sidePanelOuter === null || sidePanelOuter === void 0 || (_sidePanelOuter$style3 = sidePanelOuter.style) === null || _sidePanelOuter$style3 === void 0 || _sidePanelOuter$style3.setProperty("--".concat(blockClass, "--content-bottom-padding"), actionsHeight);
192
- };
187
+ // Adjusts space at bottom of titles by changing where scrolling finishes
188
+ // Styles use border to save use of get computed style
189
+ var titleVerticalBorder = actionToolbarButtons ? titleEl.offsetHeight - titleEl.clientHeight : 0;
190
+ var _scrollAnimationDistance = labelHeight + subtitleHeight + titleVerticalBorder;
191
+ setScrollAnimationDistance(_scrollAnimationDistance);
193
192
 
194
- // Title and subtitle scroll animation
193
+ // used to calculate the header moves
194
+ sidePanelRef.current.style.setProperty("--".concat(blockClass, "--scroll-animation-distance"), _scrollAnimationDistance);
195
+ var scrollEl = animatedScrollRef.current;
196
+ if (!scrollEl && animateTitle && !doAnimateTitle) {
197
+ // may be switching back based on resize
198
+ scrollEl = innerContentRef.current;
199
+ }
200
+ if (scrollEl) {
201
+ var _window2;
202
+ var innerComputed = (_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.getComputedStyle(innerContentRef.current);
203
+ var innerPaddingHeight = innerComputed ? parseFloat(innerComputed === null || innerComputed === void 0 ? void 0 : innerComputed.paddingTop, 10) + parseFloat(innerComputed === null || innerComputed === void 0 ? void 0 : innerComputed.paddingBottom, 10) : 0;
204
+ var canDoAnimateTitle = (!!labelText || !!actionToolbarButtons || !!subtitle) && scrollEl.scrollHeight - scrollEl.clientHeight >= _scrollAnimationDistance + innerPaddingHeight;
205
+ if (doAnimateTitle !== canDoAnimateTitle) {
206
+ // will need updating on resize
207
+ setDoAnimateTitle(canDoAnimateTitle);
208
+ }
209
+ }
210
+ }
211
+ };
195
212
  (0, _react.useEffect)(function () {
196
- if (open && animateTitle && animationComplete && title && title.length && !reducedMotion.matches) {
197
- var _document$querySelect2, _document$querySelect3, _document$querySelect4;
198
- var sidePanelOuter = document.querySelector("#".concat(id));
199
- var sidePanelScrollArea = document.querySelector("#".concat(id, " .").concat(blockClass, "__inner-content"));
200
- var sidePanelTitleElement = document.querySelector(".".concat(blockClass, "__title-text"));
201
- var sidePanelCollapsedTitleElement = document.querySelector(".".concat(blockClass, "__collapsed-title-text"));
202
- var sidePanelSubtitleElement = document.querySelector(".".concat("".concat(blockClass, "__subtitle-text")));
203
- var sidePanelSubtitleElementHeight = (sidePanelSubtitleElement === null || sidePanelSubtitleElement === void 0 ? void 0 : sidePanelSubtitleElement.offsetHeight) || 0; // set default subtitle height if a subtitle is not provided to enable scrolling animation
204
-
205
- var panelOuterHeight = panelHeight;
206
- var scrollSectionHeight = (_document$querySelect2 = document.querySelector(".".concat(blockClass, "__body-content"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.offsetHeight;
207
- var titleContainerHeight = (_document$querySelect3 = document.querySelector(".".concat(blockClass, "__title-container"))) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.offsetHeight;
208
- var labelTextHeight = (_document$querySelect4 = document.querySelector(".".concat(blockClass, "__label-text"))) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.offsetHeight;
209
- var totalScrollingContentHeight = titleContainerHeight + sidePanelSubtitleElementHeight + scrollSectionHeight;
210
- // if the difference between the total scrolling height and the panel height is less than
211
- // the subtitleElement height OR if the subtitle element height is 0, use that difference
212
- // as the length of the scroll animation (otherwise the animation will not be able to complete
213
- // because there is not enough scrolling distance to complete it).
214
- sidePanelSubtitleElementHeight = totalScrollingContentHeight - panelOuterHeight < sidePanelSubtitleElementHeight ? totalScrollingContentHeight - panelOuterHeight : sidePanelSubtitleElementHeight === 0 ? 16 : sidePanelSubtitleElementHeight;
215
- sidePanelSubtitleElementHeight = sidePanelSubtitleElementHeight < 0 ? (sidePanelScrollArea === null || sidePanelScrollArea === void 0 ? void 0 : sidePanelScrollArea.scrollHeight) - (sidePanelScrollArea === null || sidePanelScrollArea === void 0 ? void 0 : sidePanelScrollArea.clientHeight) : sidePanelSubtitleElementHeight;
216
- /* istanbul ignore next */
217
- sidePanelScrollArea && sidePanelScrollArea.addEventListener('scroll', function () {
218
- var scrollTop = sidePanelScrollArea.scrollTop;
219
- // if scrolling has occurred
220
- if (scrollTop > 0) {
221
- sidePanelOuter.classList.add("".concat(blockClass, "__with-condensed-header"));
222
- // Set subtitle opacity calculation here
223
- // as scroll progresses
224
- var titleOpacity = Math.min(1, (sidePanelSubtitleElementHeight - scrollTop) / sidePanelSubtitleElementHeight);
225
- titleOpacity = titleOpacity < 0 ? 0 : titleOpacity;
226
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--subtitle-opacity"), titleOpacity);
227
-
228
- // Calculate divider opacity to avoid border
229
- // abruptly appearing when scrolling starts.
230
- // This approach uses a pseudo element and sets
231
- // the opacity as scroll progresses.
232
- var dividerOpacity = Math.min(scrollTop / sidePanelSubtitleElementHeight, 1);
233
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--divider-opacity"), "".concat(Math.min(1, dividerOpacity)));
234
-
235
- // We need to know the height of the title element
236
- // so that we know how far to place the action toolbar
237
- // from the top since it is sticky
238
- var titleTextHeight = Math.max(sidePanelTitleElement.offsetHeight);
239
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--title-height"), "".concat(titleTextHeight + 16, "px"));
240
-
241
- // Set title y positioning
242
- var titleYPosition = Math.min(scrollTop / sidePanelSubtitleElementHeight, 1);
243
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--title-y-position"), "".concat(-Math.abs(titleYPosition), "rem"));
244
-
245
- // mark title with aria-hidden={true} if opacity reaches 0
246
- if (titleOpacity === 0) {
247
- sidePanelTitleElement.setAttribute('aria-hidden', 'true');
248
- sidePanelCollapsedTitleElement.setAttribute('aria-hidden', 'false');
249
- }
213
+ if (doAnimateTitle && animatedScrollRef.current) {
214
+ // only add scroll if the doAnimateTitle is already true
215
+ // should come back through if false and canDoAnimateTitle is true
216
+ animatedScrollRef.current.addEventListener('scroll', handleScroll);
217
+ }
218
+ if (!doAnimateTitle && sidePanelRef.current) {
219
+ sidePanelRef.current.style.setProperty("--".concat(blockClass, "--scroll-animation-progress"), 0);
220
+ }
221
+ }, [animatedScrollRef, doAnimateTitle, handleScroll, sidePanelRef]);
250
222
 
251
- // Set collapsed title y positioning
252
- var collapsedTitleYPosition = Math.min(1, (sidePanelSubtitleElementHeight - scrollTop) / sidePanelSubtitleElementHeight);
253
- collapsedTitleYPosition = collapsedTitleYPosition < 0 ? 0 : collapsedTitleYPosition;
254
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--collapsed-title-y-position"), "".concat(collapsedTitleYPosition, "rem"));
223
+ /* istanbul ignore next */
224
+ var handleResize = function handleResize() {
225
+ checkSetDoAnimateTitle();
226
+ };
255
227
 
256
- // Set label text height
257
- var scrollAnimationProgress = dividerOpacity;
258
- var reduceTitleContainerHeightAmount = labelTextHeight * scrollAnimationProgress / titleContainerHeight * 100;
259
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--label-text-height"), "".concat(Math.trunc(reduceTitleContainerHeightAmount), "px"));
260
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--title-container-height"), "".concat(titleContainerHeight, "px"));
261
- } else {
262
- sidePanelTitleElement.setAttribute('aria-hidden', 'false');
263
- sidePanelCollapsedTitleElement.setAttribute('aria-hidden', 'true');
264
- sidePanelOuter.classList.remove("".concat(blockClass, "__with-condensed-header"));
265
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--subtitle-opacity"), 1);
266
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--title-y-position"), 0);
267
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--divider-opacity"), 0);
268
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--collapsed-title-y-position"), "1rem");
269
- sidePanelOuter.style.setProperty("--".concat(blockClass, "--label-text-height"), "0px");
270
- }
271
- });
272
- }
273
- if (open && !animateTitle) {
274
- var _sidePanelOuter = document.querySelector("#".concat(id));
275
- var _sidePanelTitleElement = document.querySelector(".".concat(blockClass, "__title-container .").concat(blockClass, "__title-text"));
276
- var _sidePanelSubtitleElement = document.querySelector(".".concat(blockClass, "__subtitle-text"));
277
- var actionToolbarElement = document.querySelector(".".concat(blockClass, "__action-toolbar"));
278
- var _labelText = document.querySelector(".".concat(blockClass, "__label-text"));
279
- var _sidePanelSubtitleElementHeight = (_sidePanelSubtitleElement === null || _sidePanelSubtitleElement === void 0 ? void 0 : _sidePanelSubtitleElement.offsetHeight) || 0;
280
- var sidePanelActionBarElementHeight = (actionToolbarElement === null || actionToolbarElement === void 0 ? void 0 : actionToolbarElement.offsetHeight) || 0;
281
- var titleHeight = (_sidePanelTitleElement === null || _sidePanelTitleElement === void 0 ? void 0 : _sidePanelTitleElement.offsetHeight) + 24;
282
- var labelHeight = (_labelText === null || _labelText === void 0 ? void 0 : _labelText.offsetHeight) || 0;
283
- _sidePanelOuter === null || _sidePanelOuter === void 0 || _sidePanelOuter.style.setProperty("--".concat(blockClass, "--title-text-height"), "".concat(titleHeight, "px"));
284
- _sidePanelOuter === null || _sidePanelOuter === void 0 || _sidePanelOuter.style.setProperty("--".concat(blockClass, "--subtitle-container-height"), "".concat(_sidePanelSubtitleElementHeight, "px"));
285
- _sidePanelOuter === null || _sidePanelOuter === void 0 || _sidePanelOuter.style.setProperty("--".concat(blockClass, "--action-bar-container-height"), "".concat(sidePanelActionBarElementHeight, "px"));
286
- _sidePanelOuter === null || _sidePanelOuter === void 0 || _sidePanelOuter.style.setProperty("--".concat(blockClass, "--label-text-height"), "".concat(labelHeight, "px"));
228
+ // Calculate scroll distances
229
+ (0, _react.useEffect)(function () {
230
+ if (sidePanelRef !== null && sidePanelRef !== void 0 && sidePanelRef.current && open && animateTitle && animationComplete && titleRef !== null && titleRef !== void 0 && titleRef.current && title && title.length && !reducedMotion.matches) {
231
+ checkSetDoAnimateTitle();
287
232
  }
288
- }, [open, animateTitle, animationComplete, panelHeight, title, size, reducedMotion.matches, id]);
233
+
234
+ // eslint-disable-next-line react-hooks/exhaustive-deps
235
+ }, [open, doAnimateTitle /* use do instead of animateTitle directly */, animationComplete, handleScroll, title, size, reducedMotion.matches, id, animatedScrollRef.current]);
289
236
 
290
237
  // click outside functionality if `includeOverlay` prop is set
291
238
  (0, _react.useEffect)(function () {
292
239
  var handleOutsideClick = function handleOutsideClick(event) {
293
- var panelRef = ref || sidePanelRef;
294
- if (panelRef.current && sidePanelOverlayRef.current && sidePanelOverlayRef.current.contains(event.target) && onRequestClose) {
240
+ if (sidePanelRef.current && overlayRef.current && overlayRef.current.contains(event.target) && onRequestClose) {
295
241
  onRequestClose();
296
242
  }
297
243
  };
@@ -309,7 +255,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
309
255
  bodyElement.style.overflow = '';
310
256
  document.removeEventListener('click', handleOutsideClick);
311
257
  };
312
- }, [includeOverlay, onRequestClose, open, preventCloseOnClickOutside, ref, onUnmount]);
258
+ }, [includeOverlay, onRequestClose, open, preventCloseOnClickOutside, onUnmount, sidePanelRef]);
313
259
 
314
260
  // initializes the side panel to close
315
261
  var onAnimationEnd = function onAnimationEnd() {
@@ -372,13 +318,13 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
372
318
 
373
319
  // adds focus trap functionality
374
320
  /* istanbul ignore next */
375
- var handleBlur = function handleBlur(_ref3) {
376
- var oldActiveNode = _ref3.target,
377
- currentActiveNode = _ref3.relatedTarget;
321
+ var handleBlur = function handleBlur(_ref2) {
322
+ var oldActiveNode = _ref2.target,
323
+ currentActiveNode = _ref2.relatedTarget;
378
324
  // focus trap should only be set if the side panel is a `slideOver` type
379
- if (open && sidePanelInnerRef && !slideIn) {
325
+ if (open && innerContentRef && !slideIn) {
380
326
  (0, _wrapFocus.default)({
381
- bodyNode: sidePanelInnerRef.current,
327
+ bodyNode: innerContentRef.current,
382
328
  startTrapRef: startTrapRef,
383
329
  endTrapRef: endTrapRef,
384
330
  currentActiveNode: currentActiveNode,
@@ -386,8 +332,23 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
386
332
  });
387
333
  }
388
334
  };
389
- var primaryActionContainerClassNames = (0, _classnames.default)(["".concat(blockClass, "__actions-container"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__actions-container-condensed"), condensedActions)]);
390
- var mainPanelClassNames = (0, _classnames.default)([blockClass, className, "".concat(blockClass, "__container"), "".concat(blockClass, "__container--").concat(size), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__container-right-placement"), placement === 'right'), "".concat(blockClass, "__container-left-placement"), placement === 'left'), "".concat(blockClass, "__container-with-action-toolbar"), actionToolbarButtons && actionToolbarButtons.length), "".concat(blockClass, "__container-without-overlay"), !includeOverlay && !slideIn), "".concat(blockClass, "__container-is-animating"), !animationComplete || !open), "".concat(blockClass, "__container--has-slug"), slug)]);
335
+ var primaryActionContainerClassNames = (0, _classnames.default)(["".concat(blockClass, "__actions-container"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__actions-container--condensed"), condensedActions)]);
336
+ var mainPanelClassNames = (0, _classnames.default)([blockClass, className, "".concat(blockClass, "__container"), "".concat(blockClass, "__container--").concat(size), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__container-right-placement"), placement === 'right'), "".concat(blockClass, "__container-left-placement"), placement === 'left'), "".concat(blockClass, "__container--slide-in"), slideIn), "".concat(blockClass, "__container--has-slug"), slug), "".concat(blockClass, "__container--condensed-actions"), condensedActions)]);
337
+ var renderTitle = function renderTitle() {
338
+ return /*#__PURE__*/_react.default.createElement("div", {
339
+ className: (0, _classnames.default)("".concat(blockClass, "__title"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__title--no-label"), !labelTextRef.current)),
340
+ ref: titleRef
341
+ }, /*#__PURE__*/_react.default.createElement("h2", {
342
+ className: "".concat(blockClass, "__title-text"),
343
+ title: title,
344
+ "aria-hidden": false
345
+ }, title), doAnimateTitle && !reducedMotion.matches && /*#__PURE__*/_react.default.createElement("h2", {
346
+ className: "".concat(blockClass, "__collapsed-title-text"),
347
+ title: title,
348
+ "aria-hidden": true,
349
+ ref: collapsedTitleRef
350
+ }, title));
351
+ };
391
352
  var renderHeader = function renderHeader() {
392
353
  var _slug$type;
393
354
  var slugCloseSize = actions && actions.length && /l/.test(size) ? 'md' : 'sm';
@@ -398,8 +359,9 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
398
359
  size: slugCloseSize
399
360
  });
400
361
  }
401
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
402
- className: (0, _classnames.default)("".concat(blockClass, "__title-container"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__on-detail-step"), currentStep > 0), "".concat(blockClass, "__on-detail-step-without-title"), currentStep > 0 && !title), "".concat(blockClass, "__title-container--no-title-animation"), !animateTitle), "".concat(blockClass, "__title-container-is-animating"), !animationComplete || !open), "".concat(blockClass, "__title-container-without-title"), !title), "".concat(blockClass, "__title-container--reduced-motion"), reducedMotion.matches))
362
+ return /*#__PURE__*/_react.default.createElement("div", {
363
+ className: (0, _classnames.default)("".concat(blockClass, "__header"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "--on-detail-step"), currentStep > 0), "".concat(blockClass, "__header--no-title-animation"), !doAnimateTitle), "".concat(blockClass, "__header--reduced-motion"), reducedMotion.matches)),
364
+ ref: headerRef
403
365
  }, currentStep > 0 && /*#__PURE__*/_react.default.createElement(_react2.Button, {
404
366
  "aria-label": navigationBackIconDescription,
405
367
  kind: "ghost",
@@ -414,8 +376,9 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
414
376
  className: "".concat(blockClass, "__navigation-back-button"),
415
377
  onClick: onNavigationBack
416
378
  }), title && title.length && labelText && labelText.length && /*#__PURE__*/_react.default.createElement("p", {
417
- className: "".concat(blockClass, "__label-text")
418
- }, labelText), title && title.length && renderTitle()), /*#__PURE__*/_react.default.createElement("div", {
379
+ className: "".concat(blockClass, "__label-text"),
380
+ ref: labelTextRef
381
+ }, labelText), title && title.length && renderTitle(), /*#__PURE__*/_react.default.createElement("div", {
419
382
  className: "".concat(blockClass, "__slug-and-close")
420
383
  }, normalizedSlug, /*#__PURE__*/_react.default.createElement(_react2.Button, {
421
384
  "aria-label": closeIconDescription,
@@ -429,22 +392,23 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
429
392
  iconDescription: closeIconDescription,
430
393
  className: "".concat(blockClass, "__close-button"),
431
394
  onClick: onRequestClose,
432
- ref: sidePanelCloseRef
395
+ ref: closeRef
433
396
  })), subtitle && /*#__PURE__*/_react.default.createElement("p", {
434
- className: (0, _classnames.default)("".concat(blockClass, "__subtitle-text"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__subtitle-text-no-animation"), !animateTitle), "".concat(blockClass, "__subtitle-text-no-animation-no-action-toolbar"), !animateTitle && (!actionToolbarButtons || !actionToolbarButtons.length)), "".concat(blockClass, "__subtitle-text-is-animating"), !animationComplete && animateTitle), "".concat(blockClass, "__subtitle-without-title"), !title))
397
+ className: (0, _classnames.default)("".concat(blockClass, "__subtitle-text"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__subtitle-text-no-animation-no-action-toolbar"), !doAnimateTitle && (!actionToolbarButtons || !actionToolbarButtons.length))),
398
+ ref: subtitleRef
435
399
  }, subtitle), actionToolbarButtons && actionToolbarButtons.length && /*#__PURE__*/_react.default.createElement("div", {
436
- className: (0, _classnames.default)("".concat(blockClass, "__action-toolbar"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__action-toolbar-no-animation"), !animateTitle))
437
- }, actionToolbarButtons.map(function (_ref6) {
438
- var label = _ref6.label,
439
- kind = _ref6.kind,
440
- icon = _ref6.icon,
441
- tooltipPosition = _ref6.tooltipPosition,
442
- tooltipAlignment = _ref6.tooltipAlignment,
443
- leading = _ref6.leading,
444
- disabled = _ref6.disabled,
445
- className = _ref6.className,
446
- onClick = _ref6.onClick,
447
- rest = (0, _objectWithoutProperties2.default)(_ref6, _excluded2);
400
+ className: "".concat(blockClass, "__action-toolbar")
401
+ }, actionToolbarButtons.map(function (_ref5) {
402
+ var label = _ref5.label,
403
+ kind = _ref5.kind,
404
+ icon = _ref5.icon,
405
+ tooltipPosition = _ref5.tooltipPosition,
406
+ tooltipAlignment = _ref5.tooltipAlignment,
407
+ leading = _ref5.leading,
408
+ disabled = _ref5.disabled,
409
+ className = _ref5.className,
410
+ onClick = _ref5.onClick,
411
+ rest = (0, _objectWithoutProperties2.default)(_ref5, _excluded2);
448
412
  return /*#__PURE__*/_react.default.createElement(_react2.Button, (0, _extends2.default)({}, rest, {
449
413
  key: label,
450
414
  kind: kind || 'ghost',
@@ -460,24 +424,18 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
460
424
  }), leading && label);
461
425
  })));
462
426
  };
463
- var renderTitle = function renderTitle() {
464
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, title && title.length && /*#__PURE__*/_react.default.createElement("h2", {
465
- className: "".concat(blockClass, "__title-text"),
466
- title: title,
467
- "aria-hidden": false
468
- }, title), animateTitle && title && title.length && !reducedMotion.matches && /*#__PURE__*/_react.default.createElement("h2", {
469
- className: "".concat(blockClass, "__collapsed-title-text"),
470
- title: title,
471
- "aria-hidden": true
472
- }, title));
427
+ var renderMain = function renderMain() {
428
+ return /*#__PURE__*/_react.default.createElement("div", {
429
+ ref: innerContentRef,
430
+ className: (0, _classnames.default)("".concat(blockClass, "__inner-content"), (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__inner-content--static"), !doAnimateTitle), "".concat(blockClass, "--scrolls"), !doAnimateTitle))
431
+ }, children);
473
432
  };
474
- var contentRef = ref || sidePanelRef;
475
- (0, _useResizeObserver.useResizeObserver)(contentRef, handleResize);
433
+ (0, _useResizeObserver.useResizeObserver)(sidePanelRef, handleResize, [open]);
476
434
  return /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, null, open && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, (0, _extends2.default)({}, (0, _devtools.getDevtoolsProps)(componentName), rest, {
477
435
  id: id,
478
436
  className: mainPanelClassNames,
479
437
  onBlur: handleBlur,
480
- ref: contentRef,
438
+ ref: sidePanelRef,
481
439
  role: "complementary",
482
440
  "aria-label": title,
483
441
  onAnimationComplete: onAnimationEnd,
@@ -494,16 +452,14 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
494
452
  tabIndex: "0",
495
453
  role: "link",
496
454
  className: "".concat(blockClass, "__visually-hidden")
497
- }, "Focus sentinel"), !animateTitle && renderHeader(), /*#__PURE__*/_react.default.createElement("div", {
498
- ref: sidePanelInnerRef,
499
- className: (0, _classnames.default)("".concat(blockClass, "__inner-content"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__static-inner-content"), !animateTitle), "".concat(blockClass, "__static-inner-content-no-actions"), !animateTitle && !(actions !== null && actions !== void 0 && actions.length)), "".concat(blockClass, "__inner-content-with-actions"), actions && actions.length))
500
- }, animateTitle && renderHeader(), /*#__PURE__*/_react.default.createElement("div", {
501
- className: "".concat(blockClass, "__body-content")
502
- }, children), /*#__PURE__*/_react.default.createElement(_ActionSet.ActionSet, {
455
+ }, "Focus sentinel"), doAnimateTitle ? /*#__PURE__*/_react.default.createElement("div", {
456
+ ref: animatedScrollRef,
457
+ className: "".concat(blockClass, "__animated-scroll-wrapper ").concat(blockClass, "--scrolls")
458
+ }, renderHeader(), renderMain()) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderHeader(), renderMain()), /*#__PURE__*/_react.default.createElement(_ActionSet.ActionSet, {
503
459
  actions: actions,
504
460
  className: primaryActionContainerClassNames,
505
461
  size: size === 'xs' ? 'sm' : size
506
- })), /*#__PURE__*/_react.default.createElement("span", {
462
+ }), /*#__PURE__*/_react.default.createElement("span", {
507
463
  ref: endTrapRef,
508
464
  tabIndex: "0",
509
465
  role: "link",
@@ -513,7 +469,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
513
469
  initial: "hidden",
514
470
  animate: "visible",
515
471
  exit: "exit",
516
- ref: sidePanelOverlayRef,
472
+ ref: overlayRef,
517
473
  className: "".concat(blockClass, "__overlay")
518
474
  }))));
519
475
  });
@@ -628,8 +584,8 @@ SidePanel.propTypes = {
628
584
  * This is the selector to the element that contains all of the page content that will shrink if the panel is a slide in.
629
585
  * This prop is required when using the `slideIn` variant of the side panel.
630
586
  */
631
- selectorPageContent: _propTypes.default.string.isRequired.if(function (_ref8) {
632
- var slideIn = _ref8.slideIn;
587
+ selectorPageContent: _propTypes.default.string.isRequired.if(function (_ref7) {
588
+ var slideIn = _ref7.slideIn;
633
589
  return slideIn;
634
590
  }),
635
591
  /**
@@ -656,8 +612,8 @@ SidePanel.propTypes = {
656
612
  /**
657
613
  * Sets the title text
658
614
  */
659
- title: _propTypes.default.string.isRequired.if(function (_ref9) {
660
- var labelText = _ref9.labelText;
615
+ title: _propTypes.default.string.isRequired.if(function (_ref8) {
616
+ var labelText = _ref8.labelText;
661
617
  return labelText;
662
618
  })
663
619
  };
@@ -22,8 +22,8 @@ var _propsHelper = require("../../global/js/utils/props-helper");
22
22
  var _settings = require("../../settings");
23
23
  var _excluded = ["align", "allTagsModalTarget", "className", "maxVisible", "multiline", "overflowAlign", "overflowClassName", "overflowType", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags", "containingElementRef", "measurementOffset"],
24
24
  _excluded2 = ["label", "id"],
25
- _excluded3 = ["label"]; //
26
- // Copyright IBM Corp. 2020, 2023
25
+ _excluded3 = ["label", "onClose"]; //
26
+ // Copyright IBM Corp. 2020, 2024
27
27
  //
28
28
  // This source code is licensed under the Apache-2.0 license found in the
29
29
  // LICENSE file in the root directory of this source tree.
@@ -89,6 +89,10 @@ var TagSet = exports.TagSet = /*#__PURE__*/_react.default.forwardRef(function (_
89
89
  sizingTags = _useState10[0],
90
90
  setSizingTags = _useState10[1];
91
91
  var overflowTag = (0, _react.useRef)(null);
92
+ var _useState11 = (0, _react.useState)(false),
93
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
94
+ popoverOpen = _useState12[0],
95
+ setPopoverOpen = _useState12[1];
92
96
  var handleShowAllClick = function handleShowAllClick() {
93
97
  setShowAllModalOpen(true);
94
98
  };
@@ -112,13 +116,23 @@ var TagSet = exports.TagSet = /*#__PURE__*/_react.default.forwardRef(function (_
112
116
  }) : []);
113
117
  setSizingTags(newSizingTags);
114
118
  }, [tags]);
119
+ var handleTagOnClose = (0, _react.useCallback)(function (onClose, index) {
120
+ onClose === null || onClose === void 0 || onClose();
121
+ if (index <= displayCount - 1) {
122
+ setPopoverOpen(false);
123
+ }
124
+ }, [displayCount]);
115
125
  (0, _react.useEffect)(function () {
116
126
  // create visible and overflow tags
117
127
  var newDisplayedTags = tags && tags.length > 0 ? tags.map(function (_ref3, index) {
118
128
  var label = _ref3.label,
129
+ _onClose = _ref3.onClose,
119
130
  other = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
120
131
  return /*#__PURE__*/_react.default.createElement(_react2.Tag, (0, _extends2.default)({}, other, {
121
- key: "displayed-tag-".concat(index)
132
+ key: "displayed-tag-".concat(index),
133
+ onClose: function onClose() {
134
+ return handleTagOnClose(_onClose, index);
135
+ }
122
136
  }), label);
123
137
  }) : [];
124
138
 
@@ -141,10 +155,12 @@ var TagSet = exports.TagSet = /*#__PURE__*/_react.default.forwardRef(function (_
141
155
  overflowType: overflowType,
142
156
  showAllTagsLabel: showAllTagsLabel,
143
157
  key: "displayed-tag-overflow",
144
- ref: overflowTag
158
+ ref: overflowTag,
159
+ popoverOpen: popoverOpen,
160
+ setPopoverOpen: setPopoverOpen
145
161
  }));
146
162
  setDisplayedTags(newDisplayedTags);
147
- }, [displayCount, overflowAlign, overflowClassName, overflowType, showAllTagsLabel, tags]);
163
+ }, [displayCount, overflowAlign, overflowClassName, overflowType, showAllTagsLabel, tags, popoverOpen, handleTagOnClose]);
148
164
  var checkFullyVisibleTags = (0, _react.useCallback)(function () {
149
165
  if (multiline) {
150
166
  return setDisplayCount(maxVisible);
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.TagSetOverflow = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
12
  var _react = _interopRequireWildcard(require("react"));
14
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -16,8 +15,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
16
15
  var _react2 = require("@carbon/react");
17
16
  var _hooks = require("../../global/js/hooks");
18
17
  var _settings = require("../../settings");
19
- var _excluded = ["allTagsModalSearchThreshold", "className", "onShowAllClick", "overflowAlign", "overflowTags", "overflowType", "showAllTagsLabel"]; //
20
- // Copyright IBM Corp. 2021, 2022
18
+ var _excluded = ["allTagsModalSearchThreshold", "className", "onShowAllClick", "overflowAlign", "overflowTags", "overflowType", "showAllTagsLabel", "popoverOpen", "setPopoverOpen"]; //
19
+ // Copyright IBM Corp. 2021, 2024
21
20
  //
22
21
  // This source code is licensed under the Apache-2.0 license found in the
23
22
  // LICENSE file in the root directory of this source tree.
@@ -42,11 +41,9 @@ var TagSetOverflow = exports.TagSetOverflow = /*#__PURE__*/_react.default.forwar
42
41
  overflowTags = _ref.overflowTags,
43
42
  overflowType = _ref.overflowType,
44
43
  showAllTagsLabel = _ref.showAllTagsLabel,
44
+ popoverOpen = _ref.popoverOpen,
45
+ setPopoverOpen = _ref.setPopoverOpen,
45
46
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
- var _useState = (0, _react.useState)(false),
47
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
48
- popoverOpen = _useState2[0],
49
- setPopoverOpen = _useState2[1];
50
47
  var localRef = (0, _react.useRef)();
51
48
  var overflowTagContent = (0, _react.useRef)(null);
52
49
  (0, _hooks.useClickOutside)(ref || localRef, function () {
@@ -134,6 +131,14 @@ TagSetOverflow.propTypes = {
134
131
  * Type of rendering displayed inside of the tag overflow component
135
132
  */
136
133
  overflowType: _propTypes.default.oneOf(['default', 'tag']),
134
+ /**
135
+ * Open state of the popover
136
+ */
137
+ popoverOpen: _propTypes.default.bool,
138
+ /**
139
+ * Setter function for the popoverOpen state value
140
+ */
141
+ setPopoverOpen: _propTypes.default.func,
137
142
  /**
138
143
  * label for the overflow show all tags link
139
144
  */
@@ -99,6 +99,12 @@ Object.defineProperty(exports, "Datagrid", {
99
99
  return _Datagrid.Datagrid;
100
100
  }
101
101
  });
102
+ Object.defineProperty(exports, "DelimitedList", {
103
+ enumerable: true,
104
+ get: function get() {
105
+ return _DelimitedList.DelimitedList;
106
+ }
107
+ });
102
108
  Object.defineProperty(exports, "EditFullPage", {
103
109
  enumerable: true,
104
110
  get: function get() {
@@ -553,4 +559,5 @@ var _EditUpdateCards = require("./EditUpdateCards");
553
559
  var _Checklist = require("./Checklist");
554
560
  var _Guidebanner = require("./Guidebanner");
555
561
  var _InlineTip = require("./InlineTip");
556
- var _NonLinearReading = require("./NonLinearReading");
562
+ var _NonLinearReading = require("./NonLinearReading");
563
+ var _DelimitedList = require("./DelimitedList");