@carbon/ibm-products 2.70.0 → 2.71.0-rc.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 (177) hide show
  1. package/css/carbon.css +317 -216
  2. package/css/carbon.css.map +1 -1
  3. package/css/index-full-carbon.css +546 -270
  4. package/css/index-full-carbon.css.map +1 -1
  5. package/css/index-full-carbon.min.css +1 -1
  6. package/css/index-full-carbon.min.css.map +1 -1
  7. package/css/index-without-carbon-released-only.css +387 -43
  8. package/css/index-without-carbon-released-only.css.map +1 -1
  9. package/css/index-without-carbon-released-only.min.css +1 -1
  10. package/css/index-without-carbon-released-only.min.css.map +1 -1
  11. package/css/index-without-carbon.css +229 -54
  12. package/css/index-without-carbon.css.map +1 -1
  13. package/css/index-without-carbon.min.css +1 -1
  14. package/css/index-without-carbon.min.css.map +1 -1
  15. package/css/index.css +242 -56
  16. package/css/index.css.map +1 -1
  17. package/css/index.min.css +1 -1
  18. package/css/index.min.css.map +1 -1
  19. package/es/_virtual/_commonjsHelpers.js +1 -3
  20. package/es/_virtual/index2.js +2 -6
  21. package/es/components/APIKeyModal/APIKeyDownloader.d.ts +61 -19
  22. package/es/components/APIKeyModal/APIKeyDownloader.js +3 -3
  23. package/es/components/APIKeyModal/APIKeyModal.js +1 -1
  24. package/es/components/ActionSet/ActionSet.d.ts +4 -0
  25. package/es/components/ActionSet/ActionSet.js +46 -44
  26. package/es/components/AddSelect/AddSelectBody.js +1 -1
  27. package/es/components/Card/Card.d.ts +1 -0
  28. package/es/components/Coachmark/CoachmarkOverlay.js +5 -5
  29. package/es/components/Coachmark/CoachmarkTagline.js +2 -2
  30. package/es/components/Coachmark/utils/context.d.ts +28 -2
  31. package/es/components/Coachmark/utils/context.js +1 -1
  32. package/es/components/CoachmarkStack/CoachmarkStack.js +11 -8
  33. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +18 -12
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -3
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +2 -1
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -2
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +2 -1
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +5 -2
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +9 -1
  41. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +24 -5
  42. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +1 -1
  43. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +6 -4
  44. package/es/components/ConditionBuilder/utils/util.d.ts +1 -1
  45. package/es/components/ConditionBuilder/utils/util.js +11 -4
  46. package/es/components/CreateModal/CreateModal.d.ts +4 -7
  47. package/es/components/CreateModal/CreateModal.js +4 -19
  48. package/es/components/CreateTearsheet/CreateTearsheetStep.d.ts +6 -0
  49. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +12 -3
  50. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +43 -18
  51. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +1 -1
  52. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.d.ts +1 -1
  53. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +2 -2
  54. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.d.ts +7 -1
  55. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +11 -3
  56. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +15 -19
  57. package/es/components/EditTearsheet/EditTearsheetForm.d.ts +2 -0
  58. package/es/components/EditTearsheet/EditTearsheetForm.js +16 -4
  59. package/es/components/EmptyStates/EmptyState.js +0 -1
  60. package/es/components/FilterSummary/FilterSummary.d.ts +1 -0
  61. package/es/components/FilterSummary/FilterSummary.js +2 -1
  62. package/es/components/Guidebanner/Guidebanner.js +4 -20
  63. package/es/components/InterstitialScreen/InterstitialScreen.d.ts +4 -3
  64. package/es/components/InterstitialScreen/InterstitialScreen.js +21 -21
  65. package/es/components/InterstitialScreen/InterstitialScreenBody.d.ts +9 -3
  66. package/es/components/InterstitialScreen/InterstitialScreenBody.js +16 -11
  67. package/es/components/InterstitialScreen/InterstitialScreenFooter.js +15 -13
  68. package/es/components/InterstitialScreen/InterstitialScreenHeader.js +13 -8
  69. package/es/components/InterstitialScreen/index.d.ts +4 -1
  70. package/es/components/Nav/NavItemLink.js +1 -4
  71. package/es/components/NotificationsPanel/NotificationsPanel.js +11 -21
  72. package/es/components/PageHeader/PageHeaderTitle.js +1 -1
  73. package/es/components/PageHeader/next/PageHeader.d.ts +277 -0
  74. package/es/components/PageHeader/next/PageHeader.js +475 -0
  75. package/es/components/PageHeader/next/index.d.ts +8 -0
  76. package/es/components/ScrollGradient/ScrollGradient.js +4 -4
  77. package/es/components/SidePanel/SidePanel.js +25 -20
  78. package/es/components/StringFormatter/StringFormatter.js +3 -0
  79. package/es/components/Tearsheet/Tearsheet.js +4 -7
  80. package/es/components/Tearsheet/TearsheetNarrow.js +1 -4
  81. package/es/components/Tearsheet/TearsheetShell.js +1 -1
  82. package/es/components/UserAvatar/UserAvatar.js +5 -7
  83. package/es/components/UserProfileImage/UserProfileImage.d.ts +1 -0
  84. package/es/components/UserProfileImage/UserProfileImage.js +12 -6
  85. package/es/components/index.d.ts +1 -0
  86. package/es/global/js/package-settings.js +1 -1
  87. package/es/index.js +3 -0
  88. package/es/node_modules/@carbon/icons-react/es/Icon.js +1 -1
  89. package/es/node_modules/prop-types/index.js +1 -1
  90. package/lib/_virtual/_commonjsHelpers.js +0 -3
  91. package/lib/_virtual/index2.js +2 -8
  92. package/lib/components/APIKeyModal/APIKeyDownloader.d.ts +61 -19
  93. package/lib/components/APIKeyModal/APIKeyDownloader.js +3 -3
  94. package/lib/components/APIKeyModal/APIKeyModal.js +1 -1
  95. package/lib/components/ActionSet/ActionSet.d.ts +4 -0
  96. package/lib/components/ActionSet/ActionSet.js +46 -43
  97. package/lib/components/AddSelect/AddSelectBody.js +1 -1
  98. package/lib/components/Card/Card.d.ts +1 -0
  99. package/lib/components/Coachmark/CoachmarkOverlay.js +5 -5
  100. package/lib/components/Coachmark/CoachmarkTagline.js +2 -2
  101. package/lib/components/Coachmark/utils/context.d.ts +28 -2
  102. package/lib/components/Coachmark/utils/context.js +1 -1
  103. package/lib/components/CoachmarkStack/CoachmarkStack.js +11 -8
  104. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +18 -12
  105. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
  106. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -3
  107. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +2 -1
  108. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -2
  109. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +2 -1
  110. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +5 -2
  111. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +9 -1
  112. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +24 -5
  113. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +1 -1
  114. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +6 -4
  115. package/lib/components/ConditionBuilder/utils/util.d.ts +1 -1
  116. package/lib/components/ConditionBuilder/utils/util.js +11 -4
  117. package/lib/components/CreateModal/CreateModal.d.ts +4 -7
  118. package/lib/components/CreateModal/CreateModal.js +4 -19
  119. package/lib/components/CreateTearsheet/CreateTearsheetStep.d.ts +6 -0
  120. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +12 -3
  121. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +43 -18
  122. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +1 -1
  123. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.d.ts +1 -1
  124. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +2 -2
  125. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.d.ts +7 -1
  126. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +11 -3
  127. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +15 -19
  128. package/lib/components/EditTearsheet/EditTearsheetForm.d.ts +2 -0
  129. package/lib/components/EditTearsheet/EditTearsheetForm.js +16 -4
  130. package/lib/components/EmptyStates/EmptyState.js +0 -1
  131. package/lib/components/FilterSummary/FilterSummary.d.ts +1 -0
  132. package/lib/components/FilterSummary/FilterSummary.js +2 -1
  133. package/lib/components/Guidebanner/Guidebanner.js +4 -20
  134. package/lib/components/InterstitialScreen/InterstitialScreen.d.ts +4 -3
  135. package/lib/components/InterstitialScreen/InterstitialScreen.js +21 -20
  136. package/lib/components/InterstitialScreen/InterstitialScreenBody.d.ts +9 -3
  137. package/lib/components/InterstitialScreen/InterstitialScreenBody.js +19 -14
  138. package/lib/components/InterstitialScreen/InterstitialScreenFooter.js +20 -18
  139. package/lib/components/InterstitialScreen/InterstitialScreenHeader.js +15 -10
  140. package/lib/components/InterstitialScreen/index.d.ts +4 -1
  141. package/lib/components/Nav/NavItemLink.js +1 -4
  142. package/lib/components/NotificationsPanel/NotificationsPanel.js +11 -21
  143. package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
  144. package/lib/components/PageHeader/next/PageHeader.d.ts +277 -0
  145. package/lib/components/PageHeader/next/PageHeader.js +490 -0
  146. package/lib/components/PageHeader/next/index.d.ts +8 -0
  147. package/lib/components/ScrollGradient/ScrollGradient.js +4 -4
  148. package/lib/components/SidePanel/SidePanel.js +26 -21
  149. package/lib/components/StringFormatter/StringFormatter.js +3 -0
  150. package/lib/components/Tearsheet/Tearsheet.js +4 -7
  151. package/lib/components/Tearsheet/TearsheetNarrow.js +1 -4
  152. package/lib/components/Tearsheet/TearsheetShell.js +1 -1
  153. package/lib/components/UserAvatar/UserAvatar.js +5 -7
  154. package/lib/components/UserProfileImage/UserProfileImage.d.ts +1 -0
  155. package/lib/components/UserProfileImage/UserProfileImage.js +12 -6
  156. package/lib/components/index.d.ts +1 -0
  157. package/lib/global/js/package-settings.js +1 -1
  158. package/lib/index.js +5 -2
  159. package/lib/node_modules/@carbon/icons-react/es/Icon.js +1 -1
  160. package/lib/node_modules/prop-types/index.js +1 -1
  161. package/package.json +22 -30
  162. package/scss/components/CoachmarkStack/_coachmark-stack.scss +12 -1
  163. package/scss/components/InterstitialScreen/_interstitial-screen.scss +7 -11
  164. package/scss/components/PageHeader/_page-header.scss +198 -0
  165. package/scss/components/SidePanel/_side-panel.scss +2 -52
  166. package/scss/components/_index-released-only.scss +1 -0
  167. package/telemetry.yml +12 -13
  168. package/es/_virtual/index3.js +0 -10
  169. package/es/components/SidePanel/resizer/Resizer.d.ts +0 -21
  170. package/es/components/SidePanel/resizer/Resizer.js +0 -271
  171. package/es/node_modules/lodash.debounce/index.js +0 -367
  172. package/lib/_virtual/index3.js +0 -12
  173. package/lib/components/SidePanel/resizer/Resizer.d.ts +0 -21
  174. package/lib/components/SidePanel/resizer/Resizer.js +0 -277
  175. package/lib/node_modules/lodash.debounce/index.js +0 -369
  176. /package/es/node_modules/@carbon/{icons-react/node_modules/@carbon/icon-helpers → icon-helpers}/es/index.js +0 -0
  177. /package/lib/node_modules/@carbon/{icons-react/node_modules/@carbon/icon-helpers → icon-helpers}/es/index.js +0 -0
@@ -47,9 +47,9 @@ let InterstitialScreen = /*#__PURE__*/React__default.forwardRef((props, ref) =>
47
47
  const {
48
48
  children,
49
49
  className,
50
- interstitialAriaLabel = 'Interstitial screen',
50
+ ariaLabel = 'Interstitial screen',
51
51
  isFullScreen = false,
52
- isOpen = false,
52
+ open = false,
53
53
  launcherButtonRef,
54
54
  onClose,
55
55
  ...rest
@@ -76,21 +76,21 @@ let InterstitialScreen = /*#__PURE__*/React__default.forwardRef((props, ref) =>
76
76
  onClose?.(actionName ?? 'close');
77
77
  }, [onClose]);
78
78
  useEffect(() => {
79
- if (!isOpen) {
79
+ if (!open) {
80
80
  setProgStep(0);
81
81
  }
82
82
  startButtonRef.current?.focus();
83
- }, [isOpen, progStep, onClose]);
83
+ }, [open, progStep, onClose]);
84
84
  useEffect(() => {
85
85
  // for modal only, "is-visible" triggers animation
86
- setIsVisibleClass(!isFullScreen && isOpen ? 'is-visible' : null);
86
+ setIsVisibleClass(!isFullScreen && open ? 'is-visible' : null);
87
87
  nextButtonRef?.current?.focus();
88
- if (!isOpen && launcherButtonRef) {
88
+ if (!open && launcherButtonRef) {
89
89
  setTimeout(() => {
90
90
  launcherButtonRef.current.focus();
91
91
  }, 0);
92
92
  }
93
- }, [launcherButtonRef, isFullScreen, isOpen]);
93
+ }, [launcherButtonRef, isFullScreen, open]);
94
94
 
95
95
  // hitting escape key also closes this component
96
96
  useEffect(() => {
@@ -105,7 +105,7 @@ let InterstitialScreen = /*#__PURE__*/React__default.forwardRef((props, ref) =>
105
105
  window.addEventListener('keydown', close);
106
106
  return () => window.removeEventListener('keydown', close);
107
107
  }, [handleClose]);
108
- if (!isOpen) {
108
+ if (!open) {
109
109
  return null;
110
110
  }
111
111
  const renderModal = () => {
@@ -119,9 +119,9 @@ let InterstitialScreen = /*#__PURE__*/React__default.forwardRef((props, ref) =>
119
119
  ),
120
120
  size: "lg",
121
121
  onClose: handleClose,
122
- open: isOpen,
122
+ open: open,
123
123
  ref: _forwardedRef,
124
- "aria-label": interstitialAriaLabel
124
+ "aria-label": ariaLabel
125
125
  }, getDevtoolsProps(componentName)), children));
126
126
  };
127
127
  const renderFullScreen = () => {
@@ -132,7 +132,7 @@ let InterstitialScreen = /*#__PURE__*/React__default.forwardRef((props, ref) =>
132
132
  // Apply any supplied class names to the main HTML element.
133
133
  variantClass, isVisibleClass),
134
134
  role: "main",
135
- "aria-label": interstitialAriaLabel,
135
+ "aria-label": ariaLabel,
136
136
  ref: ref
137
137
  }, getDevtoolsProps(componentName)), /*#__PURE__*/React__default.createElement("div", {
138
138
  className: `${blockClass}--container`
@@ -181,6 +181,10 @@ InterstitialScreen.displayName = componentName;
181
181
  // in alphabetical order (for consistency).
182
182
  // See https://www.npmjs.com/package/prop-types#usage.
183
183
  InterstitialScreen.propTypes = {
184
+ /**
185
+ * The aria label applied to the Interstitial Screen component
186
+ */
187
+ ariaLabel: PropTypes.string,
184
188
  children: PropTypes.node,
185
189
  /**
186
190
  * Provide an optional class to be applied to the containing node.
@@ -190,19 +194,11 @@ InterstitialScreen.propTypes = {
190
194
  * Tooltip text and aria label for the Close button icon.
191
195
  */
192
196
  closeIconDescription: PropTypes.string,
193
- /**
194
- * The aria label applied to the Interstitial Screen component
195
- */
196
- interstitialAriaLabel: PropTypes.string,
197
197
  /**
198
198
  * Specifies whether the component is shown as a full-screen
199
199
  * experience, else it is shown as a modal by default.
200
200
  */
201
201
  isFullScreen: PropTypes.bool,
202
- /**
203
- * Specifies whether the component is currently open.
204
- */
205
- isOpen: PropTypes.bool,
206
202
  /**
207
203
  * Provide a ref to return focus to once the interstitial is closed.
208
204
  */
@@ -210,7 +206,11 @@ InterstitialScreen.propTypes = {
210
206
  /**
211
207
  * Function to call when the close button is clicked.
212
208
  */
213
- onClose: PropTypes.func
209
+ onClose: PropTypes.func,
210
+ /**
211
+ * Specifies whether the component is currently open.
212
+ */
213
+ open: PropTypes.bool
214
214
  };
215
215
 
216
- export { InterstitialScreen, InterstitialScreenContext };
216
+ export { InterstitialScreen, InterstitialScreenContext, blockClass };
@@ -13,15 +13,21 @@ type contentRendererArgs = {
13
13
  disableActionButton: (value: disableButtonConfigType) => void;
14
14
  };
15
15
  export interface InterstitialScreenBodyProps {
16
+ /**
17
+ * Optional static content for body
18
+ */
19
+ children?: ReactNode;
16
20
  /**
17
21
  * Provide an optional class to be applied to the containing node.
18
22
  */
19
23
  className?: string;
20
24
  /**
21
- * This is a required callback that has to return the content to render in the body section.
22
- * It can be a single child or an array of children depending on your need
25
+ *You can provide content either through a callback (contentRenderer) or as static children—but not both.
26
+ * If both are provided, contentRenderer always takes precedence. This optional callback should return the content
27
+ * to be rendered in the body section, which can be either a single element or an array of elements based on your needs.
28
+ * If internal state access isn’t required, you can simply use static children instead
23
29
  */
24
- contentRenderer: (config: contentRendererArgs) => ReactElement<EnrichedChildren> | ReactNode;
30
+ contentRenderer?: (config: contentRendererArgs) => ReactElement<EnrichedChildren> | ReactNode;
25
31
  }
26
32
  declare const InterstitialScreenBody: React.ForwardRefExoticComponent<InterstitialScreenBodyProps & React.RefAttributes<HTMLDivElement>>;
27
33
  export default InterstitialScreenBody;
@@ -8,11 +8,11 @@
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default, { useState, useContext, useEffect, isValidElement } from 'react';
10
10
  import PropTypes from '../../_virtual/index.js';
11
- import { InterstitialScreenContext } from './InterstitialScreen.js';
11
+ import { InterstitialScreenContext, blockClass } from './InterstitialScreen.js';
12
12
  import { ModalBody } from '@carbon/react';
13
- import { pkg } from '../../settings.js';
14
13
  import { Carousel } from '../Carousel/Carousel.js';
15
14
  import '../Carousel/CarouselItem.js';
15
+ import { getDevtoolsProps } from '../../global/js/utils/devtools.js';
16
16
 
17
17
  const InterstitialScreenBody = /*#__PURE__*/React__default.forwardRef((props, ref) => {
18
18
  const {
@@ -20,7 +20,6 @@ const InterstitialScreenBody = /*#__PURE__*/React__default.forwardRef((props, re
20
20
  contentRenderer,
21
21
  ...rest
22
22
  } = props;
23
- const blockClass = `${pkg.prefix}--interstitial-screen`;
24
23
  const bodyBlockClass = `${blockClass}--internal-body`;
25
24
  const [stepType, setStepType] = useState();
26
25
  const {
@@ -38,11 +37,11 @@ const InterstitialScreenBody = /*#__PURE__*/React__default.forwardRef((props, re
38
37
  } = useContext(InterstitialScreenContext);
39
38
  const [scrollPercent, setScrollPercent] = useState(-1);
40
39
  useEffect(() => {
41
- const _bodyContent = contentRenderer({
40
+ const _bodyContent = contentRenderer?.({
42
41
  handleGotoStep,
43
42
  progStep,
44
43
  disableActionButton
45
- });
44
+ }) ?? props.children;
46
45
  const isElement = /*#__PURE__*/isValidElement(_bodyContent);
47
46
  const children = isElement ? _bodyContent.props.children : _bodyContent;
48
47
 
@@ -76,7 +75,7 @@ const InterstitialScreenBody = /*#__PURE__*/React__default.forwardRef((props, re
76
75
  const renderBody = () => /*#__PURE__*/React__default.createElement("div", _extends({
77
76
  className: `${blockClass}--body ${className}`,
78
77
  ref: bodyScrollRef ?? ref
79
- }, rest), /*#__PURE__*/React__default.createElement("div", {
78
+ }, getDevtoolsProps('InterstitialScreenBody'), isFullScreen ? rest : {}), /*#__PURE__*/React__default.createElement("div", {
80
79
  className: `${blockClass}--content`
81
80
  }, stepType === 'multi' ? /*#__PURE__*/React__default.createElement("div", {
82
81
  className: `${blockClass}__carousel`
@@ -85,21 +84,27 @@ const InterstitialScreenBody = /*#__PURE__*/React__default.forwardRef((props, re
85
84
  ref: scrollRef,
86
85
  onScroll: onScrollHandler
87
86
  }, bodyChildrenData)) : stepType === 'single' ? bodyChildrenData : ''));
88
- return isFullScreen ? renderBody() : /*#__PURE__*/React__default.createElement(ModalBody, {
87
+ return isFullScreen ? renderBody() : /*#__PURE__*/React__default.createElement(ModalBody, _extends({
89
88
  ref: ref,
90
89
  className: bodyBlockClass
91
- }, renderBody());
90
+ }, rest), renderBody());
92
91
  });
93
92
  InterstitialScreenBody.propTypes = {
93
+ /**
94
+ * Optional static content for body
95
+ */
96
+ children: PropTypes.node,
94
97
  /**
95
98
  * Provide an optional class to be applied to the containing node.
96
99
  */
97
100
  className: PropTypes.string,
98
101
  /**
99
- * This is a required callback that has to return the content to render in the body section.
100
- * It can be a single child or an array of children depending on your need
102
+ *You can provide content either through a callback (contentRenderer) or as static children—but not both.
103
+ * If both are provided, contentRenderer always takes precedence. This optional callback should return the content
104
+ * to be rendered in the body section, which can be either a single element or an array of elements based on your needs.
105
+ * If internal state access isn’t required, you can simply use static children instead
101
106
  */
102
- contentRenderer: PropTypes.func.isRequired
107
+ contentRenderer: PropTypes.func
103
108
  };
104
109
 
105
110
  export { InterstitialScreenBody as default };
@@ -7,12 +7,12 @@
7
7
 
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default, { useContext, useRef, useState, useEffect, useMemo } from 'react';
10
- import { pkg } from '../../settings.js';
11
10
  import PropTypes from '../../_virtual/index.js';
12
- import { InterstitialScreenContext } from './InterstitialScreen.js';
11
+ import { InterstitialScreenContext, blockClass } from './InterstitialScreen.js';
13
12
  import { ModalFooter, Button, InlineLoading } from '@carbon/react';
14
13
  import { clamp } from '../../global/js/utils/clamp.js';
15
14
  import { ArrowRight } from '@carbon/react/icons';
15
+ import { getDevtoolsProps } from '../../global/js/utils/devtools.js';
16
16
 
17
17
  var _InlineLoading, _InlineLoading2, _InlineLoading3, _InlineLoading4;
18
18
  const InterstitialScreenFooter = /*#__PURE__*/React__default.forwardRef((props, ref) => {
@@ -23,9 +23,10 @@ const InterstitialScreenFooter = /*#__PURE__*/React__default.forwardRef((props,
23
23
  nextButtonLabel = 'Next',
24
24
  startButtonLabel = 'Get Started',
25
25
  actionButtonRenderer,
26
- onAction
26
+ onAction,
27
+ ...rest
27
28
  } = props;
28
- const blockClass = `${pkg.prefix}--interstitial-screen`;
29
+ const footerBlockClass = `${blockClass}--footer`;
29
30
  const {
30
31
  handleClose,
31
32
  progStep,
@@ -34,8 +35,8 @@ const InterstitialScreenFooter = /*#__PURE__*/React__default.forwardRef((props,
34
35
  disableButtonConfig,
35
36
  isFullScreen
36
37
  } = useContext(InterstitialScreenContext);
37
- const startButtonRef = useRef(undefined);
38
- const nextButtonRef = useRef(undefined);
38
+ const startButtonRef = useRef(null);
39
+ const nextButtonRef = useRef(null);
39
40
  const [loadingAction, setLoadingAction] = useState('');
40
41
  const isMultiStep = !!stepCount;
41
42
  const progStepFloor = 0;
@@ -78,10 +79,7 @@ const InterstitialScreenFooter = /*#__PURE__*/React__default.forwardRef((props,
78
79
  }
79
80
  return {};
80
81
  }, [loadingAction, isMultiStep, progStep, progStepCeil]);
81
- const getFooterContent = () => /*#__PURE__*/React__default.createElement("div", {
82
- ref: ref,
83
- className: `${blockClass}--footer ${className}`
84
- }, isMultiStep && skipButtonLabel !== '' && /*#__PURE__*/React__default.createElement(Button, {
82
+ const getFooterContent = () => /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isMultiStep && skipButtonLabel !== '' && /*#__PURE__*/React__default.createElement(Button, {
85
83
  className: `${blockClass}--skip-btn`,
86
84
  kind: "ghost",
87
85
  size: "lg",
@@ -99,7 +97,7 @@ const InterstitialScreenFooter = /*#__PURE__*/React__default.forwardRef((props,
99
97
  onClick: handleClickPrev
100
98
  }, previousButtonLabel, loadingAction === 'back' && (_InlineLoading2 || (_InlineLoading2 = /*#__PURE__*/React__default.createElement(InlineLoading, null)))), isMultiStep && progStep < progStepCeil && /*#__PURE__*/React__default.createElement(Button, {
101
99
  className: `${blockClass}--next-btn`,
102
- renderIcon: loadingAction !== 'next' ? ArrowRight : null,
100
+ renderIcon: loadingAction !== 'next' ? ArrowRight : undefined,
103
101
  ref: nextButtonRef,
104
102
  size: "lg",
105
103
  title: nextButtonLabel,
@@ -123,9 +121,13 @@ const InterstitialScreenFooter = /*#__PURE__*/React__default.forwardRef((props,
123
121
  disableButtonConfig
124
122
  }));
125
123
  }
126
- return isFullScreen ? getFooterContent() : /*#__PURE__*/React__default.createElement(ModalFooter, {
124
+ return isFullScreen ? /*#__PURE__*/React__default.createElement("div", _extends({
125
+ ref: ref,
126
+ className: `${footerBlockClass} ${className}`
127
+ }, getDevtoolsProps('InterstitialScreenFooter'), isFullScreen ? rest : {}), getFooterContent()) : /*#__PURE__*/React__default.createElement(ModalFooter, _extends({
128
+ className: footerBlockClass,
127
129
  ref: ref
128
- }, getFooterContent());
130
+ }, rest), getFooterContent());
129
131
  });
130
132
  InterstitialScreenFooter.propTypes = {
131
133
  /**
@@ -5,13 +5,14 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
8
9
  import { usePrefix, ModalHeader, ProgressIndicator, ProgressStep } from '@carbon/react';
9
10
  import React__default from 'react';
10
11
  import PropTypes from '../../_virtual/index.js';
11
- import { pkg } from '../../settings.js';
12
12
  import cx from 'classnames';
13
- import { InterstitialScreenContext } from './InterstitialScreen.js';
13
+ import { InterstitialScreenContext, blockClass } from './InterstitialScreen.js';
14
14
  import { useId } from '../../global/js/utils/useId.js';
15
+ import { getDevtoolsProps } from '../../global/js/utils/devtools.js';
15
16
 
16
17
  const InterstitialScreenHeader = /*#__PURE__*/React__default.forwardRef((props, ref) => {
17
18
  var _h, _h2;
@@ -21,7 +22,8 @@ const InterstitialScreenHeader = /*#__PURE__*/React__default.forwardRef((props,
21
22
  headerSubTitle,
22
23
  closeIconDescription,
23
24
  hideProgressIndicator,
24
- children
25
+ children,
26
+ ...rest
25
27
  } = props;
26
28
  const {
27
29
  bodyChildrenData,
@@ -30,7 +32,6 @@ const InterstitialScreenHeader = /*#__PURE__*/React__default.forwardRef((props,
30
32
  handleClose,
31
33
  stepCount
32
34
  } = React__default.useContext(InterstitialScreenContext);
33
- const blockClass = `${pkg.prefix}--interstitial-screen`;
34
35
  const headerBlockClass = `${blockClass}--internal-header`;
35
36
  const _useId = useId();
36
37
  const carbonPrefix = usePrefix();
@@ -57,19 +58,23 @@ const InterstitialScreenHeader = /*#__PURE__*/React__default.forwardRef((props,
57
58
  className: `${carbonPrefix}--visually-hidden`
58
59
  }, "Step ", progStep + 1, " of ", stepCount)));
59
60
  };
60
- return isFullScreen ? /*#__PURE__*/React__default.createElement("header", {
61
+ const closeModal = () => {
62
+ handleClose?.('close');
63
+ };
64
+ return isFullScreen ? /*#__PURE__*/React__default.createElement("header", _extends({
61
65
  ref: ref,
66
+ role: "presentation",
62
67
  className: cx(headerBlockClass, className, {
63
68
  [`${headerBlockClass}--has-title`]: headerTitle || headerSubTitle || children
64
69
  })
65
- }, headerContent()) : /*#__PURE__*/React__default.createElement(ModalHeader, {
70
+ }, getDevtoolsProps('InterstitialScreenHeader'), rest), headerContent()) : /*#__PURE__*/React__default.createElement(ModalHeader, _extends({
66
71
  ref: ref,
67
72
  className: cx(headerBlockClass, className, {
68
73
  [`${headerBlockClass}--has-title`]: headerTitle || headerSubTitle || children
69
74
  }),
70
- closeModal: handleClose,
75
+ closeModal: closeModal,
71
76
  iconDescription: closeIconDescription
72
- }, headerContent());
77
+ }, getDevtoolsProps('InterstitialScreenHeader'), rest), headerContent());
73
78
  });
74
79
  InterstitialScreenHeader.propTypes = {
75
80
  /**
@@ -5,4 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  export { InterstitialScreen } from './InterstitialScreen';
8
- export type { InterstitialScreenProps } from './InterstitialScreen';
8
+ export type { InterstitialScreenProps, InterstitialScreenComponent, disableButtonConfigType, ActionType, } from './InterstitialScreen';
9
+ export type { InterstitialScreenBodyProps } from './InterstitialScreenBody';
10
+ export type { InterstitialScreenFooterProps } from './InterstitialScreenFooter';
11
+ export type { InterstitialScreenHeaderProps } from './InterstitialScreenHeader';
@@ -10,7 +10,7 @@ import React__default from 'react';
10
10
 
11
11
  const NavItemLink = /*#__PURE__*/React__default.forwardRef(function NavItemLink(props, ref) {
12
12
  const {
13
- element,
13
+ element = 'a',
14
14
  ...rest
15
15
  } = props;
16
16
  return /*#__PURE__*/React__default.createElement(element, {
@@ -23,8 +23,5 @@ NavItemLink.propTypes = {
23
23
  /** @type {elementType} The base element to use to build the link. Defaults to `a`, can also accept alternative tag names or custom components like `Link` from `react-router`. */
24
24
  element: PropTypes.elementType
25
25
  };
26
- NavItemLink.defaultProps = {
27
- element: 'a'
28
- };
29
26
 
30
27
  export { NavItemLink as default };
@@ -28,7 +28,6 @@ import { useId } from '../../global/js/utils/useId.js';
28
28
  import { pkg } from '../../settings.js';
29
29
  import { timeAgo } from './utils.js';
30
30
  import { usePresence } from '../../global/js/hooks/usePresence.js';
31
- import { useClickOutside } from '../../global/js/hooks/useClickOutside.js';
32
31
 
33
32
  var _Close;
34
33
 
@@ -143,15 +142,17 @@ let NotificationsPanel = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
143
142
  // Set the notifications passed to the state within this component
144
143
  setAllNotifications(data);
145
144
  }, [data]);
146
- useClickOutside(ref || notificationPanelRef, target => {
147
- const element = target;
148
- if (!isActionableElement(element)) {
149
- setTimeout(() => {
150
- triggerButtonRef?.current?.focus();
151
- }, 100);
152
- }
153
- onClickOutside?.();
154
- });
145
+
146
+ // useClickOutside(ref || notificationPanelRef, (target) => {
147
+ // const element = target as HTMLElement;
148
+ // if (!isActionableElement(element)) {
149
+ // setTimeout(() => {
150
+ // triggerButtonRef?.current?.focus();
151
+ // }, 100);
152
+ // }
153
+ // onClickOutside?.();
154
+ // });
155
+
155
156
  const handleKeydown = event => {
156
157
  event.stopPropagation();
157
158
  if (event.key === 'Escape') {
@@ -309,17 +310,6 @@ let NotificationsPanel = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
309
310
  size: 16
310
311
  }))));
311
312
  };
312
- const isActionableElement = el => {
313
- if (!el) {
314
- return false;
315
- }
316
- const interactiveRoles = new Set(['button', 'link', 'textbox', 'checkbox', 'radio', 'slider', 'spinbutton', 'combobox', 'switch', 'menuitem']);
317
- const actionableAncestor = el.closest('button, a, input, select, textarea, [tabindex], [contenteditable="true"], [role]');
318
- if (!actionableAncestor) {
319
- return false;
320
- }
321
- return actionableAncestor instanceof HTMLButtonElement || actionableAncestor instanceof HTMLAnchorElement || actionableAncestor instanceof HTMLInputElement || actionableAncestor instanceof HTMLSelectElement || actionableAncestor instanceof HTMLTextAreaElement || actionableAncestor.tabIndex >= 0 || actionableAncestor.isContentEditable || interactiveRoles.has(actionableAncestor.getAttribute('role')?.toLowerCase() ?? '');
322
- };
323
313
  const dismissSingleNotification = (event, notification) => {
324
314
  event.preventDefault();
325
315
  event.stopPropagation();
@@ -45,7 +45,7 @@ const PageHeaderTitle = _ref => {
45
45
  } = title;
46
46
  let titleText;
47
47
  let isEditable = !!onSave;
48
- const titleRef = useRef();
48
+ const titleRef = useRef(undefined);
49
49
  const isEllipsisApplied = useOverflowStringWidth(titleRef);
50
50
  if (text || !content) {
51
51
  if (text === undefined && typeof title === 'string') {