@patternfly/react-core 6.5.0-prerelease.12 → 6.5.0-prerelease.14

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 (211) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Compass/package.json +1 -1
  23. package/dist/dynamic/components/Content/package.json +1 -1
  24. package/dist/dynamic/components/DataList/package.json +1 -1
  25. package/dist/dynamic/components/DatePicker/package.json +1 -1
  26. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  27. package/dist/dynamic/components/Divider/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hero/package.json +1 -1
  38. package/dist/dynamic/components/Hint/package.json +1 -1
  39. package/dist/dynamic/components/Icon/package.json +1 -1
  40. package/dist/dynamic/components/InputGroup/package.json +1 -1
  41. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  42. package/dist/dynamic/components/Label/package.json +1 -1
  43. package/dist/dynamic/components/List/package.json +1 -1
  44. package/dist/dynamic/components/LoginPage/package.json +1 -1
  45. package/dist/dynamic/components/Masthead/package.json +1 -1
  46. package/dist/dynamic/components/Menu/package.json +1 -1
  47. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  48. package/dist/dynamic/components/Modal/package.json +1 -1
  49. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  50. package/dist/dynamic/components/Nav/package.json +1 -1
  51. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  52. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  53. package/dist/dynamic/components/NumberInput/package.json +1 -1
  54. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  55. package/dist/dynamic/components/Page/package.json +1 -1
  56. package/dist/dynamic/components/Pagination/package.json +1 -1
  57. package/dist/dynamic/components/Panel/package.json +1 -1
  58. package/dist/dynamic/components/Popover/package.json +1 -1
  59. package/dist/dynamic/components/Progress/package.json +1 -1
  60. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  61. package/dist/dynamic/components/Radio/package.json +1 -1
  62. package/dist/dynamic/components/SearchInput/package.json +1 -1
  63. package/dist/dynamic/components/Select/package.json +1 -1
  64. package/dist/dynamic/components/Sidebar/package.json +1 -1
  65. package/dist/dynamic/components/SimpleList/package.json +1 -1
  66. package/dist/dynamic/components/Skeleton/package.json +1 -1
  67. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  68. package/dist/dynamic/components/Slider/package.json +1 -1
  69. package/dist/dynamic/components/Spinner/package.json +1 -1
  70. package/dist/dynamic/components/Switch/package.json +1 -1
  71. package/dist/dynamic/components/Tabs/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/TimePicker/package.json +1 -1
  76. package/dist/dynamic/components/Timestamp/package.json +1 -1
  77. package/dist/dynamic/components/Title/package.json +1 -1
  78. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  79. package/dist/dynamic/components/Toolbar/package.json +1 -1
  80. package/dist/dynamic/components/Tooltip/package.json +1 -1
  81. package/dist/dynamic/components/TreeView/package.json +1 -1
  82. package/dist/dynamic/components/Truncate/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/package.json +1 -1
  92. package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
  93. package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  103. package/dist/dynamic/helpers/package.json +1 -1
  104. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  105. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  106. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  107. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  108. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  109. package/dist/dynamic/helpers/util/package.json +1 -1
  110. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  111. package/dist/dynamic/layouts/Flex/package.json +1 -1
  112. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  113. package/dist/dynamic/layouts/Grid/package.json +1 -1
  114. package/dist/dynamic/layouts/Level/package.json +1 -1
  115. package/dist/dynamic/layouts/Split/package.json +1 -1
  116. package/dist/dynamic/layouts/Stack/package.json +1 -1
  117. package/dist/dynamic/styles/package.json +1 -1
  118. package/dist/dynamic-modules.json +6 -0
  119. package/dist/esm/components/Compass/Compass.js.map +1 -1
  120. package/dist/esm/components/Compass/CompassContent.js.map +1 -1
  121. package/dist/esm/components/Compass/CompassHeader.d.ts.map +1 -1
  122. package/dist/esm/components/Compass/CompassHeader.js.map +1 -1
  123. package/dist/esm/components/Compass/CompassHero.d.ts.map +1 -1
  124. package/dist/esm/components/Compass/CompassHero.js.map +1 -1
  125. package/dist/esm/components/Compass/CompassMainHeader.d.ts +10 -2
  126. package/dist/esm/components/Compass/CompassMainHeader.d.ts.map +1 -1
  127. package/dist/esm/components/Compass/CompassMainHeader.js +5 -3
  128. package/dist/esm/components/Compass/CompassMainHeader.js.map +1 -1
  129. package/dist/esm/components/Compass/CompassMainHeaderContent.d.ts +12 -0
  130. package/dist/esm/components/Compass/CompassMainHeaderContent.d.ts.map +1 -0
  131. package/dist/esm/components/Compass/CompassMainHeaderContent.js +10 -0
  132. package/dist/esm/components/Compass/CompassMainHeaderContent.js.map +1 -0
  133. package/dist/esm/components/Compass/CompassMainHeaderTitle.d.ts +12 -0
  134. package/dist/esm/components/Compass/CompassMainHeaderTitle.d.ts.map +1 -0
  135. package/dist/esm/components/Compass/CompassMainHeaderTitle.js +10 -0
  136. package/dist/esm/components/Compass/CompassMainHeaderTitle.js.map +1 -0
  137. package/dist/esm/components/Compass/CompassMainHeaderToolbar.d.ts +12 -0
  138. package/dist/esm/components/Compass/CompassMainHeaderToolbar.d.ts.map +1 -0
  139. package/dist/esm/components/Compass/CompassMainHeaderToolbar.js +10 -0
  140. package/dist/esm/components/Compass/CompassMainHeaderToolbar.js.map +1 -0
  141. package/dist/esm/components/Compass/CompassMessageBar.js.map +1 -1
  142. package/dist/esm/components/Compass/CompassPanel.js.map +1 -1
  143. package/dist/esm/components/Compass/index.d.ts +3 -0
  144. package/dist/esm/components/Compass/index.d.ts.map +1 -1
  145. package/dist/esm/components/Compass/index.js +3 -0
  146. package/dist/esm/components/Compass/index.js.map +1 -1
  147. package/dist/js/components/Compass/Compass.js.map +1 -1
  148. package/dist/js/components/Compass/CompassContent.js.map +1 -1
  149. package/dist/js/components/Compass/CompassHeader.d.ts.map +1 -1
  150. package/dist/js/components/Compass/CompassHeader.js.map +1 -1
  151. package/dist/js/components/Compass/CompassHero.d.ts.map +1 -1
  152. package/dist/js/components/Compass/CompassHero.js.map +1 -1
  153. package/dist/js/components/Compass/CompassMainHeader.d.ts +10 -2
  154. package/dist/js/components/Compass/CompassMainHeader.d.ts.map +1 -1
  155. package/dist/js/components/Compass/CompassMainHeader.js +5 -3
  156. package/dist/js/components/Compass/CompassMainHeader.js.map +1 -1
  157. package/dist/js/components/Compass/CompassMainHeaderContent.d.ts +12 -0
  158. package/dist/js/components/Compass/CompassMainHeaderContent.d.ts.map +1 -0
  159. package/dist/js/components/Compass/CompassMainHeaderContent.js +14 -0
  160. package/dist/js/components/Compass/CompassMainHeaderContent.js.map +1 -0
  161. package/dist/js/components/Compass/CompassMainHeaderTitle.d.ts +12 -0
  162. package/dist/js/components/Compass/CompassMainHeaderTitle.d.ts.map +1 -0
  163. package/dist/js/components/Compass/CompassMainHeaderTitle.js +14 -0
  164. package/dist/js/components/Compass/CompassMainHeaderTitle.js.map +1 -0
  165. package/dist/js/components/Compass/CompassMainHeaderToolbar.d.ts +12 -0
  166. package/dist/js/components/Compass/CompassMainHeaderToolbar.d.ts.map +1 -0
  167. package/dist/js/components/Compass/CompassMainHeaderToolbar.js +14 -0
  168. package/dist/js/components/Compass/CompassMainHeaderToolbar.js.map +1 -0
  169. package/dist/js/components/Compass/CompassMessageBar.js.map +1 -1
  170. package/dist/js/components/Compass/CompassPanel.js.map +1 -1
  171. package/dist/js/components/Compass/index.d.ts +3 -0
  172. package/dist/js/components/Compass/index.d.ts.map +1 -1
  173. package/dist/js/components/Compass/index.js +3 -0
  174. package/dist/js/components/Compass/index.js.map +1 -1
  175. package/dist/umd/assets/{output-I61K8nI9.css → output-D6U9l5CG.css} +16731 -16610
  176. package/dist/umd/react-core.min.js +2 -2
  177. package/helpers/package.json +1 -1
  178. package/layouts/package.json +1 -1
  179. package/next/package.json +1 -1
  180. package/package.json +6 -6
  181. package/src/components/Compass/Compass.tsx +1 -1
  182. package/src/components/Compass/CompassContent.tsx +1 -1
  183. package/src/components/Compass/CompassHeader.tsx +5 -1
  184. package/src/components/Compass/CompassHero.tsx +5 -1
  185. package/src/components/Compass/CompassMainHeader.tsx +21 -10
  186. package/src/components/Compass/CompassMainHeaderContent.tsx +25 -0
  187. package/src/components/Compass/CompassMainHeaderTitle.tsx +25 -0
  188. package/src/components/Compass/CompassMainHeaderToolbar.tsx +25 -0
  189. package/src/components/Compass/CompassMessageBar.tsx +1 -1
  190. package/src/components/Compass/CompassPanel.tsx +1 -1
  191. package/src/components/Compass/__tests__/CompassMainHeader.test.tsx +45 -2
  192. package/src/components/Compass/__tests__/CompassMainHeaderContent.test.tsx +28 -0
  193. package/src/components/Compass/__tests__/CompassMainHeaderTitle.test.tsx +28 -0
  194. package/src/components/Compass/__tests__/CompassMainHeaderToolbar.test.tsx +28 -0
  195. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeader.test.tsx.snap +3 -3
  196. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeaderContent.test.tsx.snap +11 -0
  197. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeaderTitle.test.tsx.snap +11 -0
  198. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeaderToolbar.test.tsx.snap +11 -0
  199. package/src/components/Compass/examples/Compass.md +19 -1
  200. package/src/components/Compass/examples/CompassBasic.tsx +14 -2
  201. package/src/components/Compass/index.ts +3 -0
  202. package/src/deprecated/components/Modal/examples/Modal.md +2 -2
  203. package/src/deprecated/components/Tile/examples/Tile.md +0 -2
  204. package/src/helpers/OUIA/OUIA.md +2 -2
  205. package/src/layouts/Bullseye/examples/Bullseye.md +2 -1
  206. package/src/layouts/Flex/examples/Flex.md +2 -1
  207. package/src/layouts/Gallery/examples/Gallery.md +2 -1
  208. package/src/layouts/Grid/examples/Grid.md +2 -1
  209. package/src/layouts/Level/examples/Level.md +2 -1
  210. package/src/layouts/Split/examples/Split.md +2 -1
  211. package/src/layouts/Stack/examples/Stack.md +2 -1
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.5.0-prerelease.11","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.5.0-prerelease.13","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.5.0-prerelease.11","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.5.0-prerelease.13","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.5.0-prerelease.11","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.5.0-prerelease.13","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.5.0-prerelease.12",
3
+ "version": "6.5.0-prerelease.14",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -46,15 +46,15 @@
46
46
  "subpaths": "node ../../scripts/exportSubpaths.mjs --config subpaths.config.json"
47
47
  },
48
48
  "dependencies": {
49
- "@patternfly/react-icons": "^6.5.0-prerelease.5",
50
- "@patternfly/react-styles": "^6.5.0-prerelease.5",
51
- "@patternfly/react-tokens": "^6.5.0-prerelease.5",
49
+ "@patternfly/react-icons": "^6.5.0-prerelease.6",
50
+ "@patternfly/react-styles": "^6.5.0-prerelease.6",
51
+ "@patternfly/react-tokens": "^6.5.0-prerelease.6",
52
52
  "focus-trap": "7.6.4",
53
53
  "react-dropzone": "^14.3.5",
54
54
  "tslib": "^2.8.1"
55
55
  },
56
56
  "devDependencies": {
57
- "@patternfly/patternfly": "6.5.0-prerelease.21",
57
+ "@patternfly/patternfly": "6.5.0-prerelease.27",
58
58
  "case-anything": "^3.1.2",
59
59
  "css": "^3.0.0",
60
60
  "fs-extra": "^11.3.0"
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18 || ^19",
64
64
  "react-dom": "^17 || ^18 || ^19"
65
65
  },
66
- "gitHead": "b1ae7eb5e94f906f4373f38e14d9125e5cccd1c5"
66
+ "gitHead": "2df092a083c31add23a91798f605d3177e881b55"
67
67
  }
@@ -52,7 +52,7 @@ export const Compass: React.FunctionComponent<CompassProps> = ({
52
52
  backgroundSrcLight,
53
53
  backgroundSrcDark,
54
54
  ...props
55
- }) => {
55
+ }: CompassProps) => {
56
56
  const hasDrawer = drawerContent !== undefined;
57
57
 
58
58
  const backgroundImageStyles: { [key: string]: string } = {};
@@ -19,7 +19,7 @@ export const CompassContent: React.FunctionComponent<CompassContentProps> = ({
19
19
  drawerProps,
20
20
  drawerContent,
21
21
  ...props
22
- }) => {
22
+ }: CompassContentProps) => {
23
23
  const hasDrawer = drawerContent !== undefined;
24
24
 
25
25
  const compassContent = (
@@ -10,7 +10,11 @@ export interface CompassHeaderProps {
10
10
  profile?: React.ReactNode;
11
11
  }
12
12
 
13
- export const CompassHeader: React.FunctionComponent<CompassHeaderProps> = ({ logo, nav, profile }) => (
13
+ export const CompassHeader: React.FunctionComponent<CompassHeaderProps> = ({
14
+ logo,
15
+ nav,
16
+ profile
17
+ }: CompassHeaderProps) => (
14
18
  <>
15
19
  <div className={css(`${styles.compass}__logo`)}>{logo}</div>
16
20
  <div className={css(styles.compassNav)}>{nav}</div>
@@ -9,7 +9,11 @@ export interface CompassHeroProps extends Omit<React.HTMLProps<HTMLDivElement>,
9
9
  className?: string;
10
10
  }
11
11
 
12
- export const CompassHero: React.FunctionComponent<CompassHeroProps> = ({ className, children, ...props }) => (
12
+ export const CompassHero: React.FunctionComponent<CompassHeroProps> = ({
13
+ className,
14
+ children,
15
+ ...props
16
+ }: CompassHeroProps) => (
13
17
  <div className={css(`${styles.compass}__hero`, className)} {...props}>
14
18
  {children}
15
19
  </div>
@@ -1,17 +1,27 @@
1
- import { Flex, FlexItem } from '../../layouts/Flex';
2
- import { CompassPanel } from './CompassPanel';
1
+ import { CompassPanel, CompassPanelProps } from './CompassPanel';
2
+ import { CompassMainHeaderContent } from './CompassMainHeaderContent';
3
+ import { CompassMainHeaderTitle } from './CompassMainHeaderTitle';
4
+ import { CompassMainHeaderToolbar } from './CompassMainHeaderToolbar';
3
5
  import styles from '@patternfly/react-styles/css/components/Compass/compass';
4
6
  import { css } from '@patternfly/react-styles';
5
7
 
8
+ /** The wrapper component for header content in the main compass area. When building out a custom implementation,
9
+ * you should ensure any content within the main header is rendered inside a compass panel and main header content wrappers.
10
+ */
11
+
6
12
  export interface CompassMainHeaderProps extends Omit<React.HTMLProps<HTMLDivElement>, 'title'> {
13
+ /** Custom main header content. To opt into a default styling, use the title and toolbar props instead. */
14
+ children?: React.ReactNode;
7
15
  /** Additional classes added to the main header */
8
16
  className?: string;
9
17
  /** Styled title. If title or toolbar is provided, the children will be ignored. */
10
18
  title?: React.ReactNode;
11
19
  /** Styled toolbar. If title or toolbar is provided, the children will be ignored. */
12
20
  toolbar?: React.ReactNode;
13
- /** Custom main header content. To opt into a default styling, use the title and toolbar props instead. */
14
- children?: React.ReactNode;
21
+ /** Additional props passed to the compass panel that wraps the main header content when using the title or toolbar props. When using the
22
+ * children prop, you should pass your own compass panel.
23
+ */
24
+ compassPanelProps?: Omit<CompassPanelProps, 'children'>;
15
25
  }
16
26
 
17
27
  export const CompassMainHeader: React.FunctionComponent<CompassMainHeaderProps> = ({
@@ -19,15 +29,16 @@ export const CompassMainHeader: React.FunctionComponent<CompassMainHeaderProps>
19
29
  title,
20
30
  toolbar,
21
31
  children,
32
+ compassPanelProps,
22
33
  ...props
23
- }) => {
34
+ }: CompassMainHeaderProps) => {
24
35
  const _content =
25
36
  title !== undefined || toolbar !== undefined ? (
26
- <CompassPanel>
27
- <Flex alignItems={{ default: 'alignItemsCenter' }}>
28
- <FlexItem grow={{ default: 'grow' }}>{title}</FlexItem>
29
- {toolbar && <FlexItem>{toolbar}</FlexItem>}
30
- </Flex>
37
+ <CompassPanel {...compassPanelProps}>
38
+ <CompassMainHeaderContent>
39
+ {title && <CompassMainHeaderTitle>{title}</CompassMainHeaderTitle>}
40
+ {toolbar && <CompassMainHeaderToolbar>{toolbar}</CompassMainHeaderToolbar>}
41
+ </CompassMainHeaderContent>
31
42
  </CompassPanel>
32
43
  ) : (
33
44
  children
@@ -0,0 +1,25 @@
1
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
2
+ import { css } from '@patternfly/react-styles';
3
+
4
+ /** A wrapper component to be passed as custom content for the compass main header. This should also be wrapped
5
+ * in a compass panel component.
6
+ */
7
+
8
+ export interface CompassMainHeaderContentProps extends React.HTMLProps<HTMLDivElement> {
9
+ /** Content of the main header content. */
10
+ children: React.ReactNode;
11
+ /** Additional classes added to the main header content. */
12
+ className?: string;
13
+ }
14
+
15
+ export const CompassMainHeaderContent: React.FunctionComponent<CompassMainHeaderContentProps> = ({
16
+ children,
17
+ className,
18
+ ...props
19
+ }: CompassMainHeaderContentProps) => (
20
+ <div className={css(styles.compassMainHeaderContent, className)} {...props}>
21
+ {children}
22
+ </div>
23
+ );
24
+
25
+ CompassMainHeaderContent.displayName = 'CompassMainHeaderContent';
@@ -0,0 +1,25 @@
1
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
2
+ import { css } from '@patternfly/react-styles';
3
+
4
+ /** A wrapper component for custom title content to be passed into a compass main header. This should also be wrapped
5
+ * by a compass main header content component.
6
+ */
7
+
8
+ export interface CompassMainHeaderTitleProps extends React.HTMLProps<HTMLDivElement> {
9
+ /** Content of the main header title. */
10
+ children: React.ReactNode;
11
+ /** Additional classes added to the main header title. */
12
+ className?: string;
13
+ }
14
+
15
+ export const CompassMainHeaderTitle: React.FunctionComponent<CompassMainHeaderTitleProps> = ({
16
+ children,
17
+ className,
18
+ ...props
19
+ }: CompassMainHeaderTitleProps) => (
20
+ <div className={css(`${styles.compass}__main-header-title`, className)} {...props}>
21
+ {children}
22
+ </div>
23
+ );
24
+
25
+ CompassMainHeaderTitle.displayName = 'CompassMainHeaderTitle';
@@ -0,0 +1,25 @@
1
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
2
+ import { css } from '@patternfly/react-styles';
3
+
4
+ /** A wrapper component for custom toolbar content to be passed into a compass main header. This should also be wrapped
5
+ * by a compass main header content component.
6
+ */
7
+
8
+ export interface CompassMainHeaderToolbarProps extends React.HTMLProps<HTMLDivElement> {
9
+ /** Content of the main header toolbar. */
10
+ children: React.ReactNode;
11
+ /** Additional classes added to the main header toolbar. */
12
+ className?: string;
13
+ }
14
+
15
+ export const CompassMainHeaderToolbar: React.FunctionComponent<CompassMainHeaderToolbarProps> = ({
16
+ children,
17
+ className,
18
+ ...props
19
+ }: CompassMainHeaderToolbarProps) => (
20
+ <div className={css(`${styles.compass}__main-header-toolbar`, className)} {...props}>
21
+ {children}
22
+ </div>
23
+ );
24
+
25
+ CompassMainHeaderToolbar.displayName = 'CompassMainHeaderToolbar';
@@ -12,7 +12,7 @@ export const CompassMessageBar: React.FunctionComponent<CompassMessageBarProps>
12
12
  children,
13
13
  className,
14
14
  ...props
15
- }) => (
15
+ }: CompassMessageBarProps) => (
16
16
  <div className={css(styles.compassMessageBar, className)} {...props}>
17
17
  {children}
18
18
  </div>
@@ -30,7 +30,7 @@ export const CompassPanel: React.FunctionComponent<CompassPanelProps> = ({
30
30
  isFullHeight,
31
31
  isScrollable,
32
32
  ...props
33
- }) => (
33
+ }: CompassPanelProps) => (
34
34
  <div
35
35
  className={css(
36
36
  styles.compassPanel,
@@ -74,9 +74,52 @@ test('Renders children when neither title nor toolbar are provided', () => {
74
74
  expect(screen.getByText('Custom children content')).toBeVisible();
75
75
  });
76
76
 
77
+ test('Renders CompassPanel when title is passed', () => {
78
+ render(<CompassMainHeader data-testid="test-id" title="Title text" />);
79
+
80
+ const panel = screen.getByTestId('test-id').firstChild;
81
+ expect(panel).toHaveClass(styles.compassPanel);
82
+ });
83
+
84
+ test('Renders CompassPanel when toolbar is passed', () => {
85
+ render(<CompassMainHeader data-testid="test-id" toolbar="Toolbar text" />);
86
+
87
+ const panel = screen.getByTestId('test-id').firstChild;
88
+ expect(panel).toHaveClass(styles.compassPanel);
89
+ });
90
+
91
+ test('Does not render CompassPanel when children are passed', () => {
92
+ render(
93
+ <CompassMainHeader data-testid="test-id">
94
+ <div>Children content</div>
95
+ </CompassMainHeader>
96
+ );
97
+
98
+ const content = screen.getByTestId('test-id').firstChild;
99
+ expect(content).not.toHaveClass(styles.compassPanel);
100
+ });
101
+
102
+ test('Passes props to CompassPanel when title and compassPanelProps is passed', () => {
103
+ render(
104
+ <CompassMainHeader data-testid="test-id" compassPanelProps={{ className: 'panel-class' }} title="Title text" />
105
+ );
106
+
107
+ const panel = screen.getByTestId('test-id').firstChild;
108
+ expect(panel).toHaveClass('panel-class');
109
+ });
110
+
111
+ test('Passes props to CompassPanel when toolbar and compassPanelProps is passed', () => {
112
+ render(
113
+ <CompassMainHeader data-testid="test-id" compassPanelProps={{ className: 'panel-class' }} toolbar="Toolbar text" />
114
+ );
115
+
116
+ const panel = screen.getByTestId('test-id').firstChild;
117
+ expect(panel).toHaveClass('panel-class');
118
+ });
119
+
77
120
  test('Renders with additional props spread to the component', () => {
78
- render(<CompassMainHeader aria-label="Test label">Test</CompassMainHeader>);
79
- expect(screen.getByText('Test')).toHaveAccessibleName('Test label');
121
+ render(<CompassMainHeader id="custom-id">Test</CompassMainHeader>);
122
+ expect(screen.getByText('Test')).toHaveAttribute('id', 'custom-id');
80
123
  });
81
124
 
82
125
  test('Matches the snapshot with both title and toolbar', () => {
@@ -0,0 +1,28 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { CompassMainHeaderContent } from '../CompassMainHeaderContent';
3
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
4
+
5
+ test('Renders with children', () => {
6
+ render(<CompassMainHeaderContent>Custom content</CompassMainHeaderContent>);
7
+ expect(screen.getByText('Custom content')).toBeVisible();
8
+ });
9
+
10
+ test(`Renders with default ${styles.compass}__main-header-content class`, () => {
11
+ render(<CompassMainHeaderContent>Test</CompassMainHeaderContent>);
12
+ expect(screen.getByText('Test')).toHaveClass(`${styles.compass}__main-header-content`);
13
+ });
14
+
15
+ test('Renders with custom class name when className prop is provided', () => {
16
+ render(<CompassMainHeaderContent className="custom-class">Test</CompassMainHeaderContent>);
17
+ expect(screen.getByText('Test')).toHaveClass('custom-class');
18
+ });
19
+
20
+ test('Renders with additional props spread to the component', () => {
21
+ render(<CompassMainHeaderContent id="custom-id">Test</CompassMainHeaderContent>);
22
+ expect(screen.getByText('Test')).toHaveAttribute('id', 'custom-id');
23
+ });
24
+
25
+ test('Matches the snapshot', () => {
26
+ const { asFragment } = render(<CompassMainHeaderContent>Content</CompassMainHeaderContent>);
27
+ expect(asFragment()).toMatchSnapshot();
28
+ });
@@ -0,0 +1,28 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { CompassMainHeaderTitle } from '../CompassMainHeaderTitle';
3
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
4
+
5
+ test('Renders with children', () => {
6
+ render(<CompassMainHeaderTitle>Custom content</CompassMainHeaderTitle>);
7
+ expect(screen.getByText('Custom content')).toBeVisible();
8
+ });
9
+
10
+ test(`Renders with default ${styles.compass}__main-header-title class`, () => {
11
+ render(<CompassMainHeaderTitle>Test</CompassMainHeaderTitle>);
12
+ expect(screen.getByText('Test')).toHaveClass(`${styles.compass}__main-header-title`);
13
+ });
14
+
15
+ test('Renders with custom class name when className prop is provided', () => {
16
+ render(<CompassMainHeaderTitle className="custom-class">Test</CompassMainHeaderTitle>);
17
+ expect(screen.getByText('Test')).toHaveClass('custom-class');
18
+ });
19
+
20
+ test('Renders with additional props spread to the component', () => {
21
+ render(<CompassMainHeaderTitle id="custom-id">Test</CompassMainHeaderTitle>);
22
+ expect(screen.getByText('Test')).toHaveAttribute('id', 'custom-id');
23
+ });
24
+
25
+ test('Matches the snapshot', () => {
26
+ const { asFragment } = render(<CompassMainHeaderTitle>Content</CompassMainHeaderTitle>);
27
+ expect(asFragment()).toMatchSnapshot();
28
+ });
@@ -0,0 +1,28 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { CompassMainHeaderToolbar } from '../CompassMainHeaderToolbar';
3
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
4
+
5
+ test('Renders with children', () => {
6
+ render(<CompassMainHeaderToolbar>Custom content</CompassMainHeaderToolbar>);
7
+ expect(screen.getByText('Custom content')).toBeVisible();
8
+ });
9
+
10
+ test(`Renders with default ${styles.compass}__main-header-toolbar class`, () => {
11
+ render(<CompassMainHeaderToolbar>Test</CompassMainHeaderToolbar>);
12
+ expect(screen.getByText('Test')).toHaveClass(`${styles.compass}__main-header-toolbar`);
13
+ });
14
+
15
+ test('Renders with custom class name when className prop is provided', () => {
16
+ render(<CompassMainHeaderToolbar className="custom-class">Test</CompassMainHeaderToolbar>);
17
+ expect(screen.getByText('Test')).toHaveClass('custom-class');
18
+ });
19
+
20
+ test('Renders with additional props spread to the component', () => {
21
+ render(<CompassMainHeaderToolbar id="custom-id">Test</CompassMainHeaderToolbar>);
22
+ expect(screen.getByText('Test')).toHaveAttribute('id', 'custom-id');
23
+ });
24
+
25
+ test('Matches the snapshot', () => {
26
+ const { asFragment } = render(<CompassMainHeaderToolbar>Content</CompassMainHeaderToolbar>);
27
+ expect(asFragment()).toMatchSnapshot();
28
+ });
@@ -9,17 +9,17 @@ exports[`Matches the snapshot with both title and toolbar 1`] = `
9
9
  class="pf-v6-c-compass__panel"
10
10
  >
11
11
  <div
12
- class="pf-v6-l-flex pf-m-align-items-center"
12
+ class="pf-v6-c-compass__main-header-content"
13
13
  >
14
14
  <div
15
- class="pf-m-grow"
15
+ class="pf-v6-c-compass__main-header-title"
16
16
  >
17
17
  <div>
18
18
  Title
19
19
  </div>
20
20
  </div>
21
21
  <div
22
- class=""
22
+ class="pf-v6-c-compass__main-header-toolbar"
23
23
  >
24
24
  <div>
25
25
  Toolbar
@@ -0,0 +1,11 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches the snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="pf-v6-c-compass__main-header-content"
7
+ >
8
+ Content
9
+ </div>
10
+ </DocumentFragment>
11
+ `;
@@ -0,0 +1,11 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches the snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="pf-v6-c-compass__main-header-title"
7
+ >
8
+ Content
9
+ </div>
10
+ </DocumentFragment>
11
+ `;
@@ -0,0 +1,11 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches the snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="pf-v6-c-compass__main-header-toolbar"
7
+ >
8
+ Content
9
+ </div>
10
+ </DocumentFragment>
11
+ `;
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  id: Compass
3
3
  cssPrefix: pf-v6-c-compass
4
- section: PatternFly-AI
4
+ section: AI
5
5
  subsection: Generative UIs
6
6
  beta: true
7
7
  propComponents:
@@ -46,3 +46,21 @@ The background image of the `Compass` and `CompassHero` may be customized by usi
46
46
  ```ts isFullscreen file="CompassDemo.tsx"
47
47
 
48
48
  ```
49
+
50
+ ## Composable structure
51
+
52
+ When building a more custom implementation using Compass components, there are some intended or expected structures that must be present.
53
+
54
+ ### CompassMainHeader structure
55
+
56
+ When using the `children` property in the `<CompassMainHeader>` component, you should ensure that the expected sub-components are used. The following code block shows a general structure to follow.
57
+
58
+ ```noLive
59
+ <CompassMainHeader>
60
+ <CompassPanel>
61
+ <CompassMainHeaderContent>
62
+ {Your custom content goes here, which can include the CompassMainHeaderTitle and/or CompassMainHeaderToolbar sub-components}
63
+ </CompassMainHeaderContent>
64
+ </CompassPanel>
65
+ </CompassMainHeader>
66
+ ```
@@ -1,4 +1,12 @@
1
- import { Compass, CompassHeader, CompassHero, CompassContent, CompassMainHeader } from '@patternfly/react-core';
1
+ import {
2
+ Compass,
3
+ CompassHeader,
4
+ CompassHero,
5
+ CompassContent,
6
+ CompassMainHeader,
7
+ CompassPanel,
8
+ CompassMainHeaderContent
9
+ } from '@patternfly/react-core';
2
10
  import './compass.css';
3
11
 
4
12
  export const CompassBasic: React.FunctionComponent = () => {
@@ -12,7 +20,11 @@ export const CompassBasic: React.FunctionComponent = () => {
12
20
  </CompassHero>
13
21
  <CompassContent>
14
22
  <CompassMainHeader>
15
- <div>Content title</div>
23
+ <CompassPanel>
24
+ <CompassMainHeaderContent>
25
+ <div>Content title</div>
26
+ </CompassMainHeaderContent>
27
+ </CompassPanel>
16
28
  </CompassMainHeader>
17
29
  <div>Content</div>
18
30
  </CompassContent>
@@ -3,5 +3,8 @@ export * from './CompassContent';
3
3
  export * from './CompassHeader';
4
4
  export * from './CompassHero';
5
5
  export * from './CompassMainHeader';
6
+ export * from './CompassMainHeaderContent';
7
+ export * from './CompassMainHeaderTitle';
8
+ export * from './CompassMainHeaderToolbar';
6
9
  export * from './CompassMessageBar';
7
10
  export * from './CompassPanel';
@@ -127,7 +127,7 @@ To guide users through a series of steps in a modal, you can add a [wizard](/com
127
127
 
128
128
  ### With dropdown
129
129
 
130
- To present a menu of actions or links to a user, you can add a [dropdown](/components/dropdown) to a modal. To allow the dropdown to visually break out of the modal container, set the `menuAppendTo` property to “parent”. Handle the modal’s closing behavior by listening to the `onEscapePress` callback on the `<Modal>` component. This allows the "escape" key to collapse the dropdown without closing the entire modal.
130
+ To present a menu of actions or links to a user, you can add a [dropdown](/components/menus/dropdown) to a modal. To allow the dropdown to visually break out of the modal container, set the `menuAppendTo` property to “parent”. Handle the modal’s closing behavior by listening to the `onEscapePress` callback on the `<Modal>` component. This allows the "escape" key to collapse the dropdown without closing the entire modal.
131
131
 
132
132
  ```ts file="./ModalWithDropdown.tsx"
133
133
 
@@ -143,7 +143,7 @@ To help simplify and explain complex models, add a help [popover](/components/po
143
143
 
144
144
  ### With form
145
145
 
146
- To collect user input within a modal, you can add a [form](/components/form).
146
+ To collect user input within a modal, you can add a [form](/components/forms/form).
147
147
 
148
148
  To submit the form from a button in the modal's footer (outside of the `<Form>`), set the button's `form` property equal to the form's id.
149
149
 
@@ -15,8 +15,6 @@ import './Tile.css';
15
15
 
16
16
  ## Examples
17
17
 
18
- Keyboard interaction patterns and a11y is implemented in the Tile demos, located in the [Demo section](/components/tile/react-demos).
19
-
20
18
  ### Basic tile
21
19
 
22
20
  Basic tiles can appear in one of three states: a default state, selected state, and a disabled state. To change the state of a tile, use the properties `isSelected` and `isDisabled`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  id: Open UI Automation
3
- section: developer-resources
3
+ section: developer-guides
4
4
  ---
5
5
  import { Fragment } from 'react';
6
6
 
@@ -54,6 +54,7 @@ component.
54
54
  * [Card](/components/card)
55
55
  * [Checkbox](/components/forms/checkbox)
56
56
  * [Chip](/components/chip)
57
+ * [Content](/components/content)
57
58
  * [Dropdown](/components/menus/dropdown)
58
59
  * [DropdownItem](/components/menus/dropdown)
59
60
  * [FormSelect](/components/forms/form-select)
@@ -68,7 +69,6 @@ component.
68
69
  * [Switch](/components/switch)
69
70
  * [TabContent](/components/tabs)
70
71
  * [Tabs](/components/tabs)
71
- * [Text](/components/text)
72
72
  * [TextInput](/components/forms/text-input)
73
73
  * [Title](/components/title)
74
74
  * [Toolbar](/components/toolbar)
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  id: Bullseye
3
3
  cssPrefix: pf-v6-l-bullseye
4
- section: layouts
4
+ section: foundations-and-styles
5
+ subsection: layouts
5
6
  propComponents: ['Bullseye']
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  id: Flex
3
3
  cssPrefix: pf-v6-l-flex
4
- section: layouts
4
+ section: foundations-and-styles
5
+ subsection: layouts
5
6
  propComponents: ['Flex', 'FlexItem']
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  id: Gallery
3
3
  cssPrefix: pf-v6-l-gallery
4
- section: layouts
4
+ section: foundations-and-styles
5
+ subsection: layouts
5
6
  propComponents: ['Gallery', 'GalleryItem']
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  id: Grid
3
3
  cssPrefix: pf-v6-l-grid
4
- section: layouts
4
+ section: foundations-and-styles
5
+ subsection: layouts
5
6
  propComponents: ['Grid', 'GridItem']
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  id: Level
3
3
  cssPrefix: pf-v6-l-level
4
- section: layouts
4
+ section: foundations-and-styles
5
+ subsection: layouts
5
6
  propComponents: ['Level', 'LevelItem']
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  id: Split
3
3
  cssPrefix: pf-v6-l-split
4
- section: layouts
4
+ section: foundations-and-styles
5
+ subsection: layouts
5
6
  propComponents: ['Split', 'SplitItem']
6
7
  ---
7
8