@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,41 @@
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, { type ComponentType, type FunctionComponent } from 'react';
8
+ /**
9
+ * -----------------------
10
+ * PageHeaderBreadcrumbBar
11
+ * -----------------------
12
+ */
13
+ export interface PageHeaderBreadcrumbBarProps {
14
+ /**
15
+ * `true` by default to render BreadcrumbBar bottom border.
16
+ */
17
+ border?: boolean;
18
+ children?: React.ReactNode;
19
+ className?: string;
20
+ /**
21
+ * Provide an optional icon to render in front of the PageHeaderContent's title.
22
+ */
23
+ renderIcon?: ComponentType | FunctionComponent;
24
+ /**
25
+ * The PageHeaderBreadcrumbBar's content actions
26
+ */
27
+ contentActions?: React.ReactNode;
28
+ /**
29
+ * `true` to set content actions flush against page actions
30
+ */
31
+ contentActionsFlush?: boolean;
32
+ /**
33
+ * The PageHeaderContent's page actions
34
+ */
35
+ pageActions?: React.ReactNode;
36
+ /**
37
+ * `true` to set page actions flush with page
38
+ */
39
+ pageActionsFlush?: boolean;
40
+ }
41
+ export declare const PageHeaderBreadcrumbBar: React.ForwardRefExoticComponent<PageHeaderBreadcrumbBarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,76 @@
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 context = require('./context.js');
16
+
17
+ /**
18
+ * -----------------------
19
+ * PageHeaderBreadcrumbBar
20
+ * -----------------------
21
+ */
22
+
23
+ const PageHeaderBreadcrumbBar = /*#__PURE__*/React.forwardRef(function PageHeaderBreadcrumbBar(_ref, ref) {
24
+ let {
25
+ border = true,
26
+ className,
27
+ children,
28
+ renderIcon: IconElement,
29
+ contentActions,
30
+ contentActionsFlush,
31
+ pageActions,
32
+ pageActionsFlush,
33
+ ...other
34
+ } = _ref;
35
+ const context$1 = context.usePageHeader();
36
+ const {
37
+ pageActionsInstance: globalActions,
38
+ contentActionsClipped
39
+ } = context$1;
40
+ const classNames = cx({
41
+ [`${PageHeaderUtils.blockClass}__breadcrumb-bar`]: true,
42
+ [`${PageHeaderUtils.blockClass}__breadcrumb-bar-border`]: border,
43
+ [`${PageHeaderUtils.blockClass}__breadcrumb__actions-flush`]: pageActionsFlush
44
+ }, className);
45
+ const contentActionsClasses = cx({
46
+ [`${PageHeaderUtils.blockClass}__breadcrumb__content-actions`]: !contentActionsFlush,
47
+ [`${PageHeaderUtils.blockClass}__breadcrumb__content-actions-with-global-actions`]: !!globalActions,
48
+ [`${PageHeaderUtils.blockClass}__breadcrumb__content-actions-with-global-actions--show`]: contentActionsClipped
49
+ });
50
+ return /*#__PURE__*/React.createElement(context.PageHeaderContext.Provider, {
51
+ value: {
52
+ ...context$1,
53
+ isContentActionsInBreadcrumbBar: true
54
+ }
55
+ }, /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
56
+ className: classNames,
57
+ ref: ref
58
+ }, other), /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement(react.Column, {
59
+ lg: 16,
60
+ md: 8,
61
+ sm: 4
62
+ }, /*#__PURE__*/React.createElement("div", {
63
+ className: `${PageHeaderUtils.blockClass}__breadcrumb-container`
64
+ }, /*#__PURE__*/React.createElement("div", {
65
+ className: `${PageHeaderUtils.blockClass}__breadcrumb-wrapper`
66
+ }, IconElement && /*#__PURE__*/React.createElement("div", {
67
+ className: `${PageHeaderUtils.blockClass}__breadcrumb__icon`
68
+ }, /*#__PURE__*/React.createElement(IconElement, null)), children), /*#__PURE__*/React.createElement("div", {
69
+ className: `${PageHeaderUtils.blockClass}__breadcrumb__actions`
70
+ }, /*#__PURE__*/React.createElement("div", {
71
+ className: contentActionsClasses
72
+ }, contentActions), pageActions))))));
73
+ });
74
+ PageHeaderBreadcrumbBar.displayName = 'PageHeaderBreadcrumbBar';
75
+
76
+ exports.PageHeaderBreadcrumbBar = PageHeaderBreadcrumbBar;
@@ -0,0 +1,12 @@
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, BreadcrumbProps } from '@carbon/react';
9
+ export interface PageHeaderBreadcrumbOverflowProps extends BreadcrumbProps {
10
+ renderOverflowBreadcrumb?: (hiddenBreadcrumbs: HTMLElement[]) => React.ReactElement<BreadcrumbItemProps>;
11
+ }
12
+ export declare const PageHeaderBreadcrumbOverflow: React.ForwardRefExoticComponent<PageHeaderBreadcrumbOverflowProps & React.RefAttributes<HTMLElement>>;
@@ -0,0 +1,84 @@
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 overflowHandler = require('./overflowHandler.js');
15
+ var settings = require('../../../settings.js');
16
+ var PageHeaderTitleBreadcrumb = require('./PageHeaderTitleBreadcrumb.js');
17
+
18
+ // This component is a wrapper for the Breadcrumb, and renders breadcrumb items as children
19
+ // including the overflow breadcrumb item. The overflowHandler determines what elements
20
+ // are visible and hidden and passes the hidden elements back to the render prop used
21
+ // to display the overflow breadcrumb
22
+ const PageHeaderBreadcrumbOverflow = /*#__PURE__*/React.forwardRef((_ref, ref) => {
23
+ let {
24
+ renderOverflowBreadcrumb,
25
+ className,
26
+ children,
27
+ ...other
28
+ } = _ref;
29
+ const [hiddenBreadcrumbs, setHiddenBreadcrumbs] = React.useState([]);
30
+ const fallbackRef = React.useRef(null);
31
+ const componentRef = ref ?? fallbackRef;
32
+
33
+ // Initialize overflow resize handler
34
+ const carbonPrefix = react.usePrefix();
35
+ React.useEffect(() => {
36
+ if (!componentRef) {
37
+ return;
38
+ }
39
+ const breadcrumbList = componentRef?.current.querySelector(`.${carbonPrefix}--breadcrumb`);
40
+ overflowHandler.createOverflowHandler({
41
+ container: breadcrumbList,
42
+ onChange: (_, hidden) => {
43
+ setHiddenBreadcrumbs(hidden);
44
+ }
45
+ });
46
+ // Don't want ref or carbon prefix in dependency array
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, []);
49
+ const renderChildren = () => {
50
+ // Only BreadcrumbItems and TitleBreadcrumbs are valid children
51
+ const filteredBreadcrumbs = React.Children.toArray(children).filter(child => {
52
+ if (/*#__PURE__*/React.isValidElement(child)) {
53
+ return child.type === react.BreadcrumbItem || child.type === PageHeaderTitleBreadcrumb.PageHeaderTitleBreadcrumb;
54
+ }
55
+ });
56
+ // We need to clone the renderProp for the overflow breadcrumb item
57
+ // to place it before the title breadcrumb according to the design
58
+ if (filteredBreadcrumbs) {
59
+ const overflowBreadcrumb = renderOverflowBreadcrumb?.(hiddenBreadcrumbs);
60
+ // If no overflow breadcrumb provided, return here with the rest of the children
61
+ if (!overflowBreadcrumb) {
62
+ return children;
63
+ }
64
+ const clonedTitleBreadcrumb = /*#__PURE__*/React.cloneElement(overflowBreadcrumb, {
65
+ key: 'cloned overflow breadcrumb item',
66
+ 'data-fixed': true,
67
+ className: cx(`${settings.pkg.prefix}--page-header-breadcrumb-overflow-item`, {
68
+ [`${settings.pkg.prefix}--page-header-overflow-breadcrumb-item-with-items`]: hiddenBreadcrumbs.length
69
+ })
70
+ });
71
+ const clonedChildren = [...filteredBreadcrumbs];
72
+ clonedChildren.splice(filteredBreadcrumbs.length - 1, 0, clonedTitleBreadcrumb); // second to last position
73
+ return clonedChildren;
74
+ }
75
+ return children;
76
+ };
77
+ return /*#__PURE__*/React.createElement(react.Breadcrumb, _rollupPluginBabelHelpers.extends({
78
+ className: cx(className, `${settings.pkg.prefix}--page-header-breadcrumb-overflow`),
79
+ ref: componentRef
80
+ }, other), renderChildren());
81
+ });
82
+ PageHeaderBreadcrumbOverflow.displayName = 'PageHeaderBreadcrumbOverflow';
83
+
84
+ exports.PageHeaderBreadcrumbOverflow = PageHeaderBreadcrumbOverflow;
@@ -0,0 +1,39 @@
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, { type ComponentType, type FunctionComponent } from 'react';
8
+ /**
9
+ * -----------------
10
+ * PageHeaderContent
11
+ * -----------------
12
+ */
13
+ export interface PageHeaderContentProps {
14
+ /**
15
+ * Provide child elements to be rendered inside PageHeaderContent.
16
+ */
17
+ children?: React.ReactNode;
18
+ /**
19
+ * Specify an optional className to be added to your PageHeaderContent
20
+ */
21
+ className?: string;
22
+ /**
23
+ * Provide an optional icon to render in front of the PageHeaderContent's title.
24
+ */
25
+ renderIcon?: ComponentType | FunctionComponent;
26
+ /**
27
+ * The PageHeaderContent's title
28
+ */
29
+ title: string;
30
+ /**
31
+ * The PageHeaderContent's contextual actions
32
+ */
33
+ contextualActions?: React.ReactNode;
34
+ /**
35
+ * The PageHeaderContent's page actions
36
+ */
37
+ pageActions?: React.ReactNode;
38
+ }
39
+ export declare const PageHeaderContent: React.ForwardRefExoticComponent<PageHeaderContentProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,131 @@
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 PageHeaderUtils = require('../PageHeaderUtils.js');
16
+ var context = require('./context.js');
17
+ var useIsomorphicEffect = require('../../../global/js/hooks/useIsomorphicEffect.js');
18
+
19
+ /**
20
+ * -----------------
21
+ * PageHeaderContent
22
+ * -----------------
23
+ */
24
+
25
+ const PageHeaderContent = /*#__PURE__*/React.forwardRef(function PageHeaderContent(_ref, ref) {
26
+ let {
27
+ className,
28
+ children,
29
+ title,
30
+ renderIcon: IconElement,
31
+ contextualActions,
32
+ pageActions,
33
+ ...other
34
+ } = _ref;
35
+ const contentRef = React.useRef(null);
36
+ const componentRef = ref ?? contentRef;
37
+ const {
38
+ setRefs,
39
+ setPageActionsInstance
40
+ } = context.usePageHeader();
41
+ const classNames = cx({
42
+ [`${PageHeaderUtils.blockClass}__content`]: true
43
+ }, className);
44
+ const titleRef = React.useRef(null);
45
+ React.useEffect(() => {
46
+ if (componentRef?.current) {
47
+ setRefs(prev => ({
48
+ ...prev,
49
+ contentRef: componentRef,
50
+ titleRef
51
+ }));
52
+ }
53
+ // eslint-disable-next-line react-hooks/exhaustive-deps
54
+ }, []);
55
+ React.useEffect(() => {
56
+ if (pageActions) {
57
+ setPageActionsInstance(pageActions);
58
+ }
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ }, [pageActions]);
61
+ const [isEllipsisApplied, setIsEllipsisApplied] = React.useState(false);
62
+ const isEllipsisActive = element => {
63
+ setIsEllipsisApplied(element.offsetHeight < element.scrollHeight);
64
+ return element.offsetHeight < element.scrollHeight;
65
+ };
66
+ useIsomorphicEffect.useIsomorphicEffect(() => {
67
+ titleRef.current && isEllipsisActive(titleRef.current);
68
+ }, [title]);
69
+ return /*#__PURE__*/React.createElement(react.Section, _rollupPluginBabelHelpers.extends({
70
+ as: "div",
71
+ className: classNames,
72
+ ref: componentRef
73
+ }, other), /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement(react.Column, {
74
+ lg: 16,
75
+ md: 8,
76
+ sm: 4
77
+ }, /*#__PURE__*/React.createElement("div", {
78
+ className: `${PageHeaderUtils.blockClass}__content__title-wrapper`
79
+ }, /*#__PURE__*/React.createElement("div", {
80
+ className: `${PageHeaderUtils.blockClass}__content__start`
81
+ }, /*#__PURE__*/React.createElement("div", {
82
+ className: `${PageHeaderUtils.blockClass}__content__title-container`
83
+ }, IconElement && /*#__PURE__*/React.createElement("div", {
84
+ className: `${PageHeaderUtils.blockClass}__content__icon`
85
+ }, /*#__PURE__*/React.createElement(IconElement, null)), isEllipsisApplied ? /*#__PURE__*/React.createElement(react.DefinitionTooltip, {
86
+ definition: title
87
+ }, /*#__PURE__*/React.createElement(react.unstable_Text, {
88
+ ref: titleRef,
89
+ as: react.Heading,
90
+ className: `${PageHeaderUtils.blockClass}__content__title`
91
+ }, title)) : /*#__PURE__*/React.createElement(react.unstable_Text, {
92
+ ref: titleRef,
93
+ as: react.Heading,
94
+ className: `${PageHeaderUtils.blockClass}__content__title`
95
+ }, title)), contextualActions && /*#__PURE__*/React.createElement("div", {
96
+ className: `${PageHeaderUtils.blockClass}__content__contextual-actions`
97
+ }, contextualActions)), pageActions), children)));
98
+ });
99
+ PageHeaderContent.displayName = 'PageHeaderContent';
100
+ PageHeaderContent.propTypes = {
101
+ /**
102
+ * Provide child elements to be rendered inside PageHeaderContent.
103
+ */
104
+ children: index.default.node,
105
+ /**
106
+ * Specify an optional className to be added to your PageHeaderContent
107
+ */
108
+ className: index.default.string,
109
+ /**
110
+ * The PageHeaderContent's contextual actions
111
+ */
112
+ contextualActions: index.default.node,
113
+ /**
114
+ * The PageHeaderContent's page actions
115
+ */
116
+ pageActions: index.default.node,
117
+ /**
118
+ * Provide an optional icon to render in front of the PageHeaderContent's title.
119
+ */
120
+ renderIcon: index.default.oneOfType([index.default.func, index.default.object]),
121
+ /**
122
+ * The PageHeaderContent's subtitle
123
+ */
124
+ subtitle: index.default.string,
125
+ /**
126
+ * The PageHeaderContent's title
127
+ */
128
+ title: index.default.string.isRequired
129
+ };
130
+
131
+ exports.PageHeaderContent = PageHeaderContent;
@@ -0,0 +1,52 @@
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
+ * PageHeaderContentPageActions
11
+ * ----------------
12
+ */
13
+ export interface PageHeaderContentPageActionsProps {
14
+ /**
15
+ * Provide child elements to be rendered inside PageHeaderContentPageActions.
16
+ */
17
+ children?: React.ReactNode;
18
+ /**
19
+ * Specify an optional className to be added to your PageHeaderContentPageActions
20
+ */
21
+ className?: string;
22
+ /**
23
+ * The PageHeaderContent's page actions collapsible Menu button label
24
+ */
25
+ menuButtonLabel?: string;
26
+ /**
27
+ * The PageHeaderContent's page actions
28
+ */
29
+ actions?: React.ReactNode;
30
+ }
31
+ export declare const PageHeaderContentPageActions: {
32
+ ({ className, children, menuButtonLabel, actions, ...other }: PageHeaderContentPageActionsProps): React.JSX.Element;
33
+ displayName: string;
34
+ propTypes: {
35
+ /**
36
+ * The PageHeaderContent's page actions
37
+ */
38
+ actions: any;
39
+ /**
40
+ * Provide child elements to be rendered inside PageHeaderContentPageActions.
41
+ */
42
+ children: any;
43
+ /**
44
+ * Specify an optional className to be added to your PageHeaderContentPageActions
45
+ */
46
+ className: any;
47
+ /**
48
+ * The PageHeaderContent's collapsible Menu button label
49
+ */
50
+ menuButtonLabel: any;
51
+ };
52
+ };
@@ -0,0 +1,128 @@
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 PageHeaderUtils = require('../PageHeaderUtils.js');
16
+ var utilities = require('@carbon/utilities');
17
+ var context = require('./context.js');
18
+ var useIsomorphicEffect = require('../../../global/js/hooks/useIsomorphicEffect.js');
19
+
20
+ /**
21
+ * ----------------
22
+ * PageHeaderContentPageActions
23
+ * ----------------
24
+ */
25
+
26
+ const PageHeaderContentPageActions = _ref => {
27
+ let {
28
+ className,
29
+ children,
30
+ menuButtonLabel = 'Actions',
31
+ actions,
32
+ ...other
33
+ } = _ref;
34
+ const {
35
+ setRefs,
36
+ contentActionsClipped,
37
+ breadcrumbActionsClipped,
38
+ isContentActionsInBreadcrumbBar: isInBreadcrumbBar
39
+ } = context.usePageHeader();
40
+ const classNames = cx(`${PageHeaderUtils.blockClass}__content__page-actions`, {
41
+ // Revisit this:
42
+ // May want to only add this class if there are content actions in the breadcrumb bar as well
43
+ [`${PageHeaderUtils.blockClass}__content__page-actions--clipped`]: isInBreadcrumbBar ? breadcrumbActionsClipped : contentActionsClipped
44
+ }, className);
45
+ const containerRef = React.useRef(null);
46
+ const offsetRef = React.useRef(null);
47
+ const [menuButtonVisibility, setMenuButtonVisibility] = React.useState(false);
48
+ const [hiddenItems, setHiddenItems] = React.useState([]);
49
+
50
+ // need to set the grid columns width based on the menu button's width
51
+ // to avoid overlapping when resizing
52
+ useIsomorphicEffect.useIsomorphicEffect(() => {
53
+ if (menuButtonVisibility && offsetRef.current) {
54
+ const width = offsetRef.current.offsetWidth;
55
+ document.documentElement.style.setProperty('--page-header-title-grid-width', `${width}px`);
56
+ }
57
+ }, [menuButtonVisibility]);
58
+ React.useEffect(() => {
59
+ if (isInBreadcrumbBar) {
60
+ setRefs(prev => ({
61
+ ...prev,
62
+ breadcrumbActions: containerRef
63
+ }));
64
+ } else {
65
+ setRefs(prev => ({
66
+ ...prev,
67
+ contentActions: containerRef
68
+ }));
69
+ }
70
+ }, [isInBreadcrumbBar, setRefs]);
71
+ React.useEffect(() => {
72
+ if (!containerRef.current || !Array.isArray(actions)) {
73
+ return;
74
+ }
75
+ utilities.createOverflowHandler({
76
+ container: containerRef.current,
77
+ // exclude the hidden menu button from children
78
+ maxVisibleItems: containerRef.current.children.length - 1,
79
+ onChange: (visible, hidden) => {
80
+ setHiddenItems(actions?.slice(visible.length));
81
+ if (hidden.length > 0) {
82
+ setMenuButtonVisibility(true);
83
+ }
84
+ }
85
+ });
86
+ }, [actions]);
87
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
88
+ className: classNames,
89
+ ref: containerRef
90
+ }, other), Array.isArray(actions) && /*#__PURE__*/React.createElement(React.Fragment, null, actions.map(action => /*#__PURE__*/React.createElement("div", {
91
+ key: action.id
92
+ }, /*#__PURE__*/React.cloneElement(action.body, {
93
+ ...action.body.props,
94
+ onClick: action.onClick
95
+ }))), /*#__PURE__*/React.createElement("span", {
96
+ "data-offset": true,
97
+ "data-hidden": true,
98
+ ref: offsetRef
99
+ }, /*#__PURE__*/React.createElement(react.MenuButton, {
100
+ menuAlignment: "bottom-end",
101
+ label: menuButtonLabel,
102
+ size: "md"
103
+ }, [...hiddenItems].reverse().map(item => /*#__PURE__*/React.createElement(react.MenuItem, _rollupPluginBabelHelpers.extends({
104
+ key: item.id,
105
+ onClick: item.onClick
106
+ }, item.menuItem)))))));
107
+ };
108
+ PageHeaderContentPageActions.displayName = 'PageHeaderContentPageActions';
109
+ PageHeaderContentPageActions.propTypes = {
110
+ /**
111
+ * The PageHeaderContent's page actions
112
+ */
113
+ actions: index.default.oneOfType([index.default.node, index.default.array]),
114
+ /**
115
+ * Provide child elements to be rendered inside PageHeaderContentPageActions.
116
+ */
117
+ children: index.default.node,
118
+ /**
119
+ * Specify an optional className to be added to your PageHeaderContentPageActions
120
+ */
121
+ className: index.default.string,
122
+ /**
123
+ * The PageHeaderContent's collapsible Menu button label
124
+ */
125
+ menuButtonLabel: index.default.string
126
+ };
127
+
128
+ exports.PageHeaderContentPageActions = PageHeaderContentPageActions;
@@ -0,0 +1,44 @@
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
+ * PageHeaderContentText
11
+ * ----------------
12
+ */
13
+ export interface PageHeaderContentTextProps {
14
+ /**
15
+ * Provide child elements to be rendered inside PageHeaderContentText.
16
+ */
17
+ children?: React.ReactNode;
18
+ /**
19
+ * Specify an optional className to be added to your PageHeaderContentText
20
+ */
21
+ className?: string;
22
+ /**
23
+ * The PageHeaderContent's subtitle
24
+ */
25
+ subtitle?: string;
26
+ }
27
+ export declare const PageHeaderContentText: {
28
+ ({ className, children, subtitle, ...other }: PageHeaderContentTextProps): React.JSX.Element;
29
+ displayName: string;
30
+ propTypes: {
31
+ /**
32
+ * Provide child elements to be rendered inside PageHeaderContentText.
33
+ */
34
+ children: any;
35
+ /**
36
+ * Specify an optional className to be added to your PageHeaderContentText
37
+ */
38
+ className: any;
39
+ /**
40
+ * The PageHeaderContent's subtitle
41
+ */
42
+ subtitle: any;
43
+ };
44
+ };
@@ -0,0 +1,56 @@
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 PageHeaderUtils = require('../PageHeaderUtils.js');
16
+
17
+ /**
18
+ * ----------------
19
+ * PageHeaderContentText
20
+ * ----------------
21
+ */
22
+
23
+ const PageHeaderContentText = _ref => {
24
+ let {
25
+ className,
26
+ children,
27
+ subtitle,
28
+ ...other
29
+ } = _ref;
30
+ const classNames = cx({
31
+ [`${PageHeaderUtils.blockClass}__content__body`]: true
32
+ }, className);
33
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
34
+ className: classNames
35
+ }, other), subtitle && /*#__PURE__*/React.createElement(react.unstable_Text, {
36
+ as: "h3",
37
+ className: `${PageHeaderUtils.blockClass}__content__subtitle`
38
+ }, subtitle), children);
39
+ };
40
+ PageHeaderContentText.displayName = 'PageHeaderContentText';
41
+ PageHeaderContentText.propTypes = {
42
+ /**
43
+ * Provide child elements to be rendered inside PageHeaderContentText.
44
+ */
45
+ children: index.default.node,
46
+ /**
47
+ * Specify an optional className to be added to your PageHeaderContentText
48
+ */
49
+ className: index.default.string,
50
+ /**
51
+ * The PageHeaderContent's subtitle
52
+ */
53
+ subtitle: index.default.string
54
+ };
55
+
56
+ exports.PageHeaderContentText = PageHeaderContentText;