@carbon/ibm-products 2.79.0 → 2.80.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 (142) hide show
  1. package/css/carbon.css +39 -19
  2. package/css/carbon.css.map +1 -1
  3. package/css/index-full-carbon.css +186 -80
  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 +147 -61
  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 +147 -61
  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 +150 -66
  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/components/Coachmark/Coachmark.d.ts +2 -1
  20. package/es/components/Coachmark/Coachmark.js +6 -0
  21. package/es/components/Coachmark/CoachmarkDragbar.d.ts +2 -1
  22. package/es/components/Coachmark/CoachmarkDragbar.js +7 -0
  23. package/es/components/Coachmark/CoachmarkHeader.d.ts +2 -1
  24. package/es/components/Coachmark/CoachmarkHeader.js +7 -0
  25. package/es/components/Coachmark/CoachmarkOverlay.d.ts +2 -1
  26. package/es/components/Coachmark/CoachmarkOverlay.js +1 -0
  27. package/es/components/Coachmark/CoachmarkTagline.d.ts +2 -1
  28. package/es/components/Coachmark/CoachmarkTagline.js +7 -0
  29. package/es/components/Coachmark/next/Coachmark/CoachmarkBubble/CoachmarkBubble.js +3 -2
  30. package/es/components/Coachmark/utils/hooks.js +4 -3
  31. package/es/components/CoachmarkBeacon/CoachmarkBeacon.d.ts +2 -1
  32. package/es/components/CoachmarkBeacon/CoachmarkBeacon.js +7 -0
  33. package/es/components/CoachmarkButton/CoachmarkButton.d.ts +2 -1
  34. package/es/components/CoachmarkButton/CoachmarkButton.js +1 -0
  35. package/es/components/CoachmarkFixed/CoachmarkFixed.d.ts +1 -0
  36. package/es/components/CoachmarkFixed/CoachmarkFixed.js +7 -0
  37. package/es/components/CoachmarkOverlayElement/CoachmarkOverlayElement.d.ts +2 -1
  38. package/es/components/CoachmarkOverlayElement/CoachmarkOverlayElement.js +1 -0
  39. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.d.ts +2 -1
  40. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +1 -0
  41. package/es/components/CoachmarkStack/CoachmarkStack.d.ts +2 -1
  42. package/es/components/CoachmarkStack/CoachmarkStack.js +7 -0
  43. package/es/components/CreateFullPage/CreateFullPage.js +1 -1
  44. package/es/components/CreateTearsheet/CreateTearsheet.js +2 -2
  45. package/es/components/CreateTearsheet/CreateTearsheetStep.js +2 -21
  46. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +3 -2
  47. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +3 -2
  48. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +4 -0
  49. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +2 -1
  50. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +2 -1
  51. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.d.ts +1 -1
  52. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +6 -1
  53. package/es/components/Datagrid/useResizeTable.js +2 -2
  54. package/es/components/Datagrid/useSelectRows.js +3 -2
  55. package/es/components/Datagrid/useStickyColumn.js +3 -2
  56. package/es/components/PageHeader/next/PageHeader.js +4 -3
  57. package/es/components/ScrollGradient/constants.js +3 -2
  58. package/es/components/Tearsheet/TearsheetShell.js +4 -6
  59. package/es/components/Tearsheet/next/StackContext.d.ts +21 -0
  60. package/es/components/Tearsheet/next/StackContext.js +94 -0
  61. package/es/components/Tearsheet/next/Tearsheet.d.ts +13 -2
  62. package/es/components/Tearsheet/next/Tearsheet.js +46 -10
  63. package/es/components/Tearsheet/next/TearsheetBody.d.ts +6 -0
  64. package/es/components/Tearsheet/next/TearsheetBody.js +19 -7
  65. package/es/components/Tearsheet/next/TearsheetHeaderActions.js +9 -4
  66. package/es/components/Tearsheet/next/TearsheetHeaderContent.d.ts +22 -8
  67. package/es/components/Tearsheet/next/TearsheetHeaderContent.js +14 -27
  68. package/es/components/Tearsheet/next/_story-assets/StepTearsheet.d.ts +3 -2
  69. package/es/components/Tearsheet/next/index.d.ts +2 -0
  70. package/es/components/index.d.ts +2 -1
  71. package/es/global/js/hooks/useCreateComponentFocus.js +34 -4
  72. package/es/global/js/hooks/useIsomorphicEffect.d.ts +7 -1
  73. package/es/global/js/hooks/useIsomorphicEffect.js +1 -2
  74. package/es/global/js/hooks/useResizeObserver.js +4 -3
  75. package/es/global/js/hooks/useWindowResize.js +3 -2
  76. package/es/global/js/hooks/useWindowScroll.js +3 -2
  77. package/es/index.js +2 -2
  78. package/lib/components/Coachmark/Coachmark.d.ts +2 -1
  79. package/lib/components/Coachmark/Coachmark.js +6 -0
  80. package/lib/components/Coachmark/CoachmarkDragbar.d.ts +2 -1
  81. package/lib/components/Coachmark/CoachmarkDragbar.js +7 -0
  82. package/lib/components/Coachmark/CoachmarkHeader.d.ts +2 -1
  83. package/lib/components/Coachmark/CoachmarkHeader.js +7 -0
  84. package/lib/components/Coachmark/CoachmarkOverlay.d.ts +2 -1
  85. package/lib/components/Coachmark/CoachmarkOverlay.js +1 -0
  86. package/lib/components/Coachmark/CoachmarkTagline.d.ts +2 -1
  87. package/lib/components/Coachmark/CoachmarkTagline.js +7 -0
  88. package/lib/components/Coachmark/next/Coachmark/CoachmarkBubble/CoachmarkBubble.js +2 -1
  89. package/lib/components/Coachmark/utils/hooks.js +3 -2
  90. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.d.ts +2 -1
  91. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.js +7 -0
  92. package/lib/components/CoachmarkButton/CoachmarkButton.d.ts +2 -1
  93. package/lib/components/CoachmarkButton/CoachmarkButton.js +1 -0
  94. package/lib/components/CoachmarkFixed/CoachmarkFixed.d.ts +1 -0
  95. package/lib/components/CoachmarkFixed/CoachmarkFixed.js +7 -0
  96. package/lib/components/CoachmarkOverlayElement/CoachmarkOverlayElement.d.ts +2 -1
  97. package/lib/components/CoachmarkOverlayElement/CoachmarkOverlayElement.js +1 -0
  98. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.d.ts +2 -1
  99. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +1 -0
  100. package/lib/components/CoachmarkStack/CoachmarkStack.d.ts +2 -1
  101. package/lib/components/CoachmarkStack/CoachmarkStack.js +7 -0
  102. package/lib/components/CreateFullPage/CreateFullPage.js +1 -1
  103. package/lib/components/CreateTearsheet/CreateTearsheet.js +2 -2
  104. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +2 -21
  105. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +2 -1
  106. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +2 -1
  107. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +4 -0
  108. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +2 -1
  109. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +2 -1
  110. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.d.ts +1 -1
  111. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +6 -1
  112. package/lib/components/Datagrid/useResizeTable.js +2 -2
  113. package/lib/components/Datagrid/useSelectRows.js +2 -1
  114. package/lib/components/Datagrid/useStickyColumn.js +2 -1
  115. package/lib/components/PageHeader/next/PageHeader.js +3 -2
  116. package/lib/components/ScrollGradient/constants.js +2 -1
  117. package/lib/components/Tearsheet/TearsheetShell.js +3 -5
  118. package/lib/components/Tearsheet/next/StackContext.d.ts +21 -0
  119. package/lib/components/Tearsheet/next/StackContext.js +97 -0
  120. package/lib/components/Tearsheet/next/Tearsheet.d.ts +13 -2
  121. package/lib/components/Tearsheet/next/Tearsheet.js +44 -8
  122. package/lib/components/Tearsheet/next/TearsheetBody.d.ts +6 -0
  123. package/lib/components/Tearsheet/next/TearsheetBody.js +19 -7
  124. package/lib/components/Tearsheet/next/TearsheetHeaderActions.js +8 -3
  125. package/lib/components/Tearsheet/next/TearsheetHeaderContent.d.ts +22 -8
  126. package/lib/components/Tearsheet/next/TearsheetHeaderContent.js +12 -25
  127. package/lib/components/Tearsheet/next/_story-assets/StepTearsheet.d.ts +3 -2
  128. package/lib/components/Tearsheet/next/index.d.ts +2 -0
  129. package/lib/components/index.d.ts +2 -1
  130. package/lib/global/js/hooks/useCreateComponentFocus.js +34 -4
  131. package/lib/global/js/hooks/useIsomorphicEffect.d.ts +7 -1
  132. package/lib/global/js/hooks/useIsomorphicEffect.js +1 -2
  133. package/lib/global/js/hooks/useResizeObserver.js +3 -2
  134. package/lib/global/js/hooks/useWindowResize.js +2 -1
  135. package/lib/global/js/hooks/useWindowScroll.js +2 -1
  136. package/lib/index.js +15 -13
  137. package/package.json +14 -14
  138. package/scss/components/Tearsheet/_tearsheet.scss +11 -6
  139. package/scss/components/Tearsheet/_tearsheet_next.scss +218 -96
  140. package/telemetry.yml +11 -7
  141. package/es/components/Tearsheet/next/index.js +0 -8
  142. package/lib/components/Tearsheet/next/index.js +0 -14
@@ -28,11 +28,41 @@ const useCreateComponentFocus = _ref => {
28
28
  await wait(10);
29
29
  elm.focus();
30
30
  };
31
+ // FUNCTION TO ENSURE THE ELEMENT TARGETED IS NOT CONTAINED IN AN ELEMENT MARKED 'INERT'
32
+ const isNotContainedInInert = elm => {
33
+ if (!elm) return false;
34
+ const inertParent = elm.closest('[inert]');
35
+ return !inertParent || !inertParent.hasAttribute('inert') && !elm.disabled;
36
+ };
37
+ const getActiveStep = () => {
38
+ const allSteps = Array.from(document.querySelectorAll(blockClass));
39
+ return allSteps.find(el => {
40
+ let currentStep = el;
41
+ while (currentStep) {
42
+ if (currentStep.hasAttribute('inert')) return false;
43
+ currentStep = currentStep.parentElement;
44
+ }
45
+ return true;
46
+ });
47
+ };
48
+ const getFocusableElement = containingElement => {
49
+ const focusElementQuery = `button, input[type="button"], input, select, textarea, a[href]`;
50
+ // PREFER THE USER DEFINED firstFocusElement IF IT EXISTS
51
+ const firstFocusEl = containingElement.querySelector(firstFocusElement);
52
+ if (firstFocusEl && isNotContainedInInert(firstFocusEl) && !firstFocusEl.disabled) {
53
+ return firstFocusEl;
54
+ }
55
+ // BACKUP TO INTERACTIVE ELEMENT LIST
56
+ const bakFocusEl = Array.from(containingElement.querySelectorAll(focusElementQuery));
57
+ return bakFocusEl.find(el => isNotContainedInInert(el) && !el.disabled);
58
+ };
31
59
  if (previousState?.currentStep !== currentStep && currentStep > 0) {
32
- if (firstFocusElement) {
33
- const elm = document.querySelector(firstFocusElement);
34
- if (elm) {
35
- awaitFocus(elm);
60
+ // GET THE CURRENT STEP ELEMENT
61
+ const activeStepElement = getActiveStep();
62
+ if (activeStepElement && isNotContainedInInert(activeStepElement)) {
63
+ const focusEl = getFocusableElement(activeStepElement);
64
+ if (focusEl) {
65
+ awaitFocus(focusEl);
36
66
  }
37
67
  }
38
68
  }
@@ -1,2 +1,8 @@
1
- export const useIsomorphicEffect: typeof useEffect;
1
+ /**
2
+ * Copyright IBM Corp. 2024, 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
2
7
  import { useEffect } from 'react';
8
+ export declare const useIsomorphicEffect: typeof useEffect;
@@ -7,8 +7,7 @@
7
7
 
8
8
  import { useLayoutEffect, useEffect } from 'react';
9
9
 
10
- // Originally from `@carbon/react`, https://github.com/carbon-design-system/carbon/blob/main/packages/react/src/internal/useIsomorphicEffect.js
11
- // useLayoutEffect on the client, useEffect on the server
10
+ // Custom hook that uses either `useLayoutEffect` or `useEffect` based on the environment (client-side or server-side).
12
11
  const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
13
12
 
14
13
  export { useIsomorphicEffect };
@@ -5,7 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { useState, useRef, useEffect, useLayoutEffect } from 'react';
8
+ import { useState, useRef, useEffect } from 'react';
9
+ import { useIsomorphicEffect } from './useIsomorphicEffect.js';
9
10
 
10
11
  const useResizeObserver = (ref, onResize) => {
11
12
  const [width, setWidth] = useState(-1);
@@ -13,7 +14,7 @@ const useResizeObserver = (ref, onResize) => {
13
14
  const entriesToHandle = useRef(null);
14
15
  const cb = useRef(onResize);
15
16
  useEffect(() => {
16
- // ref for onResize removes it as dependency from useLayoutEffect
17
+ // ref for onResize removes it as dependency from useIsomorphicEffect
17
18
  // This significantly reduces repeated calls if a function is redefined on every
18
19
  // render
19
20
  cb.current = onResize;
@@ -35,7 +36,7 @@ const useResizeObserver = (ref, onResize) => {
35
36
  // Ignoring exhaustive-deps as we do NOT want to include the ref in dep array
36
37
  // eslint-disable-next-line react-hooks/exhaustive-deps
37
38
  }, [width, height]);
38
- useLayoutEffect(() => {
39
+ useIsomorphicEffect(() => {
39
40
  if (!ref?.current) {
40
41
  return;
41
42
  }
@@ -5,7 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { useRef, useLayoutEffect } from 'react';
8
+ import { useRef } from 'react';
9
+ import { useIsomorphicEffect } from './useIsomorphicEffect.js';
9
10
 
10
11
  const windowExists = typeof window !== `undefined`;
11
12
  const getWindowSize = () => {
@@ -47,7 +48,7 @@ const useWindowResize = function (effect, deps) {
47
48
  windowSize.current = newVal.current;
48
49
  throttleTimeout.current = null;
49
50
  };
50
- useLayoutEffect(() => {
51
+ useIsomorphicEffect(() => {
51
52
  const handleResize = () => {
52
53
  if (throttleInterval) {
53
54
  if (throttleTimeout.current === null) {
@@ -5,7 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { useRef, useLayoutEffect } from 'react';
8
+ import { useRef } from 'react';
9
+ import { useIsomorphicEffect } from './useIsomorphicEffect.js';
9
10
  import { scrollableAncestor } from '../utils/scrollableAncestor.js';
10
11
 
11
12
  const windowExists = typeof window !== `undefined`;
@@ -44,7 +45,7 @@ const useTargetScroll = function (target, effect, deps, throttleInterval) {
44
45
  scrollPosition.current = newVal.current;
45
46
  throttleTimeout.current = null;
46
47
  };
47
- useLayoutEffect(() => {
48
+ useIsomorphicEffect(() => {
48
49
  const handleScroll = () => {
49
50
  if (throttleInterval) {
50
51
  if (throttleTimeout.current === null) {
package/es/index.js CHANGED
@@ -62,8 +62,8 @@ export { TruncatedText as preview__TruncatedText } from './components/TruncatedT
62
62
  export { FeatureFlags as preview__FeatureFlags, useFeatureFlag as preview__useFeatureFlag, useFeatureFlags as preview__useFeatureFlags } from './components/FeatureFlags/index.js';
63
63
  import * as index$3 from './components/PageHeader/next/index.js';
64
64
  export { index$3 as preview__PageHeader };
65
- import * as index$4 from './components/Tearsheet/next/index.js';
66
- export { index$4 as preview__Tearsheet };
65
+ export { Tearsheet as preview__Tearsheet } from './components/Tearsheet/next/Tearsheet.js';
66
+ export { StackProvider } from './components/Tearsheet/next/StackContext.js';
67
67
  export { BigNumber as previewCandidate__BigNumber } from './components/BigNumber/BigNumber.js';
68
68
  export { Coachmark as previewCandidate__Coachmark } from './components/Coachmark/Coachmark.js';
69
69
  export { BEACON_KIND, COACHMARK_ALIGNMENT, COACHMARK_OVERLAY_KIND } from './components/Coachmark/utils/enums.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -87,6 +87,7 @@ export interface CoachmarkProps {
87
87
  * Coachmarks are used to call out specific functionality or concepts
88
88
  * within the UI that may not be intuitive but are important for the
89
89
  * user to gain understanding of the product's main value and discover new use cases.
90
+ * @deprecated This component is deprecated.
90
91
  */
91
92
  export declare const Coachmark: React.ForwardRefExoticComponent<CoachmarkProps & React.RefAttributes<HTMLElement>>;
92
93
  export declare const deprecatedProps: {
@@ -38,6 +38,7 @@ const defaults = {
38
38
  * Coachmarks are used to call out specific functionality or concepts
39
39
  * within the UI that may not be intuitive but are important for the
40
40
  * user to gain understanding of the product's main value and discover new use cases.
41
+ * @deprecated This component is deprecated.
41
42
  */
42
43
 
43
44
  const Coachmark = /*#__PURE__*/React.forwardRef((_ref, ref) => {
@@ -217,6 +218,11 @@ const overlayRefType = typeof HTMLElement === 'undefined' ? index.default.object
217
218
  // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
218
219
  index.default.instanceOf(HTMLElement);
219
220
 
221
+ /**@ts-ignore*/
222
+ Coachmark.deprecated = {
223
+ level: 'warn',
224
+ details: `${componentName} is deprecated.`
225
+ };
220
226
  // Return a placeholder if not released and not enabled by feature flag
221
227
 
222
228
  // The display name of the component, used by React. Note that displayName
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -35,6 +35,7 @@ interface CoachmarkDragbarProps {
35
35
  /**
36
36
  * DO NOT USE. This component is for the exclusive use
37
37
  * of other Onboarding components.
38
+ * @deprecated This component is deprecated.
38
39
  */
39
40
  export declare const CoachmarkDragbar: React.ForwardRefExoticComponent<Omit<CoachmarkDragbarProps, "ref"> & React.RefAttributes<HTMLElement>>;
40
41
  export {};
@@ -35,6 +35,7 @@ const defaults = {
35
35
  /**
36
36
  * DO NOT USE. This component is for the exclusive use
37
37
  * of other Onboarding components.
38
+ * @deprecated This component is deprecated.
38
39
  */
39
40
  const CoachmarkDragbar = /*#__PURE__*/React.forwardRef((_ref, ref) => {
40
41
  let {
@@ -97,6 +98,12 @@ const CoachmarkDragbar = /*#__PURE__*/React.forwardRef((_ref, ref) => {
97
98
  }));
98
99
  });
99
100
 
101
+ /**@ts-ignore*/
102
+ CoachmarkDragbar.deprecated = {
103
+ level: 'warn',
104
+ details: `${componentName} is deprecated.`
105
+ };
106
+
100
107
  // Return a placeholder if not released and not enabled by feature flag
101
108
 
102
109
  // The display name of the component, used by React. Note that displayName
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -22,6 +22,7 @@ interface CoachmarkHeaderProps {
22
22
  /**
23
23
  * DO NOT USE. This component is for the exclusive use
24
24
  * of other Onboarding components.
25
+ * @deprecated This component is deprecated.
25
26
  */
26
27
  export declare const CoachmarkHeader: React.ForwardRefExoticComponent<CoachmarkHeaderProps & React.RefAttributes<HTMLElement>>;
27
28
  export {};
@@ -29,6 +29,7 @@ const defaults = {
29
29
  /**
30
30
  * DO NOT USE. This component is for the exclusive use
31
31
  * of other Onboarding components.
32
+ * @deprecated This component is deprecated.
32
33
  */
33
34
  const CoachmarkHeader = /*#__PURE__*/React.forwardRef((_ref, ref) => {
34
35
  let {
@@ -55,6 +56,12 @@ const CoachmarkHeader = /*#__PURE__*/React.forwardRef((_ref, ref) => {
55
56
  })));
56
57
  });
57
58
 
59
+ /**@ts-ignore*/
60
+ CoachmarkHeader.deprecated = {
61
+ level: 'warn',
62
+ details: `${componentName} is deprecated.`
63
+ };
64
+
58
65
  // Return a placeholder if not released and not enabled by feature flag
59
66
 
60
67
  // The display name of the component, used by React. Note that displayName
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -41,6 +41,7 @@ interface CoachmarkOverlayProps {
41
41
  /**
42
42
  * DO NOT USE. This component is for the exclusive use
43
43
  * of other Onboarding components.
44
+ * @deprecated This component is deprecated.
44
45
  */
45
46
  export declare const CoachmarkOverlay: React.ForwardRefExoticComponent<Omit<CoachmarkOverlayProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
46
47
  export {};
@@ -34,6 +34,7 @@ const defaults = {
34
34
  /**
35
35
  * DO NOT USE. This component is for the exclusive use
36
36
  * of other Onboarding components.
37
+ * @deprecated This component is deprecated.
37
38
  */
38
39
  const CoachmarkOverlay = /*#__PURE__*/React.forwardRef((props, ref) => {
39
40
  const {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -26,6 +26,7 @@ interface CoachmarkTaglineProps {
26
26
  /**
27
27
  * DO NOT USE. This component is for the exclusive use
28
28
  * of other Onboarding components.
29
+ * @deprecated This component is deprecated.
29
30
  */
30
31
  export declare const CoachmarkTagline: React.ForwardRefExoticComponent<CoachmarkTaglineProps & React.RefAttributes<HTMLDivElement>>;
31
32
  export {};
@@ -30,6 +30,7 @@ const defaults = {
30
30
  /**
31
31
  * DO NOT USE. This component is for the exclusive use
32
32
  * of other Onboarding components.
33
+ * @deprecated This component is deprecated.
33
34
  */
34
35
  const CoachmarkTagline = /*#__PURE__*/React.forwardRef((_ref, ref) => {
35
36
  let {
@@ -66,6 +67,12 @@ const CoachmarkTagline = /*#__PURE__*/React.forwardRef((_ref, ref) => {
66
67
  })));
67
68
  });
68
69
 
70
+ /**@ts-ignore*/
71
+ CoachmarkTagline.deprecated = {
72
+ level: 'warn',
73
+ details: `${componentName} is deprecated.`
74
+ };
75
+
69
76
  // Return a placeholder if not released and not enabled by feature flag
70
77
 
71
78
  // The display name of the component, used by React. Note that displayName
@@ -12,6 +12,7 @@ var cx = require('classnames');
12
12
  var react = require('@carbon/react');
13
13
  var React = require('react');
14
14
  var settings = require('../../../../../settings.js');
15
+ var useIsomorphicEffect = require('../../../../../global/js/hooks/useIsomorphicEffect.js');
15
16
  var floatingUi_reactDom = require('../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js');
16
17
  var floatingUi_dom = require('../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js');
17
18
 
@@ -34,7 +35,7 @@ const CoachmarkBubble = /*#__PURE__*/React.forwardRef((props, ref) => {
34
35
  const tooltipRef = React.useRef(null);
35
36
  const arrowRef = React.useRef(null);
36
37
  const targetRef = React.useRef(null);
37
- React.useLayoutEffect(() => {
38
+ useIsomorphicEffect.useIsomorphicEffect(() => {
38
39
  if (target) {
39
40
  if (typeof target === 'string') {
40
41
  if (target === '#' || target.trim() === '') {
@@ -9,6 +9,7 @@
9
9
 
10
10
  var React = require('react');
11
11
  var enums = require('./enums.js');
12
+ var useIsomorphicEffect = require('../../../global/js/hooks/useIsomorphicEffect.js');
12
13
 
13
14
  /**
14
15
  * Detects when a user clicks outside of the element
@@ -21,10 +22,10 @@ var enums = require('./enums.js');
21
22
  function useClickOutsideElement(coachmarkRef, overlayRef, overlayKind, callback) {
22
23
  const cb = React.useRef(undefined);
23
24
  const isTooltip = overlayKind === enums.COACHMARK_OVERLAY_KIND.TOOLTIP;
24
- React.useLayoutEffect(() => {
25
+ useIsomorphicEffect.useIsomorphicEffect(() => {
25
26
  cb.current = callback;
26
27
  }, [callback]);
27
- React.useEffect(() => {
28
+ useIsomorphicEffect.useIsomorphicEffect(() => {
28
29
  function handleClickOutside(event) {
29
30
  const isOverlayOutside = overlayRef.current && !overlayRef.current.contains(event.target);
30
31
  const isOutsideCoachmark = coachmarkRef.current && !coachmarkRef.current.contains(event.target);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -35,5 +35,6 @@ export interface CoachmarkBeaconProps {
35
35
  }
36
36
  /**
37
37
  * Use beacon for the target prop of a Coachmark component.
38
+ * @deprecated This component is deprecated.
38
39
  */
39
40
  export declare const CoachmarkBeacon: React.ForwardRefExoticComponent<CoachmarkBeaconProps & React.RefAttributes<HTMLDivElement>>;
@@ -25,6 +25,7 @@ const defaults = {
25
25
  };
26
26
  /**
27
27
  * Use beacon for the target prop of a Coachmark component.
28
+ * @deprecated This component is deprecated.
28
29
  */
29
30
  const CoachmarkBeacon = /*#__PURE__*/React.forwardRef((props, ref) => {
30
31
  const {
@@ -53,6 +54,12 @@ const CoachmarkBeacon = /*#__PURE__*/React.forwardRef((props, ref) => {
53
54
  })))));
54
55
  });
55
56
 
57
+ /**@ts-ignore*/
58
+ CoachmarkBeacon.deprecated = {
59
+ level: 'warn',
60
+ details: `${componentName} is deprecated.`
61
+ };
62
+
56
63
  // Return a placeholder if not released and not enabled by feature flag
57
64
 
58
65
  // The display name of the component, used by React. Note that displayName
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -17,5 +17,6 @@ export interface CoachmarkButtonProps {
17
17
  }
18
18
  /**
19
19
  * Use CoachmarkButton for the target prop of a Coachmark component.
20
+ * @deprecated This component is deprecated.
20
21
  */
21
22
  export declare const CoachmarkButton: React.ForwardRefExoticComponent<CoachmarkButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -45,6 +45,7 @@ const componentName = 'CoachmarkButton';
45
45
 
46
46
  /**
47
47
  * Use CoachmarkButton for the target prop of a Coachmark component.
48
+ * @deprecated This component is deprecated.
48
49
  */
49
50
  const CoachmarkButton = /*#__PURE__*/React.forwardRef((_ref, ref) => {
50
51
  let {
@@ -47,5 +47,6 @@ export interface CoachmarkFixedProps {
47
47
  * within the UI that may not be intuitive but are important for the
48
48
  * user to gain understanding of the product's main value and discover new use cases.
49
49
  * This variant allows the a coachmark overlay to be displayed by interacting with the tagline.
50
+ * @deprecated This component is deprecated.
50
51
  */
51
52
  export declare const CoachmarkFixed: React.ForwardRefExoticComponent<CoachmarkFixedProps & React.RefAttributes<HTMLDivElement>>;
@@ -40,6 +40,7 @@ const defaults = {
40
40
  * within the UI that may not be intuitive but are important for the
41
41
  * user to gain understanding of the product's main value and discover new use cases.
42
42
  * This variant allows the a coachmark overlay to be displayed by interacting with the tagline.
43
+ * @deprecated This component is deprecated.
43
44
  */
44
45
  const CoachmarkFixed = /*#__PURE__*/React.forwardRef((_ref, ref) => {
45
46
  let {
@@ -165,6 +166,12 @@ const CoachmarkFixed = /*#__PURE__*/React.forwardRef((_ref, ref) => {
165
166
  portalNode?.current)));
166
167
  });
167
168
 
169
+ /**@ts-ignore*/
170
+ CoachmarkFixed.deprecated = {
171
+ level: 'warn',
172
+ details: `${componentName} is deprecated.`
173
+ };
174
+
168
175
  // Return a placeholder if not released and not enabled by feature flag
169
176
 
170
177
  // The display name of the component, used by React. Note that displayName
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -28,5 +28,6 @@ export interface CoachmarkOverlayElementProps {
28
28
  * Component to be displayed within a CoachmarkOverlayElements container.
29
29
  * Can be used 1 to N number, to display content in a Coachmark's overlay
30
30
  * in a carousel fashion.
31
+ * @deprecated This component is deprecated.
31
32
  */
32
33
  export declare const CoachmarkOverlayElement: React.ForwardRefExoticComponent<CoachmarkOverlayElementProps & React.RefAttributes<HTMLDivElement>>;
@@ -21,6 +21,7 @@ const componentName = 'CoachmarkOverlayElement';
21
21
  * Component to be displayed within a CoachmarkOverlayElements container.
22
22
  * Can be used 1 to N number, to display content in a Coachmark's overlay
23
23
  * in a carousel fashion.
24
+ * @deprecated This component is deprecated.
24
25
  */
25
26
  const CoachmarkOverlayElement = /*#__PURE__*/React.forwardRef((_ref, ref) => {
26
27
  let {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -52,5 +52,6 @@ export interface CoachmarkOverlayElementsProps {
52
52
  /**
53
53
  * Composable container to allow for the displaying of CoachmarkOverlayElement
54
54
  * components in a carousel fashion.
55
+ * @deprecated This component is deprecated.
55
56
  */
56
57
  export declare const CoachmarkOverlayElements: React.ForwardRefExoticComponent<CoachmarkOverlayElementsProps & React.RefAttributes<HTMLDivElement>>;
@@ -49,6 +49,7 @@ const defaults = {
49
49
  /**
50
50
  * Composable container to allow for the displaying of CoachmarkOverlayElement
51
51
  * components in a carousel fashion.
52
+ * @deprecated This component is deprecated.
52
53
  */
53
54
  const CoachmarkOverlayElements = /*#__PURE__*/React.forwardRef((_ref, ref) => {
54
55
  let {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -66,6 +66,7 @@ interface CoachmarkStackProps {
66
66
  * within the UI that may not be intuitive but are important for the
67
67
  * user to gain understanding of the product's main value and discover new use cases.
68
68
  * This variant allows the stacking of multiple coachmark overlays to be displayed by interacting with the tagline.
69
+ * @deprecated This component is deprecated.
69
70
  */
70
71
  export declare const CoachmarkStack: React.ForwardRefExoticComponent<CoachmarkStackProps & React.RefAttributes<HTMLDivElement>>;
71
72
  export {};
@@ -47,6 +47,7 @@ const defaults = {
47
47
  * within the UI that may not be intuitive but are important for the
48
48
  * user to gain understanding of the product's main value and discover new use cases.
49
49
  * This variant allows the stacking of multiple coachmark overlays to be displayed by interacting with the tagline.
50
+ * @deprecated This component is deprecated.
50
51
  */
51
52
  const CoachmarkStack = /*#__PURE__*/React.forwardRef((_ref, ref) => {
52
53
  let {
@@ -215,6 +216,12 @@ const CoachmarkStack = /*#__PURE__*/React.forwardRef((_ref, ref) => {
215
216
  }), portalNode?.current ? /*#__PURE__*/ReactDOM.createPortal(wrappedChildren, portalNode?.current) : null));
216
217
  });
217
218
 
219
+ /**@ts-ignore*/
220
+ CoachmarkStack.deprecated = {
221
+ level: 'warn',
222
+ details: `${componentName} is deprecated.`
223
+ };
224
+
218
225
  // Return a placeholder if not released and not enabled by feature flag
219
226
 
220
227
  // The display name of the component, used by React. Note that displayName
@@ -113,7 +113,7 @@ const CreateFullPage = /*#__PURE__*/React.forwardRef((_ref, ref) => {
113
113
  useCreateComponentFocus.useCreateComponentFocus({
114
114
  previousState,
115
115
  currentStep,
116
- blockClass,
116
+ blockClass: `.${blockClass} .${settings.pkg.prefix}--create-full-page__step`,
117
117
  onMount,
118
118
  firstFocusElement
119
119
  });
@@ -101,9 +101,9 @@ const CreateTearsheet = /*#__PURE__*/React.forwardRef((_ref, ref) => {
101
101
  useCreateComponentFocus.useCreateComponentFocus({
102
102
  previousState,
103
103
  currentStep,
104
- blockClass,
104
+ blockClass: `.${blockClass} .${settings.pkg.prefix}--tearsheet-create__step`,
105
105
  onMount,
106
- firstFocusElement
106
+ firstFocusElement: firstFocusElement || selectorPrimaryFocus
107
107
  });
108
108
  useValidCreateStepCount.useValidCreateStepCount(stepData.length, componentName);
109
109
  useResetCreateComponent.useResetCreateComponent({
@@ -92,31 +92,11 @@ const CreateTearsheetStep = /*#__PURE__*/React.forwardRef((_ref, ref) => {
92
92
  React.useEffect(() => {
93
93
  setShouldIncludeStep(includeStep);
94
94
  }, [includeStep, stepsContext, title]);
95
- const setFocusChildrenTabIndex = (childInputs, value) => {
96
- if (childInputs?.length) {
97
- childInputs.forEach(child => {
98
- child.tabIndex = value;
99
- });
100
- }
101
- };
102
95
 
103
96
  // Whenever we are the current step, supply our disableSubmit and onNext values to the
104
97
  // steps container context so that it can manage the 'Next' button appropriately.
105
98
  React.useEffect(() => {
106
- const focusElementQuery = `button, input, select, textarea, a`;
107
- if (stepNumber !== stepsContext?.currentStep) {
108
- // Specify tab-index -1 for focusable elements not contained
109
- // in the current step so that the useFocus hook can exclude
110
- // from the focus trap
111
- const childInputs = stepRefValue?.querySelectorAll(focusElementQuery);
112
- setFocusChildrenTabIndex(childInputs, -1);
113
- }
114
99
  if (stepNumber === stepsContext?.currentStep) {
115
- // Specify tab-index 0 for current step focusable elements
116
- // for the useFocus hook to know which elements to include
117
- // in focus trap
118
- const childInputs = stepRefValue?.querySelectorAll(focusElementQuery);
119
- setFocusChildrenTabIndex(childInputs, 0);
120
100
  stepsContext.setIsDisabled(!!disableSubmit);
121
101
  stepsContext?.setOnNext(onNext); // needs to be updated here otherwise there could be stale state values from only initially setting onNext
122
102
  stepsContext?.setOnPrevious(onPrevious);
@@ -141,7 +121,8 @@ const CreateTearsheetStep = /*#__PURE__*/React.forwardRef((_ref, ref) => {
141
121
  return null;
142
122
  };
143
123
  return stepsContext ? /*#__PURE__*/React.createElement("div", {
144
- ref: stepRef
124
+ ref: stepRef,
125
+ inert: stepNumber !== stepsContext?.currentStep
145
126
  }, /*#__PURE__*/React.createElement(react.Grid, _rollupPluginBabelHelpers.extends({}, rest, {
146
127
  className: cx(blockClass, className, {
147
128
  [`${blockClass}__step--hidden-step`]: stepNumber !== stepsContext?.currentStep,
@@ -13,11 +13,12 @@ var react = require('@carbon/react');
13
13
  var cx = require('classnames');
14
14
  var settings = require('../../../settings.js');
15
15
  var stateReducer = require('./addons/stateReducer.js');
16
+ var useIsomorphicEffect = require('../../../global/js/hooks/useIsomorphicEffect.js');
16
17
 
17
18
  const blockClass = `${settings.pkg.prefix}--datagrid`;
18
19
  const SelectAll = datagridState => {
19
20
  const [windowSize, setWindowSize] = React.useState();
20
- React.useLayoutEffect(() => {
21
+ useIsomorphicEffect.useIsomorphicEffect(() => {
21
22
  setWindowSize(window.innerWidth);
22
23
  /* istanbul ignore next */
23
24
  function updateSize() {
@@ -16,6 +16,7 @@ var cx = require('classnames');
16
16
  var react = require('@carbon/react');
17
17
  var icons = require('@carbon/react/icons');
18
18
  var settings = require('../../../settings.js');
19
+ var useIsomorphicEffect = require('../../../global/js/hooks/useIsomorphicEffect.js');
19
20
 
20
21
  const blockClass = `${settings.pkg.prefix}--datagrid`;
21
22
  const SELECT_ALL_PAGE_ROWS = 'pageRows';
@@ -44,7 +45,7 @@ const SelectAllWithToggle = _ref => {
44
45
  }
45
46
  }, [isAllRowsSelected, selectAllMode, onSelectAllRows]);
46
47
  const [windowSize, setWindowSize] = React.useState();
47
- React.useLayoutEffect(() => {
48
+ useIsomorphicEffect.useIsomorphicEffect(() => {
48
49
  setWindowSize(window.innerWidth);
49
50
  function updateSize() {
50
51
  setWindowSize(window.innerWidth);
@@ -97,6 +97,10 @@ const CustomizeColumnsTearsheet = _ref => {
97
97
  }, [columnObjects]);
98
98
  const string = searchText.trim().toLowerCase();
99
99
  React.useEffect(() => {
100
+ // prevent this effect from running when columns are being resized
101
+ if (!isOpen) {
102
+ return;
103
+ }
100
104
  if (prevColumnDefinitions.current !== columnDefinitions) {
101
105
  setColumnObjects(columnDefinitions);
102
106
  }