@patternfly/react-core 6.5.0-prerelease.13 → 6.5.0-prerelease.15

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 (212) hide show
  1. package/CHANGELOG.md +12 -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 +8 -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.js.map +1 -1
  126. package/dist/esm/components/Compass/CompassMainHeaderContent.js.map +1 -1
  127. package/dist/esm/components/Compass/CompassMainHeaderTitle.js.map +1 -1
  128. package/dist/esm/components/Compass/CompassMainHeaderToolbar.js.map +1 -1
  129. package/dist/esm/components/Compass/CompassMessageBar.js.map +1 -1
  130. package/dist/esm/components/Compass/CompassNavContent.d.ts +9 -0
  131. package/dist/esm/components/Compass/CompassNavContent.d.ts.map +1 -0
  132. package/dist/esm/components/Compass/CompassNavContent.js +10 -0
  133. package/dist/esm/components/Compass/CompassNavContent.js.map +1 -0
  134. package/dist/esm/components/Compass/CompassNavHome.d.ts +13 -0
  135. package/dist/esm/components/Compass/CompassNavHome.d.ts.map +1 -0
  136. package/dist/esm/components/Compass/CompassNavHome.js +15 -0
  137. package/dist/esm/components/Compass/CompassNavHome.js.map +1 -0
  138. package/dist/esm/components/Compass/CompassNavMain.d.ts +9 -0
  139. package/dist/esm/components/Compass/CompassNavMain.d.ts.map +1 -0
  140. package/dist/esm/components/Compass/CompassNavMain.js +10 -0
  141. package/dist/esm/components/Compass/CompassNavMain.js.map +1 -0
  142. package/dist/esm/components/Compass/CompassNavSearch.d.ts +13 -0
  143. package/dist/esm/components/Compass/CompassNavSearch.d.ts.map +1 -0
  144. package/dist/esm/components/Compass/CompassNavSearch.js +15 -0
  145. package/dist/esm/components/Compass/CompassNavSearch.js.map +1 -0
  146. package/dist/esm/components/Compass/CompassPanel.js.map +1 -1
  147. package/dist/esm/components/Compass/index.d.ts +4 -0
  148. package/dist/esm/components/Compass/index.d.ts.map +1 -1
  149. package/dist/esm/components/Compass/index.js +4 -0
  150. package/dist/esm/components/Compass/index.js.map +1 -1
  151. package/dist/js/components/Compass/Compass.js.map +1 -1
  152. package/dist/js/components/Compass/CompassContent.js.map +1 -1
  153. package/dist/js/components/Compass/CompassHeader.d.ts.map +1 -1
  154. package/dist/js/components/Compass/CompassHeader.js.map +1 -1
  155. package/dist/js/components/Compass/CompassHero.d.ts.map +1 -1
  156. package/dist/js/components/Compass/CompassHero.js.map +1 -1
  157. package/dist/js/components/Compass/CompassMainHeader.js.map +1 -1
  158. package/dist/js/components/Compass/CompassMainHeaderContent.js.map +1 -1
  159. package/dist/js/components/Compass/CompassMainHeaderTitle.js.map +1 -1
  160. package/dist/js/components/Compass/CompassMainHeaderToolbar.js.map +1 -1
  161. package/dist/js/components/Compass/CompassMessageBar.js.map +1 -1
  162. package/dist/js/components/Compass/CompassNavContent.d.ts +9 -0
  163. package/dist/js/components/Compass/CompassNavContent.d.ts.map +1 -0
  164. package/dist/js/components/Compass/CompassNavContent.js +14 -0
  165. package/dist/js/components/Compass/CompassNavContent.js.map +1 -0
  166. package/dist/js/components/Compass/CompassNavHome.d.ts +13 -0
  167. package/dist/js/components/Compass/CompassNavHome.d.ts.map +1 -0
  168. package/dist/js/components/Compass/CompassNavHome.js +19 -0
  169. package/dist/js/components/Compass/CompassNavHome.js.map +1 -0
  170. package/dist/js/components/Compass/CompassNavMain.d.ts +9 -0
  171. package/dist/js/components/Compass/CompassNavMain.d.ts.map +1 -0
  172. package/dist/js/components/Compass/CompassNavMain.js +14 -0
  173. package/dist/js/components/Compass/CompassNavMain.js.map +1 -0
  174. package/dist/js/components/Compass/CompassNavSearch.d.ts +13 -0
  175. package/dist/js/components/Compass/CompassNavSearch.d.ts.map +1 -0
  176. package/dist/js/components/Compass/CompassNavSearch.js +19 -0
  177. package/dist/js/components/Compass/CompassNavSearch.js.map +1 -0
  178. package/dist/js/components/Compass/CompassPanel.js.map +1 -1
  179. package/dist/js/components/Compass/index.d.ts +4 -0
  180. package/dist/js/components/Compass/index.d.ts.map +1 -1
  181. package/dist/js/components/Compass/index.js +4 -0
  182. package/dist/js/components/Compass/index.js.map +1 -1
  183. package/dist/umd/assets/{output-DEO1snKq.css → output-DQBqFwRs.css} +20848 -20848
  184. package/dist/umd/react-core.min.js +3 -3
  185. package/helpers/package.json +1 -1
  186. package/layouts/package.json +1 -1
  187. package/next/package.json +1 -1
  188. package/package.json +2 -2
  189. package/src/components/Compass/Compass.tsx +1 -1
  190. package/src/components/Compass/CompassContent.tsx +1 -1
  191. package/src/components/Compass/CompassHeader.tsx +5 -1
  192. package/src/components/Compass/CompassHero.tsx +5 -1
  193. package/src/components/Compass/CompassMainHeader.tsx +1 -1
  194. package/src/components/Compass/CompassMainHeaderContent.tsx +1 -1
  195. package/src/components/Compass/CompassMainHeaderTitle.tsx +1 -1
  196. package/src/components/Compass/CompassMainHeaderToolbar.tsx +1 -1
  197. package/src/components/Compass/CompassMessageBar.tsx +1 -1
  198. package/src/components/Compass/CompassNavContent.tsx +20 -0
  199. package/src/components/Compass/CompassNavHome.tsx +77 -0
  200. package/src/components/Compass/CompassNavMain.tsx +21 -0
  201. package/src/components/Compass/CompassNavSearch.tsx +70 -0
  202. package/src/components/Compass/CompassPanel.tsx +1 -1
  203. package/src/components/Compass/__tests__/CompassNavContent.test.tsx +37 -0
  204. package/src/components/Compass/__tests__/CompassNavHome.test.tsx +89 -0
  205. package/src/components/Compass/__tests__/CompassNavMain.test.tsx +37 -0
  206. package/src/components/Compass/__tests__/CompassNavSearch.test.tsx +87 -0
  207. package/src/components/Compass/__tests__/__snapshots__/CompassNavContent.test.tsx.snap +13 -0
  208. package/src/components/Compass/__tests__/__snapshots__/CompassNavHome.test.tsx.snap +107 -0
  209. package/src/components/Compass/__tests__/__snapshots__/CompassNavMain.test.tsx.snap +13 -0
  210. package/src/components/Compass/__tests__/__snapshots__/CompassNavSearch.test.tsx.snap +93 -0
  211. package/src/components/Compass/examples/CompassDemo.tsx +54 -40
  212. package/src/components/Compass/index.ts +4 -0
@@ -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.12","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.14","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.12","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.14","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.12","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.14","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.5.0-prerelease.13",
3
+ "version": "6.5.0-prerelease.15",
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",
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18 || ^19",
64
64
  "react-dom": "^17 || ^18 || ^19"
65
65
  },
66
- "gitHead": "eed37ddb3b4437aceb531bed2616130e6ebcc70b"
66
+ "gitHead": "754bcb0d0ff58e0b52c02e34ba5c654a703db45e"
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>
@@ -31,7 +31,7 @@ export const CompassMainHeader: React.FunctionComponent<CompassMainHeaderProps>
31
31
  children,
32
32
  compassPanelProps,
33
33
  ...props
34
- }) => {
34
+ }: CompassMainHeaderProps) => {
35
35
  const _content =
36
36
  title !== undefined || toolbar !== undefined ? (
37
37
  <CompassPanel {...compassPanelProps}>
@@ -16,7 +16,7 @@ export const CompassMainHeaderContent: React.FunctionComponent<CompassMainHeader
16
16
  children,
17
17
  className,
18
18
  ...props
19
- }) => (
19
+ }: CompassMainHeaderContentProps) => (
20
20
  <div className={css(styles.compassMainHeaderContent, className)} {...props}>
21
21
  {children}
22
22
  </div>
@@ -16,7 +16,7 @@ export const CompassMainHeaderTitle: React.FunctionComponent<CompassMainHeaderTi
16
16
  children,
17
17
  className,
18
18
  ...props
19
- }) => (
19
+ }: CompassMainHeaderTitleProps) => (
20
20
  <div className={css(`${styles.compass}__main-header-title`, className)} {...props}>
21
21
  {children}
22
22
  </div>
@@ -16,7 +16,7 @@ export const CompassMainHeaderToolbar: React.FunctionComponent<CompassMainHeader
16
16
  children,
17
17
  className,
18
18
  ...props
19
- }) => (
19
+ }: CompassMainHeaderToolbarProps) => (
20
20
  <div className={css(`${styles.compass}__main-header-toolbar`, className)} {...props}>
21
21
  {children}
22
22
  </div>
@@ -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>
@@ -0,0 +1,20 @@
1
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
2
+ import { css } from '@patternfly/react-styles';
3
+ export interface CompassNavContentProps extends React.HTMLProps<HTMLDivElement> {
4
+ /** Content of the nav content wrapper. */
5
+ children: React.ReactNode;
6
+ /** Additional classes added to the nav content. */
7
+ className?: string;
8
+ }
9
+
10
+ export const CompassNavContent: React.FunctionComponent<CompassNavContentProps> = ({
11
+ children,
12
+ className,
13
+ ...props
14
+ }: CompassNavContentProps) => (
15
+ <div className={css(styles.compassNavContent, className)} {...props}>
16
+ {children}
17
+ </div>
18
+ );
19
+
20
+ CompassNavContent.displayName = 'CompassNavContent';
@@ -0,0 +1,77 @@
1
+ import { useRef } from 'react';
2
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
3
+ import { css } from '@patternfly/react-styles';
4
+ import { Button } from '../Button';
5
+ import { Tooltip } from '../Tooltip';
6
+
7
+ const CompassHomeIcon = () => (
8
+ <svg
9
+ width="1em"
10
+ height="1em"
11
+ className="pf-v6-svg"
12
+ viewBox="0 0 20 20"
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ aria-hidden="true"
16
+ >
17
+ <path
18
+ d="M8.33268 13.334H11.666"
19
+ stroke="currentcolor"
20
+ strokeWidth="1.5"
21
+ strokeLinecap="round"
22
+ strokeLinejoin="round"
23
+ />
24
+ <path
25
+ d="M1.66602 6.66602L9.73102 2.63351C9.89994 2.54905 10.0988 2.54905 10.2677 2.63351L18.3327 6.66602"
26
+ stroke="currentcolor"
27
+ strokeWidth="1.5"
28
+ strokeLinecap="round"
29
+ strokeLinejoin="round"
30
+ />
31
+ <path
32
+ d="M16.6673 9.16602V15.4993C16.6673 16.6039 15.7719 17.4993 14.6673 17.4993H5.33398C4.22941 17.4993 3.33398 16.6039 3.33398 15.4993V9.16602"
33
+ stroke="currentcolor"
34
+ strokeWidth="1.5"
35
+ strokeLinecap="round"
36
+ strokeLinejoin="round"
37
+ />
38
+ </svg>
39
+ );
40
+
41
+ export interface CompassNavHomeProps extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {
42
+ /** Content to display in the tooltip. Defaults to "Home". */
43
+ tooltipContent?: React.ReactNode;
44
+ /** Click handler for the home button. */
45
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
46
+ /** Additional classes added to the nav home wrapper. */
47
+ className?: string;
48
+ /** Accessible label for the nav home. */
49
+ 'aria-label'?: string;
50
+ }
51
+
52
+ export const CompassNavHome: React.FunctionComponent<CompassNavHomeProps> = ({
53
+ 'aria-label': ariaLabel = 'Home',
54
+ tooltipContent = 'Home',
55
+ className,
56
+ onClick,
57
+ ...props
58
+ }: CompassNavHomeProps) => {
59
+ const buttonRef = useRef<HTMLButtonElement>(null);
60
+
61
+ return (
62
+ <div className={css(styles.compassNav + '-home', className)} {...props}>
63
+ <Tooltip content={tooltipContent} position="left" aria="none" aria-live="off" triggerRef={buttonRef}>
64
+ <Button
65
+ isCircle
66
+ variant="plain"
67
+ icon={<CompassHomeIcon />}
68
+ aria-label={ariaLabel}
69
+ onClick={onClick}
70
+ ref={buttonRef}
71
+ />
72
+ </Tooltip>
73
+ </div>
74
+ );
75
+ };
76
+
77
+ CompassNavHome.displayName = 'CompassNavHome';
@@ -0,0 +1,21 @@
1
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
2
+ import { css } from '@patternfly/react-styles';
3
+
4
+ export interface CompassNavMainProps extends React.HTMLProps<HTMLDivElement> {
5
+ /** Content of the nav main section (typically tabs). */
6
+ children: React.ReactNode;
7
+ /** Additional classes added to the nav main section. */
8
+ className?: string;
9
+ }
10
+
11
+ export const CompassNavMain: React.FunctionComponent<CompassNavMainProps> = ({
12
+ children,
13
+ className,
14
+ ...props
15
+ }: CompassNavMainProps) => (
16
+ <div className={css(styles.compassNavMain, className)} {...props}>
17
+ {children}
18
+ </div>
19
+ );
20
+
21
+ CompassNavMain.displayName = 'CompassNavMain';
@@ -0,0 +1,70 @@
1
+ import { useRef } from 'react';
2
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
3
+ import { css } from '@patternfly/react-styles';
4
+ import { Button } from '../Button';
5
+ import { Tooltip } from '../Tooltip';
6
+
7
+ const CompassSearchIcon = () => (
8
+ <svg
9
+ width="1em"
10
+ height="1em"
11
+ className="pf-v6-svg"
12
+ viewBox="0 0 20 20"
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ aria-hidden="true"
16
+ >
17
+ <path
18
+ d="M14.166 14.166L17.4993 17.4993"
19
+ stroke="currentcolor"
20
+ strokeWidth="1.5"
21
+ strokeLinecap="round"
22
+ strokeLinejoin="round"
23
+ />
24
+ <path
25
+ d="M2.5 9.16667C2.5 12.8486 5.48477 15.8333 9.16667 15.8333C11.0108 15.8333 12.6801 15.0846 13.887 13.8744C15.0897 12.6685 15.8333 11.0044 15.8333 9.16667C15.8333 5.48477 12.8486 2.5 9.16667 2.5C5.48477 2.5 2.5 5.48477 2.5 9.16667Z"
26
+ stroke="currentcolor"
27
+ strokeWidth="1.5"
28
+ strokeLinecap="round"
29
+ strokeLinejoin="round"
30
+ />
31
+ </svg>
32
+ );
33
+
34
+ export interface CompassNavSearchProps extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {
35
+ /** Content to display in the tooltip. Defaults to "Search". */
36
+ tooltipContent?: React.ReactNode;
37
+ /** Click handler for the search button. */
38
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
39
+ /** Additional classes added to the nav search wrapper. */
40
+ className?: string;
41
+ /** Accessible label for the nav search. */
42
+ 'aria-label'?: string;
43
+ }
44
+
45
+ export const CompassNavSearch: React.FunctionComponent<CompassNavSearchProps> = ({
46
+ 'aria-label': ariaLabel = 'Search',
47
+ tooltipContent = 'Search',
48
+ className,
49
+ onClick,
50
+ ...props
51
+ }: CompassNavSearchProps) => {
52
+ const buttonRef = useRef<HTMLButtonElement>(null);
53
+
54
+ return (
55
+ <div className={css(styles.compassNav + '-search', className)} {...props}>
56
+ <Tooltip content={tooltipContent} aria="none" aria-live="off" triggerRef={buttonRef}>
57
+ <Button
58
+ isCircle
59
+ variant="plain"
60
+ icon={<CompassSearchIcon />}
61
+ aria-label={ariaLabel}
62
+ onClick={onClick}
63
+ ref={buttonRef}
64
+ />
65
+ </Tooltip>
66
+ </div>
67
+ );
68
+ };
69
+
70
+ CompassNavSearch.displayName = 'CompassNavSearch';
@@ -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,
@@ -0,0 +1,37 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { CompassNavContent } from '../CompassNavContent';
3
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
4
+
5
+ test('Renders with children', () => {
6
+ render(<CompassNavContent>Test content</CompassNavContent>);
7
+
8
+ expect(screen.getByText('Test content')).toBeVisible();
9
+ });
10
+
11
+ test('Renders with custom class name when className prop is provided', () => {
12
+ render(<CompassNavContent className="custom-class">Test</CompassNavContent>);
13
+
14
+ expect(screen.getByText('Test')).toHaveClass('custom-class');
15
+ });
16
+
17
+ test(`Renders with default ${styles.compassNavContent} class`, () => {
18
+ render(<CompassNavContent>Test</CompassNavContent>);
19
+
20
+ expect(screen.getByText('Test')).toHaveClass(styles.compassNavContent, { exact: true });
21
+ });
22
+
23
+ test('Renders with additional props spread to the component', () => {
24
+ render(<CompassNavContent aria-label="Test label">Test</CompassNavContent>);
25
+
26
+ expect(screen.getByText('Test')).toHaveAccessibleName('Test label');
27
+ });
28
+
29
+ test('Matches the snapshot', () => {
30
+ const { asFragment } = render(
31
+ <CompassNavContent>
32
+ <div>Nav content wrapper</div>
33
+ </CompassNavContent>
34
+ );
35
+
36
+ expect(asFragment()).toMatchSnapshot();
37
+ });
@@ -0,0 +1,89 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import userEvent from '@testing-library/user-event';
3
+ import { CompassNavHome } from '../CompassNavHome';
4
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
5
+
6
+ test('Renders with default aria-label', () => {
7
+ render(<CompassNavHome />);
8
+
9
+ expect(screen.getByRole('button', { name: 'Home' })).toBeVisible();
10
+ });
11
+
12
+ test('Renders with custom aria-label when provided', () => {
13
+ render(<CompassNavHome aria-label="Custom home" />);
14
+
15
+ expect(screen.getByRole('button', { name: 'Custom home' })).toBeVisible();
16
+ });
17
+
18
+ test('Renders with default tooltip content', async () => {
19
+ const user = userEvent.setup();
20
+
21
+ render(<CompassNavHome />);
22
+
23
+ const button = screen.getByRole('button');
24
+
25
+ user.hover(button);
26
+
27
+ await screen.findByRole('tooltip');
28
+
29
+ expect(screen.getByRole('tooltip')).toHaveTextContent('Home');
30
+ });
31
+
32
+ test('Renders with custom tooltip content when provided', async () => {
33
+ const user = userEvent.setup();
34
+
35
+ render(<CompassNavHome tooltipContent="Custom tooltip" />);
36
+
37
+ const button = screen.getByRole('button');
38
+
39
+ user.hover(button);
40
+
41
+ await screen.findByRole('tooltip');
42
+ expect(screen.getByRole('tooltip')).toHaveTextContent('Custom tooltip');
43
+ });
44
+
45
+ test('Renders with custom class name when className prop is provided', () => {
46
+ const { container } = render(<CompassNavHome className="custom-class" />);
47
+
48
+ expect(container.firstChild).toHaveClass('custom-class');
49
+ });
50
+
51
+ test(`Renders with default class`, () => {
52
+ const { container } = render(<CompassNavHome />);
53
+
54
+ expect(container.firstChild).toHaveClass(styles.compassNav + '-home', { exact: true });
55
+ });
56
+
57
+ test('Calls onClick handler when button is clicked', async () => {
58
+ const user = userEvent.setup();
59
+ const onClick = jest.fn();
60
+
61
+ render(<CompassNavHome onClick={onClick} />);
62
+
63
+ await user.click(screen.getByRole('button', { name: 'Home' }));
64
+
65
+ expect(onClick).toHaveBeenCalledTimes(1);
66
+ });
67
+
68
+ test('Renders button with plain variant and circle shape', () => {
69
+ render(<CompassNavHome />);
70
+
71
+ const button = screen.getByRole('button', { name: 'Home' });
72
+
73
+ expect(button).toHaveClass('pf-m-plain');
74
+ expect(button).toHaveClass('pf-m-circle');
75
+ });
76
+
77
+ test('Matches the snapshot', () => {
78
+ const { asFragment } = render(<CompassNavHome />);
79
+
80
+ expect(asFragment()).toMatchSnapshot();
81
+ });
82
+
83
+ test('Matches the snapshot with custom props', () => {
84
+ const { asFragment } = render(
85
+ <CompassNavHome aria-label="Custom home" tooltipContent="Go home" className="custom-class" />
86
+ );
87
+
88
+ expect(asFragment()).toMatchSnapshot();
89
+ });
@@ -0,0 +1,37 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { CompassNavMain } from '../CompassNavMain';
3
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
4
+
5
+ test('Renders with children', () => {
6
+ render(<CompassNavMain>Test content</CompassNavMain>);
7
+
8
+ expect(screen.getByText('Test content')).toBeVisible();
9
+ });
10
+
11
+ test('Renders with custom class name when className prop is provided', () => {
12
+ render(<CompassNavMain className="custom-class">Test</CompassNavMain>);
13
+
14
+ expect(screen.getByText('Test')).toHaveClass('custom-class');
15
+ });
16
+
17
+ test(`Renders with default ${styles.compassNavMain} class`, () => {
18
+ render(<CompassNavMain>Test</CompassNavMain>);
19
+
20
+ expect(screen.getByText('Test')).toHaveClass(styles.compassNavMain, { exact: true });
21
+ });
22
+
23
+ test('Renders with additional props spread to the component', () => {
24
+ render(<CompassNavMain aria-label="Test label">Test</CompassNavMain>);
25
+
26
+ expect(screen.getByText('Test')).toHaveAccessibleName('Test label');
27
+ });
28
+
29
+ test('Matches the snapshot', () => {
30
+ const { asFragment } = render(
31
+ <CompassNavMain>
32
+ <div>Main tabs content</div>
33
+ </CompassNavMain>
34
+ );
35
+
36
+ expect(asFragment()).toMatchSnapshot();
37
+ });
@@ -0,0 +1,87 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import userEvent from '@testing-library/user-event';
3
+ import { CompassNavSearch } from '../CompassNavSearch';
4
+ import styles from '@patternfly/react-styles/css/components/Compass/compass';
5
+
6
+ test('Renders with default aria-label', () => {
7
+ render(<CompassNavSearch />);
8
+ expect(screen.getByRole('button', { name: 'Search' })).toBeVisible();
9
+ });
10
+
11
+ test('Renders with custom aria-label when provided', () => {
12
+ render(<CompassNavSearch aria-label="Custom search" />);
13
+ expect(screen.getByRole('button', { name: 'Custom search' })).toBeVisible();
14
+ });
15
+
16
+ test('Renders with default tooltip content', async () => {
17
+ const user = userEvent.setup();
18
+
19
+ render(<CompassNavSearch />);
20
+
21
+ const button = screen.getByRole('button');
22
+
23
+ user.hover(button);
24
+
25
+ await screen.findByRole('tooltip');
26
+
27
+ expect(screen.getByRole('tooltip')).toHaveTextContent('Search');
28
+ });
29
+
30
+ test('Renders with custom tooltip content when provided', async () => {
31
+ const user = userEvent.setup();
32
+
33
+ render(<CompassNavSearch tooltipContent="Custom tooltip" />);
34
+
35
+ const button = screen.getByRole('button');
36
+
37
+ user.hover(button);
38
+
39
+ await screen.findByRole('tooltip');
40
+
41
+ expect(screen.getByRole('tooltip')).toHaveTextContent('Custom tooltip');
42
+ });
43
+
44
+ test('Renders with custom class name when className prop is provided', () => {
45
+ const { container } = render(<CompassNavSearch className="custom-class" />);
46
+
47
+ expect(container.firstChild).toHaveClass('custom-class');
48
+ });
49
+
50
+ test(`Renders with default class`, () => {
51
+ const { container } = render(<CompassNavSearch />);
52
+
53
+ expect(container.firstChild).toHaveClass(styles.compassNav + '-search', { exact: true });
54
+ });
55
+
56
+ test('Calls onClick handler when button is clicked', async () => {
57
+ const user = userEvent.setup();
58
+ const onClick = jest.fn();
59
+
60
+ render(<CompassNavSearch onClick={onClick} />);
61
+
62
+ await user.click(screen.getByRole('button', { name: 'Search' }));
63
+
64
+ expect(onClick).toHaveBeenCalledTimes(1);
65
+ });
66
+
67
+ test('Renders button with plain variant and circle shape', () => {
68
+ render(<CompassNavSearch />);
69
+
70
+ const button = screen.getByRole('button', { name: 'Search' });
71
+
72
+ expect(button).toHaveClass('pf-m-plain');
73
+ });
74
+
75
+ test('Matches the snapshot', () => {
76
+ const { asFragment } = render(<CompassNavSearch />);
77
+
78
+ expect(asFragment()).toMatchSnapshot();
79
+ });
80
+
81
+ test('Matches the snapshot with custom props', () => {
82
+ const { asFragment } = render(
83
+ <CompassNavSearch aria-label="Custom search" tooltipContent="Search content" className="custom-class" />
84
+ );
85
+
86
+ expect(asFragment()).toMatchSnapshot();
87
+ });
@@ -0,0 +1,13 @@
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__nav-content"
7
+ >
8
+ <div>
9
+ Nav content wrapper
10
+ </div>
11
+ </div>
12
+ </DocumentFragment>
13
+ `;