@carbon/ibm-products 2.84.0 → 2.85.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 (97) hide show
  1. package/css/index-full-carbon.css +18 -13
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +18 -13
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +18 -13
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +18 -13
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Coachmark/next/Coachmark/ContentHeader.js +2 -1
  18. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +12 -1
  19. package/es/components/CreateTearsheet/CreateTearsheet.d.ts +1 -0
  20. package/es/components/CreateTearsheet/CreateTearsheet.js +3 -0
  21. package/es/components/CreateTearsheet/CreateTearsheetStep.d.ts +4 -0
  22. package/es/components/CreateTearsheet/CreateTearsheetStep.js +7 -1
  23. package/es/components/EditInPlace/EditInPlace.d.ts +12 -1
  24. package/es/components/EditInPlace/EditInPlace.js +52 -31
  25. package/es/components/ImportModal/ImportModal.d.ts +5 -1
  26. package/es/components/ImportModal/ImportModal.js +12 -6
  27. package/es/components/PageHeader/next/PageHeader.d.ts +15 -238
  28. package/es/components/PageHeader/next/PageHeader.js +25 -637
  29. package/es/components/PageHeader/next/PageHeaderBreadcrumbBar.d.ts +41 -0
  30. package/es/components/PageHeader/next/PageHeaderBreadcrumbBar.js +74 -0
  31. package/es/components/PageHeader/next/PageHeaderBreadcrumbOverflow.d.ts +12 -0
  32. package/es/components/PageHeader/next/PageHeaderBreadcrumbOverflow.js +82 -0
  33. package/es/components/PageHeader/next/PageHeaderContent.d.ts +39 -0
  34. package/es/components/PageHeader/next/PageHeaderContent.js +129 -0
  35. package/es/components/PageHeader/next/PageHeaderContentPageActions.d.ts +52 -0
  36. package/es/components/PageHeader/next/PageHeaderContentPageActions.js +126 -0
  37. package/es/components/PageHeader/next/PageHeaderContentText.d.ts +44 -0
  38. package/es/components/PageHeader/next/PageHeaderContentText.js +54 -0
  39. package/es/components/PageHeader/next/PageHeaderHeroImage.d.ts +36 -0
  40. package/es/components/PageHeader/next/PageHeaderHeroImage.js +62 -0
  41. package/es/components/PageHeader/next/PageHeaderScrollButton.d.ts +13 -0
  42. package/es/components/PageHeader/next/PageHeaderScrollButton.js +73 -0
  43. package/es/components/PageHeader/next/PageHeaderTabBar.d.ts +19 -0
  44. package/es/components/PageHeader/next/PageHeaderTabBar.js +66 -0
  45. package/es/components/PageHeader/next/PageHeaderTagOverflow.d.ts +13 -0
  46. package/es/components/PageHeader/next/PageHeaderTagOverflow.js +68 -0
  47. package/es/components/PageHeader/next/PageHeaderTitleBreadcrumb.d.ts +9 -0
  48. package/es/components/PageHeader/next/PageHeaderTitleBreadcrumb.js +43 -0
  49. package/es/components/PageHeader/next/index.d.ts +3 -2
  50. package/es/components/PageHeader/next/index.js +11 -1
  51. package/es/global/js/hooks/useCreateComponentStepChange.d.ts +2 -1
  52. package/es/global/js/hooks/useCreateComponentStepChange.js +3 -2
  53. package/es/global/js/hooks/usePortalTarget.js +1 -1
  54. package/es/global/js/utils/makeDraggable/makeDraggable.js +22 -13
  55. package/lib/components/Coachmark/next/Coachmark/ContentHeader.js +2 -1
  56. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +12 -1
  57. package/lib/components/CreateTearsheet/CreateTearsheet.d.ts +1 -0
  58. package/lib/components/CreateTearsheet/CreateTearsheet.js +3 -0
  59. package/lib/components/CreateTearsheet/CreateTearsheetStep.d.ts +4 -0
  60. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +7 -1
  61. package/lib/components/EditInPlace/EditInPlace.d.ts +12 -1
  62. package/lib/components/EditInPlace/EditInPlace.js +50 -29
  63. package/lib/components/ImportModal/ImportModal.d.ts +5 -1
  64. package/lib/components/ImportModal/ImportModal.js +12 -6
  65. package/lib/components/PageHeader/next/PageHeader.d.ts +15 -238
  66. package/lib/components/PageHeader/next/PageHeader.js +42 -654
  67. package/lib/components/PageHeader/next/PageHeaderBreadcrumbBar.d.ts +41 -0
  68. package/lib/components/PageHeader/next/PageHeaderBreadcrumbBar.js +76 -0
  69. package/lib/components/PageHeader/next/PageHeaderBreadcrumbOverflow.d.ts +12 -0
  70. package/lib/components/PageHeader/next/PageHeaderBreadcrumbOverflow.js +84 -0
  71. package/lib/components/PageHeader/next/PageHeaderContent.d.ts +39 -0
  72. package/lib/components/PageHeader/next/PageHeaderContent.js +131 -0
  73. package/lib/components/PageHeader/next/PageHeaderContentPageActions.d.ts +52 -0
  74. package/lib/components/PageHeader/next/PageHeaderContentPageActions.js +128 -0
  75. package/lib/components/PageHeader/next/PageHeaderContentText.d.ts +44 -0
  76. package/lib/components/PageHeader/next/PageHeaderContentText.js +56 -0
  77. package/lib/components/PageHeader/next/PageHeaderHeroImage.d.ts +36 -0
  78. package/lib/components/PageHeader/next/PageHeaderHeroImage.js +64 -0
  79. package/lib/components/PageHeader/next/PageHeaderScrollButton.d.ts +13 -0
  80. package/lib/components/PageHeader/next/PageHeaderScrollButton.js +75 -0
  81. package/lib/components/PageHeader/next/PageHeaderTabBar.d.ts +19 -0
  82. package/lib/components/PageHeader/next/PageHeaderTabBar.js +68 -0
  83. package/lib/components/PageHeader/next/PageHeaderTagOverflow.d.ts +13 -0
  84. package/lib/components/PageHeader/next/PageHeaderTagOverflow.js +70 -0
  85. package/lib/components/PageHeader/next/PageHeaderTitleBreadcrumb.d.ts +9 -0
  86. package/lib/components/PageHeader/next/PageHeaderTitleBreadcrumb.js +45 -0
  87. package/lib/components/PageHeader/next/index.d.ts +3 -2
  88. package/lib/components/PageHeader/next/index.js +20 -10
  89. package/lib/global/js/hooks/useCreateComponentStepChange.d.ts +2 -1
  90. package/lib/global/js/hooks/useCreateComponentStepChange.js +3 -2
  91. package/lib/global/js/hooks/usePortalTarget.js +1 -1
  92. package/lib/global/js/utils/makeDraggable/makeDraggable.js +22 -13
  93. package/package.json +7 -7
  94. package/scss/components/Datagrid/_datagrid.scss +7 -10
  95. package/scss/components/EditInPlace/_edit-in-place.scss +11 -3
  96. package/scss/components/PageHeader/_page-header.scss +2 -1
  97. package/telemetry.yml +13 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
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
+ */
7
+ import React from 'react';
8
+ /**
9
+ * ----------------
10
+ * PageHeaderHeroImage
11
+ * ----------------
12
+ */
13
+ export interface PageHeaderHeroImageProps {
14
+ /**
15
+ * Provide child elements to be rendered inside PageHeaderHeroImage.
16
+ */
17
+ children?: React.ReactNode;
18
+ /**
19
+ * Specify an optional className to be added to your PageHeaderHeroImage
20
+ */
21
+ className?: string;
22
+ }
23
+ export declare const PageHeaderHeroImage: {
24
+ ({ className, children, ...other }: PageHeaderHeroImageProps): React.JSX.Element;
25
+ displayName: string;
26
+ propTypes: {
27
+ /**
28
+ * Provide child elements to be rendered inside PageHeaderHeroImage.
29
+ */
30
+ children: any;
31
+ /**
32
+ * Specify an optional className to be added to your PageHeaderHeroImage
33
+ */
34
+ className: any;
35
+ };
36
+ };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2026
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
+ */
7
+
8
+ 'use strict';
9
+
10
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
11
+ var React = require('react');
12
+ var index = require('../../../_virtual/index.js');
13
+ var cx = require('classnames');
14
+ var react = require('@carbon/react');
15
+ var layout = require('@carbon/layout');
16
+ var PageHeaderUtils = require('../PageHeaderUtils.js');
17
+
18
+ /**
19
+ * ----------------
20
+ * PageHeaderHeroImage
21
+ * ----------------
22
+ */
23
+
24
+ const PageHeaderHeroImage = _ref => {
25
+ let {
26
+ className,
27
+ children,
28
+ ...other
29
+ } = _ref;
30
+ const [lgBreakpoint, setLgBreakpoint] = React.useState(false);
31
+ const classNames = cx({
32
+ [`${PageHeaderUtils.blockClass}__hero-image`]: true
33
+ }, className);
34
+ const lgMediaQuery = `(min-width: ${layout.breakpoints.lg.width})`;
35
+ React.useEffect(() => {
36
+ const listener = event => {
37
+ setLgBreakpoint(event.matches);
38
+ };
39
+ const mediaQueryList = window.matchMedia(lgMediaQuery);
40
+ mediaQueryList.addEventListener('change', listener);
41
+ setLgBreakpoint(mediaQueryList.matches);
42
+ return () => {
43
+ mediaQueryList.removeEventListener('change', listener);
44
+ };
45
+ }, [lgMediaQuery]);
46
+ return /*#__PURE__*/React.createElement(react.AspectRatio, _rollupPluginBabelHelpers.extends({
47
+ className: classNames
48
+ }, other, {
49
+ ratio: lgBreakpoint ? '2x1' : '3x2'
50
+ }), children);
51
+ };
52
+ PageHeaderHeroImage.displayName = 'PageHeaderHeroImage';
53
+ PageHeaderHeroImage.propTypes = {
54
+ /**
55
+ * Provide child elements to be rendered inside PageHeaderHeroImage.
56
+ */
57
+ children: index.default.node,
58
+ /**
59
+ * Specify an optional className to be added to your PageHeaderHeroImage
60
+ */
61
+ className: index.default.string
62
+ };
63
+
64
+ exports.PageHeaderHeroImage = PageHeaderHeroImage;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
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
+ */
7
+ import React from 'react';
8
+ import { IconButtonProps } from '@carbon/react';
9
+ export interface PageHeaderScrollButtonProps extends IconButtonProps {
10
+ collapseText?: string;
11
+ expandText?: string;
12
+ }
13
+ export declare const PageHeaderScrollButton: React.ForwardRefExoticComponent<PageHeaderScrollButtonProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2026
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
+ */
7
+
8
+ 'use strict';
9
+
10
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
11
+ var React = require('react');
12
+ var cx = require('classnames');
13
+ var react = require('@carbon/react');
14
+ var icons = require('@carbon/react/icons');
15
+ var context = require('./context.js');
16
+ var utils = require('./utils.js');
17
+ var settings = require('../../../settings.js');
18
+
19
+ const PageHeaderScrollButton = /*#__PURE__*/React.forwardRef(function PageHeaderExpander(_ref, ref) {
20
+ let {
21
+ className,
22
+ children,
23
+ label,
24
+ onClick,
25
+ collapseText = 'Collapse',
26
+ expandText = 'Expand',
27
+ ...other
28
+ } = _ref;
29
+ const {
30
+ refs,
31
+ fullyCollapsed
32
+ } = context.usePageHeader();
33
+ const handleScroller = isFullyCollapsed => {
34
+ if (!refs?.contentRef?.current) {
35
+ return;
36
+ }
37
+ const scrollableTarget = utils.scrollableAncestor(refs?.contentRef.current);
38
+
39
+ // Page header content is not fully collapsed
40
+ if (!isFullyCollapsed) {
41
+ const pageHeaderContentHeight = refs?.contentRef.current.offsetHeight;
42
+ scrollableTarget?.scrollTo({
43
+ top: pageHeaderContentHeight,
44
+ // headerTopValue, check if breadcrumb bar is included
45
+ behavior: 'smooth'
46
+ });
47
+ } else {
48
+ // Page header content is fully collapsed
49
+ scrollableTarget?.scrollTo({
50
+ top: 0,
51
+ behavior: 'smooth'
52
+ });
53
+ }
54
+ };
55
+ return /*#__PURE__*/React.createElement(react.IconButton, _rollupPluginBabelHelpers.extends({
56
+ ref: ref,
57
+ label: fullyCollapsed ? expandText : collapseText,
58
+ size: "md",
59
+ kind: "ghost",
60
+ autoAlign: true
61
+ }, other, {
62
+ onClick: event => {
63
+ onClick?.(event);
64
+ handleScroller(!!fullyCollapsed);
65
+ },
66
+ className: cx(className, `${settings.pkg.prefix}--page-header--scroller-button`)
67
+ }), /*#__PURE__*/React.createElement(icons.ChevronUp, {
68
+ className: cx(`${settings.pkg.prefix}--page-header--scroller-button-icon`, {
69
+ [`${settings.pkg.prefix}--page-header--scroller-button-icon-collapsed`]: fullyCollapsed
70
+ })
71
+ }));
72
+ });
73
+ PageHeaderScrollButton.displayName = 'PageHeaderScrollButton';
74
+
75
+ exports.PageHeaderScrollButton = PageHeaderScrollButton;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
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
+ */
7
+ import React from 'react';
8
+ /**
9
+ * ----------------
10
+ * PageHeaderTabBar
11
+ * ----------------
12
+ */
13
+ export interface PageHeaderTabBarProps {
14
+ children?: React.ReactNode;
15
+ className?: string;
16
+ tags?: React.ReactNode;
17
+ scroller?: React.ReactNode;
18
+ }
19
+ export declare const PageHeaderTabBar: React.ForwardRefExoticComponent<PageHeaderTabBarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2026
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
+ */
7
+
8
+ 'use strict';
9
+
10
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
11
+ var React = require('react');
12
+ var cx = require('classnames');
13
+ var react = require('@carbon/react');
14
+ var PageHeaderUtils = require('../PageHeaderUtils.js');
15
+ var settings = require('../../../settings.js');
16
+
17
+ /**
18
+ * ----------------
19
+ * PageHeaderTabBar
20
+ * ----------------
21
+ */
22
+
23
+ const PageHeaderTabBar = /*#__PURE__*/React.forwardRef(function PageHeaderTabBar(_ref, ref) {
24
+ let {
25
+ className,
26
+ children,
27
+ tags,
28
+ scroller,
29
+ ...other
30
+ } = _ref;
31
+ const classNames = cx({
32
+ [`${PageHeaderUtils.blockClass}__tab-bar`]: true
33
+ }, className);
34
+ const renderScroller = () => scroller && /*#__PURE__*/React.createElement("div", {
35
+ className: `${settings.pkg.prefix}--page-header--scroller-button-container`
36
+ }, scroller);
37
+
38
+ // Early return if no tags are provided
39
+ if (!tags) {
40
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
41
+ className: classNames,
42
+ ref: ref
43
+ }, other), /*#__PURE__*/React.createElement(react.Grid, {
44
+ condensed: true
45
+ }, /*#__PURE__*/React.createElement(react.Column, {
46
+ lg: 16,
47
+ md: 8,
48
+ sm: 4
49
+ }, children, renderScroller())));
50
+ }
51
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
52
+ className: classNames,
53
+ ref: ref
54
+ }, other), /*#__PURE__*/React.createElement(react.Grid, {
55
+ condensed: true
56
+ }, /*#__PURE__*/React.createElement(react.Column, {
57
+ lg: 16,
58
+ md: 8,
59
+ sm: 4
60
+ }, /*#__PURE__*/React.createElement("div", {
61
+ className: cx(`${PageHeaderUtils.blockClass}__tab-bar--tablist`, {
62
+ [`${settings.pkg.prefix}--page-header__tab-bar--with-scroller`]: !!scroller
63
+ })
64
+ }, children, tags, renderScroller()))));
65
+ });
66
+ PageHeaderTabBar.displayName = 'PageHeaderTabBar';
67
+
68
+ exports.PageHeaderTabBar = PageHeaderTabBar;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
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
+ */
7
+ import React from 'react';
8
+ export interface PageHeaderTagOverflowProps {
9
+ children: React.ReactNode;
10
+ renderOverflowTag?: (hiddenBreadcrumbs: HTMLElement[], handleOverflowClick: (event: React.MouseEvent) => void, openPopover: boolean) => React.ReactElement;
11
+ renderPopoverContent?: (hiddenBreadcrumbs: HTMLElement[]) => React.ReactElement;
12
+ }
13
+ export declare const PageHeaderTagOverflow: React.ForwardRefExoticComponent<PageHeaderTagOverflowProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2026
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
+ */
7
+
8
+ 'use strict';
9
+
10
+ var React = require('react');
11
+ var cx = require('classnames');
12
+ var react = require('@carbon/react');
13
+ var PageHeaderUtils = require('../PageHeaderUtils.js');
14
+ var overflowHandler = require('./overflowHandler.js');
15
+ var settings = require('../../../settings.js');
16
+
17
+ const PageHeaderTagOverflow = /*#__PURE__*/React.forwardRef((_ref, ref) => {
18
+ let {
19
+ renderOverflowTag,
20
+ renderPopoverContent,
21
+ children
22
+ } = _ref;
23
+ const [openPopover, setOpenPopover] = React.useState(false);
24
+ const [hiddenTags, setHiddenTags] = React.useState([]);
25
+ const localRef = React.useRef(null);
26
+ const tagsContainerRef = ref || localRef;
27
+ // To close popover when window resizes
28
+ React.useEffect(() => {
29
+ const handleResize = () => {
30
+ // Close the popover when window resizes to prevent unwanted opens
31
+ setOpenPopover(false);
32
+ };
33
+ window.addEventListener('resize', handleResize);
34
+ return () => {
35
+ window.removeEventListener('resize', handleResize);
36
+ };
37
+ }, []);
38
+ const handleOverflowClick = React.useCallback(event => {
39
+ event.stopPropagation();
40
+ setOpenPopover(prev => !prev);
41
+ }, []);
42
+ React.useEffect(() => {
43
+ overflowHandler.createOverflowHandler({
44
+ container: tagsContainerRef.current,
45
+ onChange: (_, hidden) => {
46
+ setHiddenTags(hidden);
47
+ }
48
+ });
49
+ // Don't want ref in dependency array
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, []);
52
+ return /*#__PURE__*/React.createElement("div", {
53
+ ref: tagsContainerRef,
54
+ className: cx(`${settings.pkg.prefix}--page-header--tag-overflow-container`, {
55
+ [`${settings.pkg.prefix}--page-header--tag-overflow-container__has-no-hidden-items`]: !hiddenTags.length
56
+ })
57
+ }, children, /*#__PURE__*/React.createElement(react.Popover, {
58
+ open: openPopover,
59
+ onRequestClose: () => setOpenPopover(false),
60
+ "data-fixed": true,
61
+ className: cx(`${settings.pkg.prefix}--page-header--tag-overflow-popover`, {
62
+ [`${settings.pkg.prefix}--page-header--tag-overflow-popover__hidden`]: !hiddenTags.length
63
+ })
64
+ }, renderOverflowTag?.(hiddenTags, handleOverflowClick, openPopover), /*#__PURE__*/React.createElement(react.PopoverContent, null, /*#__PURE__*/React.createElement("div", {
65
+ className: `${PageHeaderUtils.blockClass}__tags-popover-list`
66
+ }, renderPopoverContent?.(hiddenTags)))));
67
+ });
68
+ PageHeaderTagOverflow.displayName = 'PageHeaderTagOverflow';
69
+
70
+ exports.PageHeaderTagOverflow = PageHeaderTagOverflow;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
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
+ */
7
+ import React from 'react';
8
+ import { BreadcrumbItemProps } from '@carbon/react';
9
+ export declare const PageHeaderTitleBreadcrumb: React.ForwardRefExoticComponent<BreadcrumbItemProps & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2026
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
+ */
7
+
8
+ 'use strict';
9
+
10
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
11
+ var React = require('react');
12
+ var cx = require('classnames');
13
+ var react = require('@carbon/react');
14
+ var context = require('./context.js');
15
+ var settings = require('../../../settings.js');
16
+
17
+ const PageHeaderTitleBreadcrumb = /*#__PURE__*/React.forwardRef((_ref, ref) => {
18
+ let {
19
+ className,
20
+ children,
21
+ ...other
22
+ } = _ref;
23
+ const {
24
+ titleClipped,
25
+ refs
26
+ } = context.usePageHeader();
27
+ // Show title breadcrumb when:
28
+ // 1. No content element exists (compact mode), OR
29
+ // 2. Title is clipped and titleRef exists (with content element)
30
+ const hasContentElement = refs?.contentRef?.current;
31
+ const shouldShow = !hasContentElement || titleClipped && !!refs?.titleRef;
32
+ return /*#__PURE__*/React.createElement(react.BreadcrumbItem, _rollupPluginBabelHelpers.extends({
33
+ ref: ref,
34
+ isCurrentPage: true
35
+ }, other, {
36
+ className: cx(className, `${settings.pkg.prefix}--page-header-title-breadcrumb`, {
37
+ [`${settings.pkg.prefix}--page-header-title-breadcrumb-show`]: shouldShow,
38
+ [`${settings.pkg.prefix}--page-header-title-breadcrumb-show__with-content-element`]: hasContentElement,
39
+ [`${settings.pkg.prefix}--page-header-title-breadcrumb-show__without-content-element`]: !hasContentElement
40
+ })
41
+ }), children);
42
+ });
43
+ PageHeaderTitleBreadcrumb.displayName = 'PageHeaderTitleBreadcrumb';
44
+
45
+ exports.PageHeaderTitleBreadcrumb = PageHeaderTitleBreadcrumb;
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Copyright IBM Corp. 2025, 2025
2
+ * Copyright IBM Corp. 2025, 2026
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.
6
6
  */
7
7
  export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderContentPageActions, PageHeaderContentText, PageHeaderTabBar, PageHeaderHeroImage, PageHeaderScrollButton, PageHeaderTitleBreadcrumb, PageHeaderBreadcrumbOverflow, PageHeaderTagOverflow, Root, BreadcrumbBar, Content, ContentPageActions, ContentText, TabBar, HeroImage, ScrollButton, TitleBreadcrumb, BreadcrumbOverflow, TagOverflow, } from './PageHeader';
8
- export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderContentPageActionsProps, PageHeaderContentTextProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, PageHeaderScrollButtonProps, PageHeaderTagOverflowProps, } from './PageHeader';
8
+ export type { PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderContentPageActionsProps, PageHeaderContentTextProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, PageHeaderScrollButtonProps, PageHeaderTagOverflowProps, PageHeaderBreadcrumbOverflowProps, } from './PageHeader';
9
+ export type { PageHeaderProps } from './PageHeader';
@@ -8,6 +8,16 @@
8
8
  'use strict';
9
9
 
10
10
  var PageHeader = require('./PageHeader.js');
11
+ var PageHeaderBreadcrumbBar = require('./PageHeaderBreadcrumbBar.js');
12
+ var PageHeaderContent = require('./PageHeaderContent.js');
13
+ var PageHeaderContentPageActions = require('./PageHeaderContentPageActions.js');
14
+ var PageHeaderContentText = require('./PageHeaderContentText.js');
15
+ var PageHeaderTabBar = require('./PageHeaderTabBar.js');
16
+ var PageHeaderHeroImage = require('./PageHeaderHeroImage.js');
17
+ var PageHeaderScrollButton = require('./PageHeaderScrollButton.js');
18
+ var PageHeaderTitleBreadcrumb = require('./PageHeaderTitleBreadcrumb.js');
19
+ var PageHeaderBreadcrumbOverflow = require('./PageHeaderBreadcrumbOverflow.js');
20
+ var PageHeaderTagOverflow = require('./PageHeaderTagOverflow.js');
11
21
 
12
22
 
13
23
 
@@ -18,18 +28,18 @@ exports.ContentPageActions = PageHeader.ContentPageActions;
18
28
  exports.ContentText = PageHeader.ContentText;
19
29
  exports.HeroImage = PageHeader.HeroImage;
20
30
  exports.PageHeader = PageHeader.PageHeader;
21
- exports.PageHeaderBreadcrumbBar = PageHeader.PageHeaderBreadcrumbBar;
22
- exports.PageHeaderBreadcrumbOverflow = PageHeader.PageHeaderBreadcrumbOverflow;
23
- exports.PageHeaderContent = PageHeader.PageHeaderContent;
24
- exports.PageHeaderContentPageActions = PageHeader.PageHeaderContentPageActions;
25
- exports.PageHeaderContentText = PageHeader.PageHeaderContentText;
26
- exports.PageHeaderHeroImage = PageHeader.PageHeaderHeroImage;
27
- exports.PageHeaderScrollButton = PageHeader.PageHeaderScrollButton;
28
- exports.PageHeaderTabBar = PageHeader.PageHeaderTabBar;
29
- exports.PageHeaderTagOverflow = PageHeader.PageHeaderTagOverflow;
30
- exports.PageHeaderTitleBreadcrumb = PageHeader.PageHeaderTitleBreadcrumb;
31
31
  exports.Root = PageHeader.Root;
32
32
  exports.ScrollButton = PageHeader.ScrollButton;
33
33
  exports.TabBar = PageHeader.TabBar;
34
34
  exports.TagOverflow = PageHeader.TagOverflow;
35
35
  exports.TitleBreadcrumb = PageHeader.TitleBreadcrumb;
36
+ exports.PageHeaderBreadcrumbBar = PageHeaderBreadcrumbBar.PageHeaderBreadcrumbBar;
37
+ exports.PageHeaderContent = PageHeaderContent.PageHeaderContent;
38
+ exports.PageHeaderContentPageActions = PageHeaderContentPageActions.PageHeaderContentPageActions;
39
+ exports.PageHeaderContentText = PageHeaderContentText.PageHeaderContentText;
40
+ exports.PageHeaderTabBar = PageHeaderTabBar.PageHeaderTabBar;
41
+ exports.PageHeaderHeroImage = PageHeaderHeroImage.PageHeaderHeroImage;
42
+ exports.PageHeaderScrollButton = PageHeaderScrollButton.PageHeaderScrollButton;
43
+ exports.PageHeaderTitleBreadcrumb = PageHeaderTitleBreadcrumb.PageHeaderTitleBreadcrumb;
44
+ exports.PageHeaderBreadcrumbOverflow = PageHeaderBreadcrumbOverflow.PageHeaderBreadcrumbOverflow;
45
+ exports.PageHeaderTagOverflow = PageHeaderTagOverflow.PageHeaderTagOverflow;
@@ -1,4 +1,4 @@
1
- export function useCreateComponentStepChange({ firstIncludedStep, lastIncludedStep, stepData, onPrevious, onNext, isSubmitDisabled, setCurrentStep, setIsSubmitting, setLoadingPrevious, loadingPrevious, onClose, onRequestSubmit, componentName, currentStep, backButtonText, cancelButtonText, submitButtonText, nextButtonText, isSubmitting, componentBlockClass, setCreateComponentActions, setModalIsOpen, experimentalSecondarySubmit, experimentalSecondarySubmitText, }: {
1
+ export function useCreateComponentStepChange({ firstIncludedStep, lastIncludedStep, stepData, onPrevious, onNext, isSubmitDisabled, setCurrentStep, setIsSubmitting, setLoadingPrevious, loadingPrevious, onClose, onRequestSubmit, componentName, currentStep, backButtonText, cancelButtonText, submitButtonText, nextButtonText, isSubmitting, secondaryButtonDisabled, componentBlockClass, setCreateComponentActions, setModalIsOpen, experimentalSecondarySubmit, experimentalSecondarySubmitText, }: {
2
2
  firstIncludedStep: any;
3
3
  lastIncludedStep: any;
4
4
  stepData: any;
@@ -18,6 +18,7 @@ export function useCreateComponentStepChange({ firstIncludedStep, lastIncludedSt
18
18
  submitButtonText: any;
19
19
  nextButtonText: any;
20
20
  isSubmitting: any;
21
+ secondaryButtonDisabled?: boolean | undefined;
21
22
  componentBlockClass: any;
22
23
  setCreateComponentActions: any;
23
24
  setModalIsOpen: any;
@@ -30,6 +30,7 @@ const useCreateComponentStepChange = _ref => {
30
30
  submitButtonText,
31
31
  nextButtonText,
32
32
  isSubmitting,
33
+ secondaryButtonDisabled = false,
33
34
  componentBlockClass,
34
35
  setCreateComponentActions,
35
36
  setModalIsOpen,
@@ -140,7 +141,7 @@ const useCreateComponentStepChange = _ref => {
140
141
  label: backButtonText,
141
142
  onClick: handlePrevious,
142
143
  kind: 'secondary',
143
- disabled: currentStep === firstIncludedStep,
144
+ disabled: currentStep === firstIncludedStep || secondaryButtonDisabled,
144
145
  loading: loadingPrevious
145
146
  });
146
147
  }
@@ -170,7 +171,7 @@ const useCreateComponentStepChange = _ref => {
170
171
  });
171
172
  setCreateComponentActions(buttons);
172
173
  }
173
- }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setModalIsOpen, moveToPreviousStep, onPrevious, setLoadingPrevious, loadingPrevious, experimentalSecondarySubmit, experimentalSecondarySubmitText]);
174
+ }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, secondaryButtonDisabled, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setModalIsOpen, moveToPreviousStep, onPrevious, setLoadingPrevious, loadingPrevious, experimentalSecondarySubmit, experimentalSecondarySubmitText]);
174
175
  };
175
176
 
176
177
  exports.useCreateComponentStepChange = useCreateComponentStepChange;
@@ -14,7 +14,7 @@ var index = require('../../../components/FeatureFlags/index.js');
14
14
 
15
15
  const usePortalTarget = portalTargetIn => {
16
16
  const enablePortalTarget = index.useFeatureFlag('default-portal-target-body');
17
- const [portalTarget, setPortalTarget] = React.useState(null);
17
+ const [portalTarget, setPortalTarget] = React.useState(portalTargetIn ?? null);
18
18
  React.useEffect(() => {
19
19
  if (portalTargetIn) {
20
20
  setPortalTarget(portalTargetIn);
@@ -42,15 +42,20 @@ const makeDraggable = _ref => {
42
42
  const onKeyDown = e => {
43
43
  if (e.key === 'Enter') {
44
44
  isDragging = !isDragging;
45
- }
46
- if (isDragging) {
47
- dispatch('dragstart', {
48
- keyboard: true
49
- });
50
- } else {
51
- dispatch('dragend', {
52
- keyboard: true
53
- });
45
+ if (isDragging) {
46
+ // Get current transform values when starting keyboard drag
47
+ const style = window.getComputedStyle(el);
48
+ const matrix = new DOMMatrix(style.transform);
49
+ currentX = matrix.m41;
50
+ currentY = matrix.m42;
51
+ dispatch('dragstart', {
52
+ keyboard: true
53
+ });
54
+ } else {
55
+ dispatch('dragend', {
56
+ keyboard: true
57
+ });
58
+ }
54
59
  }
55
60
  if (!isDragging) {
56
61
  return;
@@ -62,16 +67,20 @@ const makeDraggable = _ref => {
62
67
  e.preventDefault();
63
68
  break;
64
69
  case 'ArrowLeft':
65
- el.style.left = `${el.offsetLeft - distance}px`;
70
+ currentX -= distance;
71
+ el.style.transform = `translate(${currentX}px, ${currentY}px)`;
66
72
  break;
67
73
  case 'ArrowRight':
68
- el.style.left = `${el.offsetLeft + distance}px`;
74
+ currentX += distance;
75
+ el.style.transform = `translate(${currentX}px, ${currentY}px)`;
69
76
  break;
70
77
  case 'ArrowUp':
71
- el.style.top = `${el.offsetTop - distance}px`;
78
+ currentY -= distance;
79
+ el.style.transform = `translate(${currentX}px, ${currentY}px)`;
72
80
  break;
73
81
  case 'ArrowDown':
74
- el.style.top = `${el.offsetTop + distance}px`;
82
+ currentY += distance;
83
+ el.style.transform = `translate(${currentX}px, ${currentY}px)`;
75
84
  break;
76
85
  }
77
86
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.84.0",
4
+ "version": "2.85.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -68,7 +68,7 @@
68
68
  "@babel/preset-react": "^7.26.3",
69
69
  "@babel/preset-typescript": "^7.26.0",
70
70
  "@carbon/styles": "^1.100.0",
71
- "@figma/code-connect": "^1.3.5",
71
+ "@figma/code-connect": "^1.4.0",
72
72
  "@ibm/telemetry-js-config-generator": "^2.0.1",
73
73
  "@percy/cli": "^1.31.0",
74
74
  "@percy/storybook": "^10.0.0",
@@ -84,7 +84,7 @@
84
84
  "@types/react-table": "^7.7.20",
85
85
  "@vitejs/plugin-react": "^5.0.0",
86
86
  "babel-plugin-dev-expression": "^0.2.3",
87
- "babel-preset-ibm-cloud-cognitive": "^0.42.0",
87
+ "babel-preset-ibm-cloud-cognitive": "^0.43.0",
88
88
  "change-case": "5.4.4",
89
89
  "classnames": "^2.5.1",
90
90
  "copyfiles": "^2.4.1",
@@ -92,7 +92,7 @@
92
92
  "fs-extra": "^11.3.0",
93
93
  "glob": "^11.0.1",
94
94
  "jest": "^29.7.0",
95
- "jest-config-ibm-cloud-cognitive": "^1.43.0",
95
+ "jest-config-ibm-cloud-cognitive": "^1.44.0",
96
96
  "jest-environment-jsdom": "^29.7.0",
97
97
  "namor": "^1.1.2",
98
98
  "npm-run-all2": "^8.0.0",
@@ -104,7 +104,7 @@
104
104
  "rollup-plugin-strip-banner": "^3.1.0",
105
105
  "sass": "^1.93.2",
106
106
  "storybook": "^9.1.15",
107
- "storybook-addon-accessibility-checker": ">=9.2.0-rc.0",
107
+ "storybook-addon-accessibility-checker": ">=9.2.0-git0",
108
108
  "typescript-config-carbon": "^0.9.0",
109
109
  "vite": "^7.0.0",
110
110
  "yargs": "^18.0.0"
@@ -113,7 +113,7 @@
113
113
  "@babel/runtime": "^7.26.10",
114
114
  "@carbon-labs/react-resizer": "^0.10.0",
115
115
  "@carbon/feature-flags": "^1.0.0",
116
- "@carbon/ibm-products-styles": "^2.80.0",
116
+ "@carbon/ibm-products-styles": "^2.81.0",
117
117
  "@carbon/telemetry": "^0.1.0",
118
118
  "@carbon/utilities": "^0.16.0",
119
119
  "@carbon/utilities-react": "0.19.0",
@@ -135,5 +135,5 @@
135
135
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0 || ^19.0.0",
136
136
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0 || ^19.0.0"
137
137
  },
138
- "gitHead": "7b0c5737d123755ee2ed937568fcd568e9c76b3f"
138
+ "gitHead": "d5645922d967cd5c602f4c111bab8a6b5f633abe"
139
139
  }