@carbon/ibm-products 2.87.1 → 2.88.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 (80) hide show
  1. package/css/index-full-carbon.css +58 -17
  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 +58 -17
  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 +58 -17
  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 +58 -17
  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/BreadcrumbWithOverflow/BreadcrumbWithOverflow.d.ts.map +1 -1
  18. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -4
  19. package/es/components/InterstitialScreen/InterstitialScreenFooter.d.ts.map +1 -1
  20. package/es/components/InterstitialScreen/InterstitialScreenFooter.js +13 -12
  21. package/es/components/InterstitialScreen/InterstitialScreenHeader.d.ts.map +1 -1
  22. package/es/components/InterstitialScreen/InterstitialScreenHeader.js +1 -3
  23. package/es/components/PageHeader/next/PageHeader.d.ts +31 -2
  24. package/es/components/PageHeader/next/PageHeader.d.ts.map +1 -1
  25. package/es/components/PageHeader/next/PageHeader.js +49 -32
  26. package/es/components/PageHeader/next/PageHeaderBreadcrumbBar.d.ts +7 -4
  27. package/es/components/PageHeader/next/PageHeaderBreadcrumbBar.d.ts.map +1 -1
  28. package/es/components/PageHeader/next/PageHeaderBreadcrumbBar.js +8 -4
  29. package/es/components/PageHeader/next/PageHeaderBreadcrumbPageActions.d.ts +85 -0
  30. package/es/components/PageHeader/next/PageHeaderBreadcrumbPageActions.d.ts.map +1 -0
  31. package/es/components/PageHeader/next/PageHeaderBreadcrumbPageActions.js +100 -0
  32. package/es/components/PageHeader/next/PageHeaderContent.d.ts +4 -2
  33. package/es/components/PageHeader/next/PageHeaderContent.d.ts.map +1 -1
  34. package/es/components/PageHeader/next/PageHeaderContent.js +6 -5
  35. package/es/components/PageHeader/next/PageHeaderContentPageActions.d.ts.map +1 -1
  36. package/es/components/PageHeader/next/PageHeaderContentPageActions.js +2 -2
  37. package/es/components/PageHeader/next/PageHeaderScrollButton.d.ts.map +1 -1
  38. package/es/components/PageHeader/next/PageHeaderScrollButton.js +2 -1
  39. package/es/components/PageHeader/next/PageHeaderTitleBreadcrumb.d.ts.map +1 -1
  40. package/es/components/PageHeader/next/PageHeaderTitleBreadcrumb.js +2 -1
  41. package/es/components/PageHeader/next/context.d.ts +7 -4
  42. package/es/components/PageHeader/next/context.d.ts.map +1 -1
  43. package/es/components/PageHeader/next/context.js +6 -4
  44. package/es/components/PageHeader/next/index.d.ts +2 -2
  45. package/es/components/PageHeader/next/index.d.ts.map +1 -1
  46. package/es/components/PageHeader/next/index.js +4 -1
  47. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.d.ts.map +1 -1
  48. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -4
  49. package/lib/components/InterstitialScreen/InterstitialScreenFooter.d.ts.map +1 -1
  50. package/lib/components/InterstitialScreen/InterstitialScreenFooter.js +12 -11
  51. package/lib/components/InterstitialScreen/InterstitialScreenHeader.d.ts.map +1 -1
  52. package/lib/components/InterstitialScreen/InterstitialScreenHeader.js +1 -3
  53. package/lib/components/PageHeader/next/PageHeader.d.ts +31 -2
  54. package/lib/components/PageHeader/next/PageHeader.d.ts.map +1 -1
  55. package/lib/components/PageHeader/next/PageHeader.js +48 -30
  56. package/lib/components/PageHeader/next/PageHeaderBreadcrumbBar.d.ts +7 -4
  57. package/lib/components/PageHeader/next/PageHeaderBreadcrumbBar.d.ts.map +1 -1
  58. package/lib/components/PageHeader/next/PageHeaderBreadcrumbBar.js +8 -4
  59. package/lib/components/PageHeader/next/PageHeaderBreadcrumbPageActions.d.ts +85 -0
  60. package/lib/components/PageHeader/next/PageHeaderBreadcrumbPageActions.d.ts.map +1 -0
  61. package/lib/components/PageHeader/next/PageHeaderBreadcrumbPageActions.js +102 -0
  62. package/lib/components/PageHeader/next/PageHeaderContent.d.ts +4 -2
  63. package/lib/components/PageHeader/next/PageHeaderContent.d.ts.map +1 -1
  64. package/lib/components/PageHeader/next/PageHeaderContent.js +5 -4
  65. package/lib/components/PageHeader/next/PageHeaderContentPageActions.d.ts.map +1 -1
  66. package/lib/components/PageHeader/next/PageHeaderContentPageActions.js +2 -2
  67. package/lib/components/PageHeader/next/PageHeaderScrollButton.d.ts.map +1 -1
  68. package/lib/components/PageHeader/next/PageHeaderScrollButton.js +2 -1
  69. package/lib/components/PageHeader/next/PageHeaderTitleBreadcrumb.d.ts.map +1 -1
  70. package/lib/components/PageHeader/next/PageHeaderTitleBreadcrumb.js +2 -1
  71. package/lib/components/PageHeader/next/context.d.ts +7 -4
  72. package/lib/components/PageHeader/next/context.d.ts.map +1 -1
  73. package/lib/components/PageHeader/next/context.js +6 -4
  74. package/lib/components/PageHeader/next/index.d.ts +2 -2
  75. package/lib/components/PageHeader/next/index.d.ts.map +1 -1
  76. package/lib/components/PageHeader/next/index.js +3 -0
  77. package/package.json +5 -5
  78. package/scss/components/InterstitialScreen/_interstitial-screen.scss +43 -16
  79. package/scss/components/PageHeader/_page-header.scss +25 -1
  80. package/telemetry.yml +18 -0
@@ -0,0 +1,85 @@
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 PropTypes from 'prop-types';
9
+ /**
10
+ * --------------------------------
11
+ * PageHeaderBreadcrumbPageActions
12
+ * --------------------------------
13
+ */
14
+ export interface PageHeaderBreadcrumbPageActionItem {
15
+ /**
16
+ * Unique identifier for the action item
17
+ */
18
+ id: string;
19
+ /**
20
+ * Label for the action (used for icon description and overflow menu item text)
21
+ */
22
+ label: string;
23
+ /**
24
+ * Icon component to render for the action button
25
+ */
26
+ renderIcon: React.ComponentType;
27
+ /**
28
+ * Click handler for the action
29
+ */
30
+ onClick?: () => void;
31
+ }
32
+ export interface PageHeaderBreadcrumbPageActionsProps {
33
+ /**
34
+ * Array of action items to display
35
+ */
36
+ actions: PageHeaderBreadcrumbPageActionItem[];
37
+ /**
38
+ * Specify an optional className to be added to the component
39
+ */
40
+ className?: string;
41
+ /**
42
+ * Aria label for the overflow menu
43
+ */
44
+ overflowMenuLabel?: string;
45
+ /**
46
+ * Size of the action buttons
47
+ */
48
+ buttonSize?: 'sm' | 'md' | 'lg';
49
+ /**
50
+ * Kind of the action buttons
51
+ */
52
+ buttonKind?: 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'danger' | 'danger--tertiary' | 'danger--ghost';
53
+ }
54
+ export declare const PageHeaderBreadcrumbPageActions: {
55
+ ({ actions, className, overflowMenuLabel, buttonSize, buttonKind, ...other }: PageHeaderBreadcrumbPageActionsProps): React.JSX.Element;
56
+ displayName: string;
57
+ propTypes: {
58
+ /**
59
+ * Array of action items to display
60
+ */
61
+ actions: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
62
+ id: PropTypes.Validator<string>;
63
+ label: PropTypes.Validator<string>;
64
+ renderIcon: PropTypes.Validator<NonNullable<PropTypes.ReactComponentLike>>;
65
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
66
+ }>>[]>;
67
+ /**
68
+ * Kind of the action buttons
69
+ */
70
+ buttonKind: PropTypes.Requireable<string>;
71
+ /**
72
+ * Size of the action buttons
73
+ */
74
+ buttonSize: PropTypes.Requireable<string>;
75
+ /**
76
+ * Specify an optional className to be added to the component
77
+ */
78
+ className: PropTypes.Requireable<string>;
79
+ /**
80
+ * Aria label for the overflow menu
81
+ */
82
+ overflowMenuLabel: PropTypes.Requireable<string>;
83
+ };
84
+ };
85
+ //# sourceMappingURL=PageHeaderBreadcrumbPageActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeaderBreadcrumbPageActions.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderBreadcrumbPageActions.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,SAAS,MAAM,YAAY,CAAC;AAWnC;;;;GAIG;AAEH,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oCAAoC;IACnD;;OAEG;IACH,OAAO,EAAE,kCAAkC,EAAE,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,UAAU,CAAC,EACP,SAAS,GACT,WAAW,GACX,UAAU,GACV,OAAO,GACP,QAAQ,GACR,kBAAkB,GAClB,eAAe,CAAC;CACrB;AAED,eAAO,MAAM,+BAA+B;kFAOzC,oCAAoC;;;QA4ErC;;WAEG;;;;;;;QASH;;WAEG;;QAUH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;CAtCJ,CAAC"}
@@ -0,0 +1,102 @@
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
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
9
+ const require_index = require('../../../node_modules/classnames/index.js');
10
+ const require_PageHeaderUtils = require('../PageHeaderUtils.js');
11
+ let react = require("react");
12
+ react = require_runtime.__toESM(react);
13
+ let prop_types = require("prop-types");
14
+ prop_types = require_runtime.__toESM(prop_types);
15
+ let _carbon_react = require("@carbon/react");
16
+ let _carbon_utilities = require("@carbon/utilities");
17
+
18
+ //#region src/components/PageHeader/next/PageHeaderBreadcrumbPageActions.tsx
19
+ /**
20
+ * Copyright IBM Corp. 2026
21
+ *
22
+ * This source code is licensed under the Apache-2.0 license found in the
23
+ * LICENSE file in the root directory of this source tree.
24
+ */
25
+ var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.default);
26
+ const PageHeaderBreadcrumbPageActions = ({ actions, className, overflowMenuLabel = "More page actions", buttonSize = "md", buttonKind = "ghost", ...other }) => {
27
+ const containerRef = (0, react.useRef)(null);
28
+ const [hiddenItems, setHiddenItems] = (0, react.useState)([]);
29
+ const classNames = (0, import_classnames.default)(`${require_PageHeaderUtils.blockClass}__breadcrumb-page-actions`, className);
30
+ (0, react.useEffect)(() => {
31
+ if (!containerRef.current) return;
32
+ const handler = (0, _carbon_utilities.createOverflowHandler)({
33
+ container: containerRef.current,
34
+ onChange: (_visible, hidden) => {
35
+ const hiddenIds = hidden.map((el) => el.dataset.id);
36
+ setHiddenItems(actions.filter((item) => hiddenIds.includes(item.id)));
37
+ }
38
+ });
39
+ return () => handler.disconnect();
40
+ }, [actions]);
41
+ return /* @__PURE__ */ react.default.createElement("div", {
42
+ ref: containerRef,
43
+ className: classNames,
44
+ style: {
45
+ display: "inline-flex",
46
+ alignItems: "center",
47
+ justifyContent: "flex-end",
48
+ inlineSize: "50%"
49
+ },
50
+ ...other
51
+ }, actions.map((item) => /* @__PURE__ */ react.default.createElement("div", {
52
+ key: item.id,
53
+ "data-id": item.id
54
+ }, /* @__PURE__ */ react.default.createElement(_carbon_react.Button, {
55
+ renderIcon: item.renderIcon,
56
+ iconDescription: item.label,
57
+ hasIconOnly: true,
58
+ size: buttonSize,
59
+ kind: buttonKind,
60
+ onClick: item.onClick
61
+ }))), /* @__PURE__ */ react.default.createElement("div", {
62
+ "data-offset": true,
63
+ "data-hidden": true,
64
+ "data-floating-menu-container": true,
65
+ style: { position: "relative" }
66
+ }, /* @__PURE__ */ react.default.createElement(_carbon_react.FeatureFlags, { enableV12Overflowmenu: true }, /* @__PURE__ */ react.default.createElement(_carbon_react.OverflowMenu, {
67
+ size: buttonSize,
68
+ "aria-label": overflowMenuLabel
69
+ }, hiddenItems.map((item) => /* @__PURE__ */ react.default.createElement(_carbon_react.OverflowMenuItem, {
70
+ key: item.id,
71
+ itemText: item.label,
72
+ onClick: item.onClick
73
+ }))))));
74
+ };
75
+ PageHeaderBreadcrumbPageActions.displayName = "PageHeaderBreadcrumbPageActions";
76
+ PageHeaderBreadcrumbPageActions.propTypes = {
77
+ actions: prop_types.default.arrayOf(prop_types.default.shape({
78
+ id: prop_types.default.string.isRequired,
79
+ label: prop_types.default.string.isRequired,
80
+ renderIcon: prop_types.default.elementType.isRequired,
81
+ onClick: prop_types.default.func
82
+ }).isRequired).isRequired,
83
+ buttonKind: prop_types.default.oneOf([
84
+ "primary",
85
+ "secondary",
86
+ "tertiary",
87
+ "ghost",
88
+ "danger",
89
+ "danger--tertiary",
90
+ "danger--ghost"
91
+ ]),
92
+ buttonSize: prop_types.default.oneOf([
93
+ "sm",
94
+ "md",
95
+ "lg"
96
+ ]),
97
+ className: prop_types.default.string,
98
+ overflowMenuLabel: prop_types.default.string
99
+ };
100
+
101
+ //#endregion
102
+ exports.PageHeaderBreadcrumbPageActions = PageHeaderBreadcrumbPageActions;
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { type ComponentType, type FunctionComponent } from 'react';
8
+ import { type PageHeaderObserverState } from './context';
8
9
  /**
9
10
  * -----------------
10
11
  * PageHeaderContent
@@ -32,9 +33,10 @@ export interface PageHeaderContentProps {
32
33
  */
33
34
  contextualActions?: React.ReactNode;
34
35
  /**
35
- * The PageHeaderContent's page actions
36
+ * The PageHeaderContent's page actions.
37
+ * Can be a ReactNode or a function that receives observer state.
36
38
  */
37
- pageActions?: React.ReactNode;
39
+ pageActions?: React.ReactNode | ((state: PageHeaderObserverState) => React.ReactNode);
38
40
  }
39
41
  export declare const PageHeaderContent: React.ForwardRefExoticComponent<PageHeaderContentProps & React.RefAttributes<HTMLDivElement>>;
40
42
  //# sourceMappingURL=PageHeaderContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeaderContent.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderContent.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EACZ,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAKvB,MAAM,OAAO,CAAC;AAef;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAC/C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,eAAO,MAAM,iBAAiB,+FAiG5B,CAAC"}
1
+ {"version":3,"file":"PageHeaderContent.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderContent.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EACZ,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAC;AAaf,OAAO,EAAiB,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAExE;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAC/C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;;OAGG;IACH,WAAW,CAAC,EACR,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,iBAAiB,+FA2G5B,CAAC"}
@@ -27,9 +27,10 @@ var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.de
27
27
  const PageHeaderContent = react.default.forwardRef(function PageHeaderContent({ className, children, title, renderIcon: IconElement, contextualActions, pageActions, ...other }, ref) {
28
28
  const contentRef = (0, react.useRef)(null);
29
29
  const componentRef = ref ?? contentRef;
30
- const { setRefs, setPageActionsInstance } = require_context.usePageHeader();
30
+ const { setRefs, setPageActionsInstance, observerState } = require_context.usePageHeader();
31
31
  const classNames = (0, import_classnames.default)({ [`${require_PageHeaderUtils.blockClass}__content`]: true }, className);
32
32
  const titleRef = (0, react.useRef)(null);
33
+ const resolvedPageActions = (0, react.useMemo)(() => typeof pageActions === "function" ? pageActions(observerState) : pageActions, [pageActions, observerState]);
33
34
  (0, react.useEffect)(() => {
34
35
  if (componentRef?.current) setRefs((prev) => ({
35
36
  ...prev,
@@ -38,8 +39,8 @@ const PageHeaderContent = react.default.forwardRef(function PageHeaderContent({
38
39
  }));
39
40
  }, []);
40
41
  (0, react.useEffect)(() => {
41
- if (pageActions) setPageActionsInstance(pageActions);
42
- }, [pageActions]);
42
+ if (resolvedPageActions) setPageActionsInstance(resolvedPageActions);
43
+ }, [resolvedPageActions]);
43
44
  const [isEllipsisApplied, setIsEllipsisApplied] = (0, react.useState)(false);
44
45
  const isEllipsisActive = (element) => {
45
46
  setIsEllipsisApplied(element.offsetHeight < element.scrollHeight);
@@ -65,7 +66,7 @@ const PageHeaderContent = react.default.forwardRef(function PageHeaderContent({
65
66
  ref: titleRef,
66
67
  as: _carbon_react.Heading,
67
68
  className: `${require_PageHeaderUtils.blockClass}__content__title`
68
- }, title)), contextualActions && /* @__PURE__ */ react.default.createElement("div", { className: `${require_PageHeaderUtils.blockClass}__content__contextual-actions` }, contextualActions)), pageActions), children)));
69
+ }, title)), contextualActions && /* @__PURE__ */ react.default.createElement("div", { className: `${require_PageHeaderUtils.blockClass}__content__contextual-actions` }, contextualActions)), resolvedPageActions), children)));
69
70
  });
70
71
  PageHeaderContent.displayName = "PageHeaderContent";
71
72
  PageHeaderContent.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeaderContentPageActions.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderContentPageActions.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,SAAS,MAAM,YAAY,CAAC;AAOnC;;;;GAIG;AACH,MAAM,WAAW,iCAAiC;IAChD;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,4BAA4B;kEAMtC,iCAAiC;;;QAyGlC;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;CAnBJ,CAAC"}
1
+ {"version":3,"file":"PageHeaderContentPageActions.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderContentPageActions.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,SAAS,MAAM,YAAY,CAAC;AAOnC;;;;GAIG;AACH,MAAM,WAAW,iCAAiC;IAChD;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,4BAA4B;kEAMtC,iCAAiC;;;QA8GlC;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;CAnBJ,CAAC"}
@@ -26,8 +26,8 @@ let _carbon_utilities = require("@carbon/utilities");
26
26
  */
27
27
  var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.default);
28
28
  const PageHeaderContentPageActions = ({ className, children, menuButtonLabel = "Actions", actions, ...other }) => {
29
- const { setRefs, contentActionsClipped, breadcrumbActionsClipped, isContentActionsInBreadcrumbBar: isInBreadcrumbBar } = require_context.usePageHeader();
30
- const classNames = (0, import_classnames.default)(`${require_PageHeaderUtils.blockClass}__content__page-actions`, { [`${require_PageHeaderUtils.blockClass}__content__page-actions--clipped`]: isInBreadcrumbBar ? breadcrumbActionsClipped : contentActionsClipped }, className);
29
+ const { setRefs, observerState, isContentActionsInBreadcrumbBar: isInBreadcrumbBar, isFunctionalContentActions } = require_context.usePageHeader();
30
+ const classNames = (0, import_classnames.default)(`${require_PageHeaderUtils.blockClass}__content__page-actions`, { [`${require_PageHeaderUtils.blockClass}__content__page-actions--clipped`]: isInBreadcrumbBar ? isFunctionalContentActions ? false : !observerState.contentActionsClipped : observerState.contentActionsClipped }, className);
31
31
  const containerRef = (0, react.useRef)(null);
32
32
  const offsetRef = (0, react.useRef)(null);
33
33
  const [menuButtonVisibility, setMenuButtonVisibility] = (0, react.useState)(false);
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeaderScrollButton.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderScrollButton.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAc,MAAM,eAAe,CAAC;AAM5D,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,oGAkEjC,CAAC"}
1
+ {"version":3,"file":"PageHeaderScrollButton.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderScrollButton.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAc,MAAM,eAAe,CAAC;AAM5D,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,oGAmEjC,CAAC"}
@@ -24,7 +24,8 @@ let _carbon_react_icons = require("@carbon/react/icons");
24
24
  */
25
25
  var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.default);
26
26
  const PageHeaderScrollButton = react.default.forwardRef(function PageHeaderExpander({ className, children, label, onClick, collapseText = "Collapse", expandText = "Expand", ...other }, ref) {
27
- const { refs, fullyCollapsed } = require_context.usePageHeader();
27
+ const { refs, observerState } = require_context.usePageHeader();
28
+ const fullyCollapsed = observerState.fullyCollapsed;
28
29
  const handleScroller = (isFullyCollapsed) => {
29
30
  if (!refs?.contentRef?.current) return;
30
31
  const scrollableTarget = require_utils.scrollableAncestor(refs?.contentRef.current);
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeaderTitleBreadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderTitleBreadcrumb.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAkB,MAAM,eAAe,CAAC;AAIpE,eAAO,MAAM,yBAAyB,2FA+BpC,CAAC"}
1
+ {"version":3,"file":"PageHeaderTitleBreadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/PageHeaderTitleBreadcrumb.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAkB,MAAM,eAAe,CAAC;AAIpE,eAAO,MAAM,yBAAyB,2FAgCpC,CAAC"}
@@ -22,7 +22,8 @@ let _carbon_react = require("@carbon/react");
22
22
  */
23
23
  var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.default);
24
24
  const PageHeaderTitleBreadcrumb = (0, react.forwardRef)(({ className, children, ...other }, ref) => {
25
- const { titleClipped, refs } = require_context.usePageHeader();
25
+ const { observerState, refs } = require_context.usePageHeader();
26
+ const titleClipped = observerState.titleClipped;
26
27
  const hasContentElement = refs?.contentRef?.current;
27
28
  const shouldShow = !hasContentElement || titleClipped && !!refs?.titleRef;
28
29
  return /* @__PURE__ */ react.default.createElement(_carbon_react.BreadcrumbItem, {
@@ -16,16 +16,19 @@ export type PageHeaderRefs = {
16
16
  contentActions?: RefObject<HTMLDivElement | null>;
17
17
  breadcrumbActions?: RefObject<HTMLDivElement | null>;
18
18
  };
19
+ export type PageHeaderObserverState = {
20
+ fullyCollapsed: boolean;
21
+ titleClipped: boolean;
22
+ contentActionsClipped: boolean;
23
+ };
19
24
  type PageHeaderContextType = {
20
25
  refs?: PageHeaderRefs;
21
26
  setRefs: React.Dispatch<React.SetStateAction<PageHeaderRefs>>;
22
27
  pageActionsInstance?: React.ReactNode;
23
28
  setPageActionsInstance: React.Dispatch<React.SetStateAction<React.ReactNode>>;
24
- fullyCollapsed?: boolean;
25
- titleClipped?: boolean;
26
- contentActionsClipped?: boolean;
27
- breadcrumbActionsClipped?: boolean;
29
+ observerState: PageHeaderObserverState;
28
30
  isContentActionsInBreadcrumbBar?: boolean;
31
+ isFunctionalContentActions?: boolean;
29
32
  };
30
33
  export declare const PageHeaderContext: import("react").Context<PageHeaderContextType | undefined>;
31
34
  export declare function usePageHeader(): PageHeaderContextType;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,iBAAiB,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,sBAAsB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,4DAU5B,CAAC;AAEH,wBAAgB,aAAa,0BAQ5B"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,iBAAiB,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,sBAAsB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,aAAa,EAAE,uBAAuB,CAAC;IACvC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,4DAY5B,CAAC;AAEH,wBAAgB,aAAa,0BAQ5B"}
@@ -16,13 +16,15 @@ let react = require("react");
16
16
  * LICENSE file in the root directory of this source tree.
17
17
  */
18
18
  const PageHeaderContext = (0, react.createContext)({
19
- fullyCollapsed: false,
20
19
  setRefs: () => {},
21
20
  refs: {},
22
- titleClipped: false,
23
- contentActionsClipped: false,
24
21
  pageActionsInstance: null,
25
- setPageActionsInstance: () => {}
22
+ setPageActionsInstance: () => {},
23
+ observerState: {
24
+ fullyCollapsed: false,
25
+ titleClipped: false,
26
+ contentActionsClipped: false
27
+ }
26
28
  });
27
29
  function usePageHeader() {
28
30
  const context = (0, react.useContext)(PageHeaderContext);
@@ -4,7 +4,7 @@
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
- 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 { PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderContentPageActionsProps, PageHeaderContentTextProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, PageHeaderScrollButtonProps, PageHeaderTagOverflowProps, PageHeaderBreadcrumbOverflowProps, } from './PageHeader';
7
+ export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderContentPageActions, PageHeaderContentText, PageHeaderTabBar, PageHeaderHeroImage, PageHeaderScrollButton, PageHeaderTitleBreadcrumb, PageHeaderBreadcrumbOverflow, PageHeaderTagOverflow, PageHeaderBreadcrumbPageActions, Root, BreadcrumbBar, Content, ContentPageActions, ContentText, TabBar, HeroImage, ScrollButton, TitleBreadcrumb, BreadcrumbOverflow, TagOverflow, BreadcrumbPageActions, } from './PageHeader';
8
+ export type { PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderContentPageActionsProps, PageHeaderContentTextProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, PageHeaderScrollButtonProps, PageHeaderTagOverflowProps, PageHeaderBreadcrumbOverflowProps, PageHeaderBreadcrumbPageActionsProps, PageHeaderBreadcrumbPageActionItem, } from './PageHeader';
9
9
  export type { PageHeaderProps } from './PageHeader';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EAErB,IAAI,EACJ,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,iCAAiC,EACjC,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/PageHeader/next/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,+BAA+B,EAE/B,IAAI,EACJ,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,iCAAiC,EACjC,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EACjC,oCAAoC,EACpC,kCAAkC,GACnC,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -16,12 +16,14 @@ const require_PageHeaderTagOverflow = require('./PageHeaderTagOverflow.js');
16
16
  const require_PageHeaderScrollButton = require('./PageHeaderScrollButton.js');
17
17
  const require_PageHeaderTitleBreadcrumb = require('./PageHeaderTitleBreadcrumb.js');
18
18
  const require_PageHeaderBreadcrumbOverflow = require('./PageHeaderBreadcrumbOverflow.js');
19
+ const require_PageHeaderBreadcrumbPageActions = require('./PageHeaderBreadcrumbPageActions.js');
19
20
  const require_PageHeader = require('./PageHeader.js');
20
21
 
21
22
  //#region src/components/PageHeader/next/index.ts
22
23
  var next_exports = /* @__PURE__ */ require_runtime.__exportAll({
23
24
  BreadcrumbBar: () => require_PageHeader.BreadcrumbBar,
24
25
  BreadcrumbOverflow: () => require_PageHeader.BreadcrumbOverflow,
26
+ BreadcrumbPageActions: () => require_PageHeader.BreadcrumbPageActions,
25
27
  Content: () => require_PageHeader.Content,
26
28
  ContentPageActions: () => require_PageHeader.ContentPageActions,
27
29
  ContentText: () => require_PageHeader.ContentText,
@@ -29,6 +31,7 @@ var next_exports = /* @__PURE__ */ require_runtime.__exportAll({
29
31
  PageHeader: () => require_PageHeader.PageHeader,
30
32
  PageHeaderBreadcrumbBar: () => require_PageHeaderBreadcrumbBar.PageHeaderBreadcrumbBar,
31
33
  PageHeaderBreadcrumbOverflow: () => require_PageHeaderBreadcrumbOverflow.PageHeaderBreadcrumbOverflow,
34
+ PageHeaderBreadcrumbPageActions: () => require_PageHeaderBreadcrumbPageActions.PageHeaderBreadcrumbPageActions,
32
35
  PageHeaderContent: () => require_PageHeaderContent.PageHeaderContent,
33
36
  PageHeaderContentPageActions: () => require_PageHeaderContentPageActions.PageHeaderContentPageActions,
34
37
  PageHeaderContentText: () => require_PageHeaderContentText.PageHeaderContentText,
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.87.1",
4
+ "version": "2.88.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -78,7 +78,7 @@
78
78
  "@types/react-table": "^7.7.20",
79
79
  "@vitejs/plugin-react": "^5.0.0",
80
80
  "babel-plugin-dev-expression": "^0.2.3",
81
- "babel-preset-ibm-cloud-cognitive": "^0.45.0",
81
+ "babel-preset-ibm-cloud-cognitive": "^0.46.0",
82
82
  "change-case": "5.4.4",
83
83
  "classnames": "^2.5.1",
84
84
  "copyfiles": "^2.4.1",
@@ -86,7 +86,7 @@
86
86
  "fs-extra": "^11.3.0",
87
87
  "glob": "^13.0.0",
88
88
  "jest": "^29.7.0",
89
- "jest-config-ibm-cloud-cognitive": "^1.46.0",
89
+ "jest-config-ibm-cloud-cognitive": "^1.47.0",
90
90
  "jest-environment-jsdom": "^29.7.0",
91
91
  "namor": "^1.1.2",
92
92
  "npm-run-all2": "^8.0.0",
@@ -106,7 +106,7 @@
106
106
  "@babel/runtime": "^7.26.10",
107
107
  "@carbon-labs/react-resizer": "^0.10.0",
108
108
  "@carbon/feature-flags": "^1.0.0",
109
- "@carbon/ibm-products-styles": "^2.83.0",
109
+ "@carbon/ibm-products-styles": "^2.84.0",
110
110
  "@carbon/telemetry": "^0.1.0",
111
111
  "@carbon/utilities": "^0.16.0",
112
112
  "@carbon/utilities-react": "0.19.0",
@@ -130,5 +130,5 @@
130
130
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0 || ^19.0.0",
131
131
  "react-is": "^16.13.1 || ^17.0.2 || ^18.3.1 || ^19.0.0"
132
132
  },
133
- "gitHead": "5133a19e5ebd3042b7b017f271cfdc26fd2b30f4"
133
+ "gitHead": "36887ec0e0e106020b0234f7e089d269de9ce404"
134
134
  }
@@ -40,6 +40,7 @@ $one-grid-column: calc(100% / 16);
40
40
  }
41
41
 
42
42
  &--progress {
43
+ overflow: auto;
43
44
  margin-block-end: $spacing-04;
44
45
  }
45
46
 
@@ -65,9 +66,12 @@ $one-grid-column: calc(100% / 16);
65
66
  position: relative;
66
67
  background-color: $background;
67
68
  margin-block-end: 0 !important;
68
- min-block-size: $spacing-09;
69
69
  padding-block-start: $spacing-06;
70
- padding-inline-start: $spacing-07 !important;
70
+ padding-inline-start: $spacing-07;
71
+
72
+ @include breakpoint-down(md) {
73
+ padding-inline: $spacing-05;
74
+ }
71
75
 
72
76
  &:empty {
73
77
  min-block-size: 0;
@@ -107,27 +111,50 @@ $one-grid-column: calc(100% / 16);
107
111
 
108
112
  // FOOTER
109
113
  &--footer {
110
- display: flex;
111
- box-sizing: initial;
112
- flex-direction: row;
113
- justify-content: flex-end;
114
114
  background: $background;
115
115
  border-block-start: 1px solid $border-subtle-01;
116
116
  inline-size: 100%;
117
117
 
118
- #{$block}--prev-btn,
119
- #{$block}--next-btn,
120
- #{$block}--start-btn {
121
- inline-size: calc($one-grid-column * 3);
122
- min-inline-size: 12.5rem;
123
- padding-block-end: $spacing-07;
118
+ @include breakpoint-down(md) {
119
+ block-size: auto;
120
+ }
121
+
122
+ // ButtonSet wrapper
123
+ .#{carbon-config.$prefix}--btn-set {
124
+ display: flex;
125
+ justify-content: flex-end;
126
+ inline-size: 100%;
127
+ }
128
+
129
+ // On small screens, split width equally among all buttons
130
+ @include breakpoint-down(md) {
131
+ #{$block}--prev-btn,
132
+ #{$block}--next-btn,
133
+ #{$block}--start-btn,
134
+ #{$block}--skip-btn {
135
+ flex: 1 1 0;
136
+ inline-size: auto;
137
+ max-inline-size: none;
138
+ min-inline-size: 0;
139
+ }
124
140
  }
125
141
 
126
- #{$block}--skip-btn {
127
- flex-grow: 1 !important;
128
- max-inline-size: none;
129
- padding-inline-start: $spacing-07;
142
+ // On larger screens, fixed widths for action buttons, flexible skip
143
+ @include breakpoint(md) {
144
+ #{$block}--prev-btn,
145
+ #{$block}--next-btn,
146
+ #{$block}--start-btn {
147
+ flex-shrink: 0;
148
+ inline-size: calc($spacing-11 * 3); // 240px
149
+ max-inline-size: 15rem;
150
+ }
151
+
152
+ #{$block}--skip-btn {
153
+ flex: 1 1 auto;
154
+ max-inline-size: none;
155
+ }
130
156
  }
157
+
131
158
  .#{carbon-config.$prefix}--inline-loading {
132
159
  position: absolute;
133
160
  inline-size: $spacing-07;
@@ -787,7 +787,7 @@ $duration: 1000ms;
787
787
 
788
788
  .#{$block-class}__breadcrumb__actions {
789
789
  display: inline-flex;
790
- flex: 1 1 0%;
790
+ flex: 0 0 auto;
791
791
  justify-content: flex-end;
792
792
  min-inline-size: 75%;
793
793
 
@@ -813,8 +813,32 @@ $duration: 1000ms;
813
813
  .#{$block-class}__breadcrumb-wrapper .#{$block-class}-breadcrumb-overflow {
814
814
  flex: 1 1 0%;
815
815
  min-inline-size: 0;
816
+
816
817
  .#{$carbon-prefix}--breadcrumb {
817
818
  display: flex;
819
+ flex-wrap: nowrap;
820
+ }
821
+
822
+ .#{$carbon-prefix}--breadcrumb-item[data-fixed='true'] {
823
+ .#{$carbon-prefix}--link {
824
+ display: block;
825
+ overflow: hidden;
826
+ inline-size: 100%;
827
+ text-overflow: ellipsis;
828
+ white-space: nowrap;
829
+ }
830
+
831
+ @include breakpoint-down(lg) {
832
+ .#{$carbon-prefix}--link {
833
+ inline-size: 75%;
834
+ }
835
+ }
836
+
837
+ @include breakpoint-down(md) {
838
+ .#{$carbon-prefix}--link {
839
+ inline-size: 25%;
840
+ }
841
+ }
818
842
  }
819
843
  }
820
844
 
package/telemetry.yml CHANGED
@@ -862,6 +862,9 @@ collect:
862
862
  - hasBackgroundAlways
863
863
  - hasCollapseHeaderToggle
864
864
  - narrowGrid
865
+ - onContentActionsClipped
866
+ - onContentFullyCollapsed
867
+ - onTitleClipped
865
868
  - pageActionsMenuOptionsClass
866
869
  - pageActionsOverflowLabel
867
870
  - withoutBackground
@@ -871,6 +874,9 @@ collect:
871
874
  - pageActionsFlush
872
875
  # PageHeaderBreadcrumbOverflow
873
876
  - renderOverflowBreadcrumb
877
+ # PageHeaderBreadcrumbPageActions
878
+ - buttonKind
879
+ - overflowMenuLabel
874
880
  # PageHeaderContent
875
881
  - contextualActions
876
882
  # PageHeaderContentPageActions
@@ -1048,6 +1054,10 @@ collect:
1048
1054
  - order-7-cyan
1049
1055
  - order-8-gray
1050
1056
  - order-9-green
1057
+ # General - buttonSize
1058
+ - lg
1059
+ - md
1060
+ - sm
1051
1061
  # General - cellSize
1052
1062
  - lg
1053
1063
  - md
@@ -1268,6 +1278,14 @@ collect:
1268
1278
  - short
1269
1279
  # PageHeader - fullWidthGrid
1270
1280
  - xl
1281
+ # PageHeaderBreadcrumbPageActions - buttonKind
1282
+ - danger
1283
+ - danger--ghost
1284
+ - danger--tertiary
1285
+ - ghost
1286
+ - primary
1287
+ - secondary
1288
+ - tertiary
1271
1289
  # StackProvider - stackStepSize
1272
1290
  - lg
1273
1291
  - md