@carbon/react 1.79.0 → 1.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +835 -779
  2. package/es/components/CodeSnippet/CodeSnippet.js +1 -1
  3. package/es/components/ComposedModal/ComposedModal.d.ts +6 -0
  4. package/es/components/ComposedModal/ModalFooter.d.ts +6 -0
  5. package/es/components/ContainedList/index.js +1 -1
  6. package/es/components/DataTable/DataTable.d.ts +3 -1
  7. package/es/components/DatePicker/DatePicker.d.ts +1 -1
  8. package/es/components/DatePicker/DatePicker.js +1 -1
  9. package/es/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +6 -0
  10. package/es/components/InlineLoading/InlineLoading.js +10 -2
  11. package/es/components/Layer/LayerLevel.d.ts +6 -0
  12. package/es/components/Menu/Menu.d.ts +1 -1
  13. package/es/components/Menu/MenuItem.d.ts +4 -4
  14. package/es/components/Menu/MenuItem.js +1 -1
  15. package/es/components/Modal/Modal.js +1 -1
  16. package/es/components/ModalWrapper/ModalWrapper.d.ts +1 -1
  17. package/es/components/ModalWrapper/ModalWrapper.js +2 -1
  18. package/es/components/Notification/Notification.js +1 -1
  19. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  20. package/es/components/OverflowMenu/OverflowMenu.js +3 -3
  21. package/es/components/OverflowMenuItem/OverflowMenuItem.js +1 -3
  22. package/es/components/OverflowMenuV2/index.js +1 -1
  23. package/es/components/PageHeader/PageHeader.d.ts +101 -0
  24. package/es/components/PageHeader/PageHeader.js +241 -0
  25. package/es/components/PageHeader/index.d.ts +8 -0
  26. package/es/components/PageHeader/index.js +8 -0
  27. package/es/components/PasswordInput/index.d.ts +6 -0
  28. package/es/components/Popover/index.js +1 -1
  29. package/es/components/Slider/SliderHandles.d.ts +6 -0
  30. package/es/components/Tag/DismissibleTag.d.ts +1 -55
  31. package/es/components/Tag/DismissibleTag.js +6 -4
  32. package/es/components/Tag/OperationalTag.d.ts +1 -1
  33. package/es/components/Tag/SelectableTag.d.ts +1 -43
  34. package/es/components/Tag/SelectableTag.js +7 -5
  35. package/es/components/Tag/Tag.js +2 -2
  36. package/es/components/Text/createTextComponent.js +1 -1
  37. package/es/components/TextArea/TextArea.d.ts +3 -3
  38. package/es/components/TextArea/TextArea.js +5 -2
  39. package/es/components/TextInput/ControlledPasswordInput.d.ts +6 -0
  40. package/es/components/TextInput/ControlledPasswordInput.js +1 -1
  41. package/es/components/TextInput/PasswordInput.d.ts +6 -0
  42. package/es/components/TextInput/index.js +1 -1
  43. package/es/components/Tile/Tile.d.ts +1 -1
  44. package/es/components/Tile/Tile.js +1 -4
  45. package/es/components/TreeView/TreeNode.d.ts +1 -1
  46. package/es/components/TreeView/TreeNode.js +11 -4
  47. package/es/components/TreeView/TreeView.d.ts +1 -1
  48. package/es/components/TreeView/TreeView.js +6 -6
  49. package/es/components/UIShell/Switcher.d.ts +1 -7
  50. package/es/components/UIShell/SwitcherDivider.d.ts +6 -0
  51. package/es/components/UIShell/SwitcherItem.d.ts +6 -0
  52. package/es/index.d.ts +5 -1
  53. package/es/index.js +3 -1
  54. package/es/internal/ClickListener.d.ts +13 -0
  55. package/es/internal/ClickListener.js +33 -60
  56. package/es/internal/FloatingMenu.js +2 -2
  57. package/es/internal/PolymorphicProps.d.ts +6 -0
  58. package/es/internal/deprecateFieldOnObject.d.ts +12 -0
  59. package/es/internal/deprecateFieldOnObject.js +4 -4
  60. package/es/internal/useControllableState.d.ts +34 -0
  61. package/es/internal/useControllableState.js +17 -32
  62. package/es/internal/useEvent.js +1 -1
  63. package/es/internal/useMergedRefs.d.ts +9 -6
  64. package/es/internal/useMergedRefs.js +8 -9
  65. package/es/internal/useNoInteractiveChildren.js +2 -2
  66. package/es/internal/useOutsideClick.d.ts +8 -0
  67. package/es/internal/useOutsideClick.js +9 -6
  68. package/es/internal/useSavedCallback.d.ts +15 -0
  69. package/es/internal/useSavedCallback.js +9 -12
  70. package/es/internal/warning.d.ts +17 -0
  71. package/es/internal/warning.js +16 -12
  72. package/es/internal/wrapFocus.js +1 -1
  73. package/es/prop-types/isRequiredOneOf.js +1 -1
  74. package/es/prop-types/requiredIfGivenPropIsTruthy.js +1 -1
  75. package/es/tools/events.js +1 -6
  76. package/es/tools/toggleClass.js +6 -0
  77. package/es/types/common.d.ts +6 -0
  78. package/lib/components/CodeSnippet/CodeSnippet.js +1 -1
  79. package/lib/components/ComposedModal/ComposedModal.d.ts +6 -0
  80. package/lib/components/ComposedModal/ModalFooter.d.ts +6 -0
  81. package/lib/components/ContainedList/index.js +1 -1
  82. package/lib/components/DataTable/DataTable.d.ts +3 -1
  83. package/lib/components/DatePicker/DatePicker.d.ts +1 -1
  84. package/lib/components/DatePicker/DatePicker.js +1 -1
  85. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +6 -0
  86. package/lib/components/InlineLoading/InlineLoading.js +10 -2
  87. package/lib/components/Layer/LayerLevel.d.ts +6 -0
  88. package/lib/components/Menu/Menu.d.ts +1 -1
  89. package/lib/components/Menu/MenuItem.d.ts +4 -4
  90. package/lib/components/Menu/MenuItem.js +1 -1
  91. package/lib/components/Modal/Modal.js +1 -1
  92. package/lib/components/ModalWrapper/ModalWrapper.d.ts +1 -1
  93. package/lib/components/ModalWrapper/ModalWrapper.js +2 -1
  94. package/lib/components/Notification/Notification.js +1 -1
  95. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  96. package/lib/components/OverflowMenu/OverflowMenu.js +3 -3
  97. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +1 -3
  98. package/lib/components/OverflowMenuV2/index.js +1 -1
  99. package/lib/components/PageHeader/PageHeader.d.ts +101 -0
  100. package/lib/components/PageHeader/PageHeader.js +260 -0
  101. package/lib/components/PageHeader/index.d.ts +8 -0
  102. package/lib/components/PageHeader/index.js +25 -0
  103. package/lib/components/PasswordInput/index.d.ts +6 -0
  104. package/lib/components/Popover/index.js +1 -1
  105. package/lib/components/Slider/SliderHandles.d.ts +6 -0
  106. package/lib/components/Tag/DismissibleTag.d.ts +1 -55
  107. package/lib/components/Tag/DismissibleTag.js +5 -3
  108. package/lib/components/Tag/OperationalTag.d.ts +1 -1
  109. package/lib/components/Tag/SelectableTag.d.ts +1 -43
  110. package/lib/components/Tag/SelectableTag.js +6 -4
  111. package/lib/components/Tag/Tag.js +2 -2
  112. package/lib/components/Text/createTextComponent.js +1 -1
  113. package/lib/components/TextArea/TextArea.d.ts +3 -3
  114. package/lib/components/TextArea/TextArea.js +4 -1
  115. package/lib/components/TextInput/ControlledPasswordInput.d.ts +6 -0
  116. package/lib/components/TextInput/ControlledPasswordInput.js +1 -1
  117. package/lib/components/TextInput/PasswordInput.d.ts +6 -0
  118. package/lib/components/TextInput/index.js +1 -1
  119. package/lib/components/Tile/Tile.d.ts +1 -1
  120. package/lib/components/Tile/Tile.js +1 -4
  121. package/lib/components/TreeView/TreeNode.d.ts +1 -1
  122. package/lib/components/TreeView/TreeNode.js +11 -4
  123. package/lib/components/TreeView/TreeView.d.ts +1 -1
  124. package/lib/components/TreeView/TreeView.js +6 -6
  125. package/lib/components/UIShell/Switcher.d.ts +1 -7
  126. package/lib/components/UIShell/SwitcherDivider.d.ts +6 -0
  127. package/lib/components/UIShell/SwitcherItem.d.ts +6 -0
  128. package/lib/index.d.ts +5 -1
  129. package/lib/index.js +62 -57
  130. package/lib/internal/ClickListener.d.ts +13 -0
  131. package/lib/internal/ClickListener.js +32 -64
  132. package/lib/internal/FloatingMenu.js +2 -2
  133. package/lib/internal/PolymorphicProps.d.ts +6 -0
  134. package/lib/internal/deprecateFieldOnObject.d.ts +12 -0
  135. package/lib/internal/deprecateFieldOnObject.js +4 -4
  136. package/lib/internal/useControllableState.d.ts +34 -0
  137. package/lib/internal/useControllableState.js +17 -32
  138. package/lib/internal/useEvent.js +1 -1
  139. package/lib/internal/useMergedRefs.d.ts +9 -6
  140. package/lib/internal/useMergedRefs.js +8 -9
  141. package/lib/internal/useNoInteractiveChildren.js +2 -2
  142. package/lib/internal/useOutsideClick.d.ts +8 -0
  143. package/lib/internal/useOutsideClick.js +9 -6
  144. package/lib/internal/useSavedCallback.d.ts +15 -0
  145. package/lib/internal/useSavedCallback.js +9 -12
  146. package/lib/internal/warning.d.ts +17 -0
  147. package/lib/internal/warning.js +16 -12
  148. package/lib/internal/wrapFocus.js +1 -1
  149. package/lib/prop-types/isRequiredOneOf.js +1 -1
  150. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +1 -1
  151. package/lib/tools/events.js +1 -6
  152. package/lib/tools/toggleClass.js +6 -0
  153. package/lib/types/common.d.ts +6 -0
  154. package/package.json +9 -8
  155. package/scss/components/page-header/_index.scss +9 -0
  156. package/scss/components/page-header/_page-header.scss +9 -0
  157. package/telemetry.yml +62 -23
@@ -14,7 +14,7 @@ var ContainedList = require('./ContainedList.js');
14
14
  var ContainedListItem = require('./ContainedListItem/ContainedListItem.js');
15
15
 
16
16
  ContainedList["default"].ContainedListItem = ContainedListItem["default"];
17
- if (process.env.NODE_ENV !== "production") {
17
+ if (process.env.NODE_ENV !== 'production') {
18
18
  deprecateFieldOnObject.deprecateFieldOnObject(ContainedList["default"], 'ContainedListItem', ContainedListItem["default"]);
19
19
  }
20
20
 
@@ -201,10 +201,12 @@ export interface DataTableProps<RowType, ColTypes extends any[]> extends Transla
201
201
  render?: (renderProps: DataTableRenderProps<RowType, ColTypes>) => React.ReactElement;
202
202
  rows: Array<Omit<DataTableRow<ColTypes>, 'cells'>>;
203
203
  size?: DataTableSize;
204
- sortRow?: (cellA: DataTableCell<any>, cellB: DataTableCell<any>, sortRowOptions: {
204
+ sortRow?: (cellA: any, cellB: any, sortRowOptions: {
205
205
  sortDirection: DataTableSortState;
206
206
  sortStates: Record<DataTableSortState, DataTableSortState>;
207
207
  locale: string;
208
+ key: string;
209
+ compare: (a: number | string, b: number | string, locale?: string) => number;
208
210
  }) => number;
209
211
  stickyHeader?: boolean;
210
212
  useStaticWidth?: boolean;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -369,7 +369,7 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
369
369
  nextArrow: rightArrowHTML,
370
370
  prevArrow: leftArrowHTML,
371
371
  onChange: function () {
372
- if (savedOnChange && !readOnly) {
372
+ if (!readOnly) {
373
373
  savedOnChange(...arguments);
374
374
  }
375
375
  },
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2024
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
+ */
1
7
  import React from 'react';
2
8
  export interface FluidTextAreaSkeletonProps {
3
9
  /**
@@ -63,9 +63,9 @@ const InlineLoading = _ref => {
63
63
  className: `${prefix}--inline-loading__checkmark-container`
64
64
  }, /*#__PURE__*/React__default["default"].createElement("title", null, iconLabel));
65
65
  }
66
- if (status === 'inactive' || status === 'active') {
66
+ if (status === 'active') {
67
67
  if (!iconDescription) {
68
- iconLabel = status === 'active' ? 'loading' : 'not loading';
68
+ iconLabel = 'loading';
69
69
  }
70
70
  return /*#__PURE__*/React__default["default"].createElement(Loading["default"], {
71
71
  small: true,
@@ -74,6 +74,14 @@ const InlineLoading = _ref => {
74
74
  active: status === 'active'
75
75
  });
76
76
  }
77
+ if (status === 'inactive') {
78
+ if (!iconDescription) {
79
+ iconLabel = 'not loading';
80
+ }
81
+ return /*#__PURE__*/React__default["default"].createElement("title", {
82
+ className: `${prefix}--inline-loading__inactive-status`
83
+ }, iconLabel);
84
+ }
77
85
  return undefined;
78
86
  };
79
87
  const loadingText = description && /*#__PURE__*/React__default["default"].createElement("div", {
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2023
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
+ */
1
7
  export declare const levels: readonly ["one", "two", "three"];
2
8
  export declare const MIN_LEVEL = 0;
3
9
  export declare const MAX_LEVEL: number;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2025
2
+ * Copyright IBM Corp. 2023, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import React, { ChangeEventHandler, ComponentProps, FC, KeyboardEvent, LiHTMLAttributes, MouseEvent, ReactNode } from 'react';
7
+ import React, { ComponentProps, FC, KeyboardEvent, LiHTMLAttributes, MouseEvent, ReactNode } from 'react';
8
8
  export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
9
9
  /**
10
10
  * Optionally provide another Menu to create a submenu. props.children can't be used to specify the content of the MenuItem itself. Use props.label instead.
@@ -48,7 +48,7 @@ export interface MenuItemSelectableProps extends Omit<MenuItemProps, 'onChange'>
48
48
  /**
49
49
  * Provide an optional function to be called when the selection state changes.
50
50
  */
51
- onChange?: ChangeEventHandler<HTMLLIElement>;
51
+ onChange?: (checked: boolean) => void;
52
52
  /**
53
53
  * Controls the state of this option.
54
54
  */
@@ -94,7 +94,7 @@ export interface MenuItemRadioGroupProps<Item> extends Omit<ComponentProps<'ul'>
94
94
  /**
95
95
  * Provide an optional function to be called when the selection changes.
96
96
  */
97
- onChange?: ChangeEventHandler<HTMLLIElement>;
97
+ onChange?: (selectedItem: Item) => void;
98
98
  /**
99
99
  * Provide props.selectedItem to control the state of this radio group. Must match the type of props.items.
100
100
  */
@@ -343,7 +343,7 @@ const MenuItemRadioGroup = /*#__PURE__*/React.forwardRef(function MenuItemRadioG
343
343
  const [selection, setSelection] = useControllableState.useControllableState({
344
344
  value: selectedItem,
345
345
  onChange,
346
- defaultValue: defaultSelectedItem
346
+ defaultValue: defaultSelectedItem ?? {}
347
347
  });
348
348
  function handleClick(item, e) {
349
349
  setSelection(item);
@@ -208,7 +208,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
208
208
  if (!enableDialogElement) {
209
209
  const initialFocus = focusContainerElement => {
210
210
  const containerElement = focusContainerElement || innerModal.current;
211
- const primaryFocusElement = containerElement ? containerElement.querySelector(danger ? `.${prefix}--btn--secondary` : selectorPrimaryFocus) : null;
211
+ const primaryFocusElement = containerElement && (containerElement.querySelector(selectorPrimaryFocus) || danger && containerElement.querySelector(`.${prefix}--btn--secondary`));
212
212
  if (primaryFocusElement) {
213
213
  return primaryFocusElement;
214
214
  }
@@ -36,7 +36,7 @@ interface ModelWrapperState {
36
36
  isOpen: boolean;
37
37
  }
38
38
  export default class ModalWrapper extends React.Component<ModalWrapperProps, ModelWrapperState> {
39
- if(__DEV__: any): void;
39
+ if(isDev: any): void;
40
40
  static propTypes: {
41
41
  buttonTriggerClassName: PropTypes.Requireable<string>;
42
42
  buttonTriggerText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -26,6 +26,7 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
26
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
27
 
28
28
  let didWarnAboutDeprecation = false;
29
+ process.env.NODE_ENV !== 'production';
29
30
  class ModalWrapper extends React__default["default"].Component {
30
31
  constructor() {
31
32
  super(...arguments);
@@ -61,7 +62,7 @@ class ModalWrapper extends React__default["default"].Component {
61
62
  handleSubmit?.(evt);
62
63
  });
63
64
  }
64
- if(__DEV__) {
65
+ if(isDev) {
65
66
  process.env.NODE_ENV !== "production" ? warning.warning(didWarnAboutDeprecation, '`<ModalWrapper>` has been deprecated in favor of `<ComposedModal/>` and will be removed in the next major version, `@carbon/react@v2.x`') : void 0;
66
67
  didWarnAboutDeprecation = true;
67
68
  }
@@ -822,7 +822,7 @@ Callout.propTypes = {
822
822
 
823
823
  let didWarnAboutDeprecation = false;
824
824
  const StaticNotification = props => {
825
- if (process.env.NODE_ENV !== "production") {
825
+ if (process.env.NODE_ENV !== 'production') {
826
826
  process.env.NODE_ENV !== "production" ? warning.warning(didWarnAboutDeprecation, '`StaticNotification` has been renamed to `Callout`.' + 'Run the following codemod to automatically update usages in your' + 'project: `npx @carbon/upgrade migrate refactor-to-callout --write`') : void 0;
827
827
  didWarnAboutDeprecation = true;
828
828
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -75,7 +75,7 @@ const triggerButtonPositionFactors = {
75
75
  const getMenuOffset = (menuBody, direction, trigger, flip) => {
76
76
  const triggerButtonPositionProp = triggerButtonPositionProps[direction];
77
77
  const triggerButtonPositionFactor = triggerButtonPositionFactors[direction];
78
- if (process.env.NODE_ENV !== "production") {
78
+ if (process.env.NODE_ENV !== 'production') {
79
79
  !(triggerButtonPositionProp && triggerButtonPositionFactor) ? process.env.NODE_ENV !== "production" ? invariant__default["default"](false, '[OverflowMenu] wrong floating menu direction: `%s`', direction) : invariant__default["default"](false) : void 0;
80
80
  }
81
81
  const {
@@ -212,7 +212,7 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
212
212
  }
213
213
  };
214
214
  const handleClickOutside = evt => {
215
- if (open && (!menuBodyRef.current || !menuBodyRef.current.contains(evt.target))) {
215
+ if (open && (!menuBodyRef.current || evt.target instanceof Node && !menuBodyRef.current.contains(evt.target))) {
216
216
  closeMenu();
217
217
  }
218
218
  };
@@ -325,7 +325,7 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
325
325
  }, /*#__PURE__*/React.cloneElement(menuBody, {
326
326
  'data-floating-menu-direction': direction
327
327
  }));
328
- return /*#__PURE__*/React__default["default"].createElement(ClickListener["default"], {
328
+ return /*#__PURE__*/React__default["default"].createElement(ClickListener.ClickListener, {
329
329
  onClickOutside: handleClickOutside
330
330
  }, /*#__PURE__*/React__default["default"].createElement("span", {
331
331
  className: `${prefix}--overflow-menu__wrapper`,
@@ -65,9 +65,7 @@ const OverflowMenuItem = /*#__PURE__*/React__default["default"].forwardRef(funct
65
65
  closeMenu();
66
66
  }
67
67
  }
68
- if (process.env.NODE_ENV !== "production") {
69
- process.env.NODE_ENV !== "production" ? warning.warning(closeMenu, '`<OverflowMenuItem>` detected missing `closeMenu` prop. ' + '`closeMenu` is required to let `<OverflowMenu>` close the menu upon actions on `<OverflowMenuItem>`. ' + 'Please make sure `<OverflowMenuItem>` is a direct child of `<OverflowMenu>.') : void 0;
70
- }
68
+ process.env.NODE_ENV !== "production" ? warning.warning(!!closeMenu, '`<OverflowMenuItem>` detected missing `closeMenu` prop. ' + '`closeMenu` is required to let `<OverflowMenu>` close the menu upon actions on `<OverflowMenuItem>`. ' + 'Please make sure `<OverflowMenuItem>` is a direct child of `<OverflowMenu>.') : void 0;
71
69
  const overflowMenuBtnClasses = cx__default["default"](`${prefix}--overflow-menu-options__btn`, className);
72
70
  const overflowMenuItemClasses = cx__default["default"](`${prefix}--overflow-menu-options__option`, {
73
71
  [`${prefix}--overflow-menu--divider`]: hasDivider,
@@ -20,7 +20,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
20
 
21
21
  let didWarnAboutDeprecation = false;
22
22
  function OverflowMenuV2(props) {
23
- if (process.env.NODE_ENV !== "production") {
23
+ if (process.env.NODE_ENV !== 'production') {
24
24
  process.env.NODE_ENV !== "production" ? warning.warning(didWarnAboutDeprecation, '`<OverflowMenuV2>` is deprecated and will be removed in the next major version. Use `<OverflowMenu>` with the `enable-v12-overflowmenu` feature flag instead.') : void 0;
25
25
  didWarnAboutDeprecation = true;
26
26
  }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { type ComponentType, type FunctionComponent } from 'react';
8
+ /**
9
+ * ----------
10
+ * PageHeader
11
+ * ----------
12
+ */
13
+ interface PageHeaderProps {
14
+ children?: React.ReactNode;
15
+ className?: string;
16
+ }
17
+ declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
18
+ /**
19
+ * -----------------------
20
+ * PageHeaderBreadcrumbBar
21
+ * -----------------------
22
+ */
23
+ interface PageHeaderBreadcrumbBarProps {
24
+ children?: React.ReactNode;
25
+ className?: string;
26
+ }
27
+ declare const PageHeaderBreadcrumbBar: React.ForwardRefExoticComponent<PageHeaderBreadcrumbBarProps & React.RefAttributes<HTMLDivElement>>;
28
+ /**
29
+ * -----------------
30
+ * PageHeaderContent
31
+ * -----------------
32
+ */
33
+ interface PageHeaderContentProps {
34
+ /**
35
+ * Provide child elements to be rendered inside PageHeaderContent.
36
+ */
37
+ children?: React.ReactNode;
38
+ /**
39
+ * Specify an optional className to be added to your PageHeaderContent
40
+ */
41
+ className?: string;
42
+ /**
43
+ * Provide an optional icon to render in front of the PageHeaderContent's title.
44
+ */
45
+ renderIcon?: ComponentType | FunctionComponent;
46
+ /**
47
+ * The PageHeaderContent's title
48
+ */
49
+ title: string;
50
+ /**
51
+ * The PageHeaderContent's subtitle
52
+ */
53
+ subtitle?: string;
54
+ /**
55
+ * The PageHeaderContent's contextual actions
56
+ */
57
+ contextualActions?: React.ReactNode;
58
+ /**
59
+ * The PageHeaderContent's page actions
60
+ */
61
+ pageActions?: React.ReactNode;
62
+ }
63
+ declare const PageHeaderContent: React.ForwardRefExoticComponent<PageHeaderContentProps & React.RefAttributes<HTMLDivElement>>;
64
+ /**
65
+ * ----------------
66
+ * PageHeaderHeroImage
67
+ * ----------------
68
+ */
69
+ interface PageHeaderHeroImageProps {
70
+ /**
71
+ * Provide child elements to be rendered inside PageHeaderHeroImage.
72
+ */
73
+ children?: React.ReactNode;
74
+ /**
75
+ * Specify an optional className to be added to your PageHeaderHeroImage
76
+ */
77
+ className?: string;
78
+ }
79
+ declare const PageHeaderHeroImage: React.ForwardRefExoticComponent<PageHeaderHeroImageProps & React.RefAttributes<HTMLDivElement>>;
80
+ /**
81
+ * ----------------
82
+ * PageHeaderTabBar
83
+ * ----------------
84
+ */
85
+ interface PageHeaderTabBarProps {
86
+ children?: React.ReactNode;
87
+ className?: string;
88
+ }
89
+ declare const PageHeaderTabBar: React.ForwardRefExoticComponent<PageHeaderTabBarProps & React.RefAttributes<HTMLDivElement>>;
90
+ /**
91
+ * -------
92
+ * Exports
93
+ * -------
94
+ */
95
+ declare const Root: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
96
+ declare const BreadcrumbBar: React.ForwardRefExoticComponent<PageHeaderBreadcrumbBarProps & React.RefAttributes<HTMLDivElement>>;
97
+ declare const Content: React.ForwardRefExoticComponent<PageHeaderContentProps & React.RefAttributes<HTMLDivElement>>;
98
+ declare const HeroImage: React.ForwardRefExoticComponent<PageHeaderHeroImageProps & React.RefAttributes<HTMLDivElement>>;
99
+ declare const TabBar: React.ForwardRefExoticComponent<PageHeaderTabBarProps & React.RefAttributes<HTMLDivElement>>;
100
+ export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderHeroImage, PageHeaderTabBar, Root, BreadcrumbBar, Content, HeroImage, TabBar, };
101
+ export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderHeroImageProps, PageHeaderTabBarProps, };
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
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
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var React = require('react');
14
+ var PropTypes = require('prop-types');
15
+ var cx = require('classnames');
16
+ var usePrefix = require('../../internal/usePrefix.js');
17
+ var layout = require('@carbon/layout');
18
+ var useMatchMedia = require('../../internal/useMatchMedia.js');
19
+ require('../Text/index.js');
20
+ var DefinitionTooltip = require('../Tooltip/DefinitionTooltip.js');
21
+ require('../Tooltip/Tooltip.js');
22
+ var AspectRatio = require('../AspectRatio/AspectRatio.js');
23
+ var Text = require('../Text/Text.js');
24
+
25
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
+
27
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
29
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
30
+
31
+ var _p, _p2, _p3;
32
+
33
+ /**
34
+ * ----------
35
+ * PageHeader
36
+ * ----------
37
+ */
38
+
39
+ const PageHeader = /*#__PURE__*/React__default["default"].forwardRef(function PageHeader(_ref, ref) {
40
+ let {
41
+ className,
42
+ children,
43
+ ...other
44
+ } = _ref;
45
+ const prefix = usePrefix.usePrefix();
46
+ const classNames = cx__default["default"]({
47
+ [`${prefix}--page-header`]: true
48
+ }, className);
49
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
50
+ className: classNames,
51
+ ref: ref
52
+ }, other), _p || (_p = /*#__PURE__*/React__default["default"].createElement("p", null, "page header")), children);
53
+ });
54
+ PageHeader.displayName = 'PageHeader';
55
+
56
+ /**
57
+ * -----------------------
58
+ * PageHeaderBreadcrumbBar
59
+ * -----------------------
60
+ */
61
+
62
+ const PageHeaderBreadcrumbBar = /*#__PURE__*/React__default["default"].forwardRef(function PageHeaderBreadcrumbBar(_ref2, ref) {
63
+ let {
64
+ className,
65
+ children,
66
+ ...other
67
+ } = _ref2;
68
+ const prefix = usePrefix.usePrefix();
69
+ const classNames = cx__default["default"]({
70
+ [`${prefix}--page-header__breadcrumb-bar`]: true
71
+ }, className);
72
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
73
+ className: classNames,
74
+ ref: ref
75
+ }, other), _p2 || (_p2 = /*#__PURE__*/React__default["default"].createElement("p", null, "page header breadcrumb bar")), children);
76
+ });
77
+ PageHeaderBreadcrumbBar.displayName = 'PageHeaderBreadcrumbBar';
78
+
79
+ /**
80
+ * -----------------
81
+ * PageHeaderContent
82
+ * -----------------
83
+ */
84
+
85
+ const PageHeaderContent = /*#__PURE__*/React__default["default"].forwardRef(function PageHeaderContent(_ref3, ref) {
86
+ let {
87
+ className,
88
+ children,
89
+ title,
90
+ subtitle,
91
+ renderIcon: IconElement,
92
+ contextualActions,
93
+ pageActions,
94
+ ...other
95
+ } = _ref3;
96
+ const prefix = usePrefix.usePrefix();
97
+ const classNames = cx__default["default"]({
98
+ [`${prefix}--page-header__content`]: true
99
+ }, className);
100
+ const titleRef = React.useRef(null);
101
+ const [isEllipsisApplied, setIsEllipsisApplied] = React.useState(false);
102
+ const isEllipsisActive = element => {
103
+ setIsEllipsisApplied(element.offsetHeight < element.scrollHeight);
104
+ return element.offsetHeight < element.scrollHeight;
105
+ };
106
+ React.useLayoutEffect(() => {
107
+ titleRef.current && isEllipsisActive(titleRef.current);
108
+ }, [title]);
109
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
110
+ className: classNames,
111
+ ref: ref
112
+ }, other), /*#__PURE__*/React__default["default"].createElement("div", {
113
+ className: `${prefix}--page-header__content__title-wrapper`
114
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
115
+ className: `${prefix}--page-header__content__start`
116
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
117
+ className: `${prefix}--page-header__content__title-container`
118
+ }, IconElement && /*#__PURE__*/React__default["default"].createElement("div", {
119
+ className: `${prefix}--page-header__content__icon`
120
+ }, /*#__PURE__*/React__default["default"].createElement(IconElement, null)), isEllipsisApplied ? /*#__PURE__*/React__default["default"].createElement(DefinitionTooltip.DefinitionTooltip, {
121
+ definition: title
122
+ }, /*#__PURE__*/React__default["default"].createElement(Text.Text, {
123
+ ref: titleRef,
124
+ as: "h4",
125
+ className: `${prefix}--page-header__content__title`
126
+ }, title)) : /*#__PURE__*/React__default["default"].createElement(Text.Text, {
127
+ ref: titleRef,
128
+ as: "h4",
129
+ className: `${prefix}--page-header__content__title`
130
+ }, title)), contextualActions && /*#__PURE__*/React__default["default"].createElement("div", {
131
+ className: `${prefix}--page-header__content__contextual-actions`
132
+ }, contextualActions)), /*#__PURE__*/React__default["default"].createElement("div", {
133
+ className: `${prefix}--page-header__content__end`
134
+ }, pageActions && /*#__PURE__*/React__default["default"].createElement("div", {
135
+ className: `${prefix}--page-header__content__page-actions`
136
+ }, pageActions))), subtitle && /*#__PURE__*/React__default["default"].createElement(Text.Text, {
137
+ as: "h3",
138
+ className: `${prefix}--page-header__content__subtitle`
139
+ }, subtitle), children && /*#__PURE__*/React__default["default"].createElement("div", {
140
+ className: `${prefix}--page-header__content__body`
141
+ }, children));
142
+ });
143
+ PageHeaderContent.displayName = 'PageHeaderContent';
144
+ PageHeaderContent.propTypes = {
145
+ /**
146
+ * Provide child elements to be rendered inside PageHeaderContent.
147
+ */
148
+ children: PropTypes__default["default"].node,
149
+ /**
150
+ * Specify an optional className to be added to your PageHeaderContent
151
+ */
152
+ className: PropTypes__default["default"].string,
153
+ /**
154
+ * Provide an optional icon to render in front of the PageHeaderContent's title.
155
+ */
156
+ // @ts-expect-error: PropTypes are not expressive enough to cover this case
157
+ renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
158
+ /**
159
+ * The PageHeaderContent's title
160
+ */
161
+ title: PropTypes__default["default"].string.isRequired,
162
+ /**
163
+ * The PageHeaderContent's subtitle
164
+ */
165
+ subtitle: PropTypes__default["default"].string,
166
+ /**
167
+ * The PageHeaderContent's contextual actions
168
+ */
169
+ contextualActions: PropTypes__default["default"].node,
170
+ /**
171
+ * The PageHeaderContent's page actions
172
+ */
173
+ pageActions: PropTypes__default["default"].node
174
+ };
175
+
176
+ /**
177
+ * ----------------
178
+ * PageHeaderHeroImage
179
+ * ----------------
180
+ */
181
+
182
+ const PageHeaderHeroImage = /*#__PURE__*/React__default["default"].forwardRef(function PageHeaderHeroImage(_ref4, ref) {
183
+ let {
184
+ className,
185
+ children,
186
+ ...other
187
+ } = _ref4;
188
+ const prefix = usePrefix.usePrefix();
189
+ const classNames = cx__default["default"]({
190
+ [`${prefix}--page-header__hero-image`]: true
191
+ }, className);
192
+ const lgMediaQuery = `(min-width: ${layout.breakpoints.lg.width})`;
193
+ const isLg = useMatchMedia.useMatchMedia(lgMediaQuery);
194
+ return /*#__PURE__*/React__default["default"].createElement(AspectRatio["default"], _rollupPluginBabelHelpers["extends"]({
195
+ className: classNames
196
+ }, other, {
197
+ ratio: isLg ? '2x1' : '3x2'
198
+ }), children);
199
+ });
200
+ PageHeaderHeroImage.displayName = 'PageHeaderHeroImage';
201
+ PageHeaderHeroImage.propTypes = {
202
+ /**
203
+ * Provide child elements to be rendered inside PageHeaderHeroImage.
204
+ */
205
+ children: PropTypes__default["default"].node,
206
+ /**
207
+ * Specify an optional className to be added to your PageHeaderHeroImage
208
+ */
209
+ className: PropTypes__default["default"].string
210
+ };
211
+
212
+ /**
213
+ * ----------------
214
+ * PageHeaderTabBar
215
+ * ----------------
216
+ */
217
+
218
+ const PageHeaderTabBar = /*#__PURE__*/React__default["default"].forwardRef(function PageHeaderTabBar(_ref5, ref) {
219
+ let {
220
+ className,
221
+ children,
222
+ ...other
223
+ } = _ref5;
224
+ const prefix = usePrefix.usePrefix();
225
+ const classNames = cx__default["default"]({
226
+ [`${prefix}--page-header__tab-bar`]: true
227
+ }, className);
228
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
229
+ className: classNames,
230
+ ref: ref
231
+ }, other), _p3 || (_p3 = /*#__PURE__*/React__default["default"].createElement("p", null, "page header tab bar")), children);
232
+ });
233
+ PageHeaderTabBar.displayName = 'PageHeaderTabBar';
234
+
235
+ /**
236
+ * -------
237
+ * Exports
238
+ * -------
239
+ */
240
+ const Root = PageHeader;
241
+ Root.displayName = 'PageHeader.Root';
242
+ const BreadcrumbBar = PageHeaderBreadcrumbBar;
243
+ BreadcrumbBar.displayName = 'PageHeaderBreadcrumbBar';
244
+ const Content = PageHeaderContent;
245
+ Content.displayName = 'PageHeaderContent';
246
+ const HeroImage = PageHeaderHeroImage;
247
+ HeroImage.displayName = 'PageHeaderHeroImage';
248
+ const TabBar = PageHeaderTabBar;
249
+ TabBar.displayName = 'PageHeaderTabBar';
250
+
251
+ exports.BreadcrumbBar = BreadcrumbBar;
252
+ exports.Content = Content;
253
+ exports.HeroImage = HeroImage;
254
+ exports.PageHeader = PageHeader;
255
+ exports.PageHeaderBreadcrumbBar = PageHeaderBreadcrumbBar;
256
+ exports.PageHeaderContent = PageHeaderContent;
257
+ exports.PageHeaderHeroImage = PageHeaderHeroImage;
258
+ exports.PageHeaderTabBar = PageHeaderTabBar;
259
+ exports.Root = Root;
260
+ exports.TabBar = TabBar;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderTabBar, PageHeaderHeroImage, Root, BreadcrumbBar, Content, TabBar, HeroImage, } from './PageHeader';
8
+ export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, } from './PageHeader';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
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
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var PageHeader = require('./PageHeader.js');
13
+
14
+
15
+
16
+ exports.BreadcrumbBar = PageHeader.BreadcrumbBar;
17
+ exports.Content = PageHeader.Content;
18
+ exports.HeroImage = PageHeader.HeroImage;
19
+ exports.PageHeader = PageHeader.PageHeader;
20
+ exports.PageHeaderBreadcrumbBar = PageHeader.PageHeaderBreadcrumbBar;
21
+ exports.PageHeaderContent = PageHeader.PageHeaderContent;
22
+ exports.PageHeaderHeroImage = PageHeader.PageHeaderHeroImage;
23
+ exports.PageHeaderTabBar = PageHeader.PageHeaderTabBar;
24
+ exports.Root = PageHeader.Root;
25
+ exports.TabBar = PageHeader.TabBar;
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2024
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
+ */
1
7
  import ControlledPasswordInput from '../TextInput/ControlledPasswordInput';
2
8
  import PasswordInput from '../TextInput/PasswordInput';
3
9
  export { ControlledPasswordInput, PasswordInput };