@patternfly/react-core 6.0.0-alpha.80 → 6.0.0-alpha.82

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 (244) hide show
  1. package/CHANGELOG.md +13 -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/Content/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/Tile/package.json +1 -1
  74. package/dist/dynamic/components/TimePicker/package.json +1 -1
  75. package/dist/dynamic/components/Timestamp/package.json +1 -1
  76. package/dist/dynamic/components/Title/package.json +1 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  78. package/dist/dynamic/components/Toolbar/package.json +1 -1
  79. package/dist/dynamic/components/Tooltip/package.json +1 -1
  80. package/dist/dynamic/components/TreeView/package.json +1 -1
  81. package/dist/dynamic/components/Truncate/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  95. package/dist/dynamic/helpers/constants/package.json +1 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  99. package/dist/dynamic/helpers/package.json +1 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  105. package/dist/dynamic/helpers/util/package.json +1 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  107. package/dist/dynamic/layouts/Flex/package.json +1 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  109. package/dist/dynamic/layouts/Grid/package.json +1 -1
  110. package/dist/dynamic/layouts/Level/package.json +1 -1
  111. package/dist/dynamic/layouts/Split/package.json +1 -1
  112. package/dist/dynamic/layouts/Stack/package.json +1 -1
  113. package/dist/dynamic/styles/package.json +1 -1
  114. package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
  115. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  116. package/dist/esm/components/Dropdown/Dropdown.js +2 -2
  117. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  118. package/dist/esm/components/Nav/NavItem.d.ts +2 -2
  119. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  120. package/dist/esm/components/Nav/NavItem.js +3 -2
  121. package/dist/esm/components/Nav/NavItem.js.map +1 -1
  122. package/dist/esm/components/Page/Page.d.ts.map +1 -1
  123. package/dist/esm/components/Page/Page.js +1 -1
  124. package/dist/esm/components/Page/Page.js.map +1 -1
  125. package/dist/esm/components/Toolbar/Toolbar.d.ts +0 -2
  126. package/dist/esm/components/Toolbar/Toolbar.d.ts.map +1 -1
  127. package/dist/esm/components/Toolbar/Toolbar.js +2 -2
  128. package/dist/esm/components/Toolbar/Toolbar.js.map +1 -1
  129. package/dist/esm/components/Toolbar/ToolbarContent.d.ts +0 -2
  130. package/dist/esm/components/Toolbar/ToolbarContent.d.ts.map +1 -1
  131. package/dist/esm/components/Toolbar/ToolbarContent.js +2 -2
  132. package/dist/esm/components/Toolbar/ToolbarContent.js.map +1 -1
  133. package/dist/esm/components/Toolbar/ToolbarGroup.d.ts +12 -9
  134. package/dist/esm/components/Toolbar/ToolbarGroup.d.ts.map +1 -1
  135. package/dist/esm/components/Toolbar/ToolbarGroup.js +6 -2
  136. package/dist/esm/components/Toolbar/ToolbarGroup.js.map +1 -1
  137. package/dist/esm/components/Toolbar/ToolbarItem.d.ts +7 -7
  138. package/dist/esm/components/Toolbar/ToolbarItem.d.ts.map +1 -1
  139. package/dist/esm/components/Toolbar/ToolbarLabelGroupContent.d.ts.map +1 -1
  140. package/dist/esm/components/Toolbar/ToolbarLabelGroupContent.js +7 -5
  141. package/dist/esm/components/Toolbar/ToolbarLabelGroupContent.js.map +1 -1
  142. package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts +0 -8
  143. package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
  144. package/dist/esm/components/Toolbar/ToolbarToggleGroup.js +3 -2
  145. package/dist/esm/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
  146. package/dist/esm/components/Toolbar/ToolbarUtils.js +4 -4
  147. package/dist/esm/components/Toolbar/ToolbarUtils.js.map +1 -1
  148. package/dist/esm/demos/DashboardHeader.js +2 -2
  149. package/dist/esm/demos/DashboardHeader.js.map +1 -1
  150. package/dist/esm/helpers/constants.js +10 -10
  151. package/dist/esm/helpers/constants.js.map +1 -1
  152. package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
  153. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  154. package/dist/js/components/Dropdown/Dropdown.js +2 -2
  155. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  156. package/dist/js/components/Nav/NavItem.d.ts +2 -2
  157. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  158. package/dist/js/components/Nav/NavItem.js +3 -2
  159. package/dist/js/components/Nav/NavItem.js.map +1 -1
  160. package/dist/js/components/Page/Page.d.ts.map +1 -1
  161. package/dist/js/components/Page/Page.js +1 -1
  162. package/dist/js/components/Page/Page.js.map +1 -1
  163. package/dist/js/components/Toolbar/Toolbar.d.ts +0 -2
  164. package/dist/js/components/Toolbar/Toolbar.d.ts.map +1 -1
  165. package/dist/js/components/Toolbar/Toolbar.js +2 -2
  166. package/dist/js/components/Toolbar/Toolbar.js.map +1 -1
  167. package/dist/js/components/Toolbar/ToolbarContent.d.ts +0 -2
  168. package/dist/js/components/Toolbar/ToolbarContent.d.ts.map +1 -1
  169. package/dist/js/components/Toolbar/ToolbarContent.js +2 -2
  170. package/dist/js/components/Toolbar/ToolbarContent.js.map +1 -1
  171. package/dist/js/components/Toolbar/ToolbarGroup.d.ts +12 -9
  172. package/dist/js/components/Toolbar/ToolbarGroup.d.ts.map +1 -1
  173. package/dist/js/components/Toolbar/ToolbarGroup.js +6 -2
  174. package/dist/js/components/Toolbar/ToolbarGroup.js.map +1 -1
  175. package/dist/js/components/Toolbar/ToolbarItem.d.ts +7 -7
  176. package/dist/js/components/Toolbar/ToolbarItem.d.ts.map +1 -1
  177. package/dist/js/components/Toolbar/ToolbarLabelGroupContent.d.ts.map +1 -1
  178. package/dist/js/components/Toolbar/ToolbarLabelGroupContent.js +7 -5
  179. package/dist/js/components/Toolbar/ToolbarLabelGroupContent.js.map +1 -1
  180. package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts +0 -8
  181. package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
  182. package/dist/js/components/Toolbar/ToolbarToggleGroup.js +3 -2
  183. package/dist/js/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
  184. package/dist/js/components/Toolbar/ToolbarUtils.js +4 -4
  185. package/dist/js/components/Toolbar/ToolbarUtils.js.map +1 -1
  186. package/dist/js/demos/DashboardHeader.js +2 -2
  187. package/dist/js/demos/DashboardHeader.js.map +1 -1
  188. package/dist/js/helpers/constants.js +10 -10
  189. package/dist/js/helpers/constants.js.map +1 -1
  190. package/dist/styles/base-no-reset.css +62 -58
  191. package/dist/styles/base.css +62 -58
  192. package/dist/umd/assets/{output-DtA2f1AM.css → output-CJBOn_jY.css} +2416 -2596
  193. package/dist/umd/react-core.min.js +2 -2
  194. package/helpers/package.json +1 -1
  195. package/layouts/package.json +1 -1
  196. package/next/package.json +1 -1
  197. package/package.json +6 -6
  198. package/src/components/Dropdown/Dropdown.tsx +4 -1
  199. package/src/components/Nav/NavItem.tsx +5 -4
  200. package/src/components/Nav/__tests__/Nav.test.tsx +18 -0
  201. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +200 -40
  202. package/src/components/Nav/examples/Nav.md +7 -2
  203. package/src/components/Nav/examples/NavIcons.tsx +61 -0
  204. package/src/components/Page/Page.tsx +1 -1
  205. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +75 -15
  206. package/src/components/Toolbar/Toolbar.tsx +0 -4
  207. package/src/components/Toolbar/ToolbarContent.tsx +1 -7
  208. package/src/components/Toolbar/ToolbarGroup.tsx +27 -10
  209. package/src/components/Toolbar/ToolbarItem.tsx +7 -7
  210. package/src/components/Toolbar/ToolbarLabelGroupContent.tsx +13 -11
  211. package/src/components/Toolbar/ToolbarToggleGroup.tsx +9 -11
  212. package/src/components/Toolbar/ToolbarUtils.tsx +4 -4
  213. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +0 -19
  214. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +30 -77
  215. package/src/components/Toolbar/examples/ToolbarCustomLabelGroupContent.tsx +1 -1
  216. package/src/components/Toolbar/examples/ToolbarGroups.tsx +2 -2
  217. package/src/components/Toolbar/examples/ToolbarInsets.tsx +23 -19
  218. package/src/components/Toolbar/examples/ToolbarSpacers.tsx +23 -19
  219. package/src/components/Toolbar/examples/ToolbarStacked.tsx +2 -2
  220. package/src/components/Toolbar/examples/ToolbarSticky.tsx +1 -1
  221. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +1 -1
  222. package/src/demos/DashboardHeader.tsx +2 -2
  223. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +2 -2
  224. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +2 -2
  225. package/src/demos/RTL/examples/PaginatedTable.jsx +2 -2
  226. package/src/demos/RTL/examples/PaginatedTable.tsx +2 -2
  227. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +2 -2
  228. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +2 -2
  229. package/src/demos/examples/Nav/NavFlyout.tsx +2 -2
  230. package/src/demos/examples/Nav/NavHorizontal.tsx +2 -2
  231. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +2 -2
  232. package/src/demos/examples/Nav/NavManual.tsx +2 -2
  233. package/src/demos/examples/Page/PageContextSelector.tsx +2 -2
  234. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +2 -2
  235. package/src/demos/examples/Page/PageStickySectionGroup.tsx +2 -2
  236. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +2 -2
  237. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +1 -1
  238. package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +1 -1
  239. package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +1 -1
  240. package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +1 -1
  241. package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +1 -1
  242. package/src/demos/examples/Tabs/TabsAndTable.tsx +1 -1
  243. package/src/helpers/constants.ts +10 -10
  244. package/src/components/Nav/examples/NavLinkText.tsx +0 -109
@@ -3,6 +3,6 @@
3
3
  "main": "../dist/js/helpers/index.js",
4
4
  "module": "../dist/esm/helpers/index.js",
5
5
  "typings": "../dist/esm/helpers/index.d.ts",
6
- "version": "6.0.0-alpha.79",
6
+ "version": "6.0.0-alpha.81",
7
7
  "private": true
8
8
  }
@@ -3,6 +3,6 @@
3
3
  "main": "../dist/js/layouts/index.js",
4
4
  "module": "../dist/esm/layouts/index.js",
5
5
  "typings": "../dist/esm/layouts/index.d.ts",
6
- "version": "6.0.0-alpha.79",
6
+ "version": "6.0.0-alpha.81",
7
7
  "private": true
8
8
  }
package/next/package.json CHANGED
@@ -3,6 +3,6 @@
3
3
  "main": "../dist/js/next/index.js",
4
4
  "module": "../dist/esm/next/index.js",
5
5
  "typings": "../dist/esm/next/index.d.ts",
6
- "version": "6.0.0-alpha.79",
6
+ "version": "6.0.0-alpha.81",
7
7
  "private": true
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.0.0-alpha.80",
3
+ "version": "6.0.0-alpha.82",
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",
@@ -47,15 +47,15 @@
47
47
  "clean:exports": "node scripts/cleanDistExports.js"
48
48
  },
49
49
  "dependencies": {
50
- "@patternfly/react-icons": "^6.0.0-alpha.29",
51
- "@patternfly/react-styles": "^6.0.0-alpha.28",
52
- "@patternfly/react-tokens": "^6.0.0-alpha.28",
50
+ "@patternfly/react-icons": "^6.0.0-alpha.30",
51
+ "@patternfly/react-styles": "^6.0.0-alpha.29",
52
+ "@patternfly/react-tokens": "^6.0.0-alpha.29",
53
53
  "focus-trap": "7.5.4",
54
54
  "react-dropzone": "^14.2.3",
55
55
  "tslib": "^2.6.2"
56
56
  },
57
57
  "devDependencies": {
58
- "@patternfly/patternfly": "6.0.0-alpha.180",
58
+ "@patternfly/patternfly": "6.0.0-alpha.187",
59
59
  "case-anything": "^2.1.13",
60
60
  "css": "^3.0.0",
61
61
  "fs-extra": "^11.2.0"
@@ -64,5 +64,5 @@
64
64
  "react": "^17 || ^18",
65
65
  "react-dom": "^17 || ^18"
66
66
  },
67
- "gitHead": "b5ff689e492d13a4bda9794faf7015dd7b976d6a"
67
+ "gitHead": "38f193a8eb07223c13de5e466a242f495f8830b0"
68
68
  }
@@ -69,6 +69,8 @@ export interface DropdownProps extends MenuProps, OUIAProps {
69
69
  menuHeight?: string;
70
70
  /** Maximum height of dropdown menu */
71
71
  maxMenuHeight?: string;
72
+ /** @beta Flag indicating the first menu item should be focused after opening the dropdown. */
73
+ shouldFocusFirstItemOnOpen?: boolean;
72
74
  }
73
75
 
74
76
  const DropdownBase: React.FunctionComponent<DropdownProps> = ({
@@ -89,6 +91,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
89
91
  onOpenChangeKeys = ['Escape', 'Tab'],
90
92
  menuHeight,
91
93
  maxMenuHeight,
94
+ shouldFocusFirstItemOnOpen = true,
92
95
  ...props
93
96
  }: DropdownProps) => {
94
97
  const localMenuRef = React.useRef<HTMLDivElement>();
@@ -118,7 +121,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
118
121
 
119
122
  const handleClick = (event: MouseEvent) => {
120
123
  // toggle was opened, focus on first menu item
121
- if (isOpen && toggleRef.current?.contains(event.target as Node)) {
124
+ if (isOpen && shouldFocusFirstItemOnOpen && toggleRef.current?.contains(event.target as Node)) {
122
125
  setTimeout(() => {
123
126
  const firstElement = menuRef?.current?.querySelector(
124
127
  'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
@@ -36,12 +36,12 @@ export interface NavItemProps extends Omit<React.HTMLProps<HTMLAnchorElement>, '
36
36
  onShowFlyout?: () => void;
37
37
  /** z-index of the flyout nav item */
38
38
  zIndex?: number;
39
+ /** Icon added before the nav item children. */
40
+ icon?: React.ReactNode;
39
41
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
40
42
  ouiaId?: number | string;
41
43
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
42
44
  ouiaSafe?: boolean;
43
- /** Adds a wrapper around the nav link text. Improves the layout when the text is a react node. */
44
- hasNavLinkWrapper?: boolean;
45
45
  }
46
46
 
47
47
  export const NavItem: React.FunctionComponent<NavItemProps> = ({
@@ -60,7 +60,7 @@ export const NavItem: React.FunctionComponent<NavItemProps> = ({
60
60
  ouiaId,
61
61
  ouiaSafe,
62
62
  zIndex = 9999,
63
- hasNavLinkWrapper,
63
+ icon,
64
64
  ...props
65
65
  }: NavItemProps) => {
66
66
  const { flyoutRef, setFlyoutRef, navRef } = React.useContext(NavContext);
@@ -193,7 +193,8 @@ export const NavItem: React.FunctionComponent<NavItemProps> = ({
193
193
  {...(hasFlyout && { ...ariaFlyoutProps })}
194
194
  {...props}
195
195
  >
196
- {hasNavLinkWrapper ? <span className={css(`${styles.nav}__link-text`)}>{children}</span> : children}
196
+ {icon && <span className={css(styles.navLinkIcon)}>{icon}</span>}
197
+ <span className={css(`${styles.nav}__link-text`)}>{children}</span>
197
198
  {flyout && flyoutButton}
198
199
  </Component>
199
200
  );
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
 
3
3
  import { render, screen } from '@testing-library/react';
4
4
  import userEvent from '@testing-library/user-event';
5
+ import '@testing-library/jest-dom';
5
6
 
6
7
  import { Nav, NavContext } from '../Nav';
7
8
  import { NavList } from '../NavList';
@@ -9,6 +10,8 @@ import { NavGroup } from '../NavGroup';
9
10
  import { NavItem } from '../NavItem';
10
11
  import { NavExpandable } from '../NavExpandable';
11
12
 
13
+ import styles from '@patternfly/react-styles/css/components/Nav/nav';
14
+
12
15
  const props = {
13
16
  items: [
14
17
  { to: '#link1', label: 'Link 1' },
@@ -242,4 +245,19 @@ describe('Nav', () => {
242
245
  await user.hover(screen.getByText('My custom node'));
243
246
  expect(asFragment()).toMatchSnapshot();
244
247
  });
248
+
249
+ test('Nav with icon', () => {
250
+ renderNav(
251
+ <Nav>
252
+ <NavList className="test-nav-icon">
253
+ {props.items.map((item) => (
254
+ <NavItem to={item.to} key={item.to} icon={<span>this is an icon</span>} className="test-nav-item-class">
255
+ {item.label}
256
+ </NavItem>
257
+ ))}
258
+ </NavList>
259
+ </Nav>
260
+ );
261
+ expect(screen.getAllByText('this is an icon')[0].parentElement).toHaveClass(styles.navLinkIcon);
262
+ });
245
263
  });
@@ -23,7 +23,11 @@ exports[`Nav Default Nav List - Trigger item active update 1`] = `
23
23
  class="pf-v6-c-nav__link"
24
24
  href="#link1"
25
25
  >
26
- Link 1
26
+ <span
27
+ class="pf-v6-c-nav__link-text"
28
+ >
29
+ Link 1
30
+ </span>
27
31
  </a>
28
32
  </li>
29
33
  <li
@@ -36,7 +40,11 @@ exports[`Nav Default Nav List - Trigger item active update 1`] = `
36
40
  class="pf-v6-c-nav__link"
37
41
  href="#link2"
38
42
  >
39
- Link 2
43
+ <span
44
+ class="pf-v6-c-nav__link-text"
45
+ >
46
+ Link 2
47
+ </span>
40
48
  </a>
41
49
  </li>
42
50
  <li
@@ -49,7 +57,11 @@ exports[`Nav Default Nav List - Trigger item active update 1`] = `
49
57
  class="pf-v6-c-nav__link"
50
58
  href="#link3"
51
59
  >
52
- Link 3
60
+ <span
61
+ class="pf-v6-c-nav__link-text"
62
+ >
63
+ Link 3
64
+ </span>
53
65
  </a>
54
66
  </li>
55
67
  <li
@@ -62,7 +74,11 @@ exports[`Nav Default Nav List - Trigger item active update 1`] = `
62
74
  class="pf-v6-c-nav__link"
63
75
  href="#link4"
64
76
  >
65
- Link 4
77
+ <span
78
+ class="pf-v6-c-nav__link-text"
79
+ >
80
+ Link 4
81
+ </span>
66
82
  </a>
67
83
  </li>
68
84
  </ul>
@@ -93,7 +109,11 @@ exports[`Nav Default Nav List 1`] = `
93
109
  class="pf-v6-c-nav__link test-nav-item-class"
94
110
  href="#link1"
95
111
  >
96
- Link 1
112
+ <span
113
+ class="pf-v6-c-nav__link-text"
114
+ >
115
+ Link 1
116
+ </span>
97
117
  </a>
98
118
  </li>
99
119
  <li
@@ -106,7 +126,11 @@ exports[`Nav Default Nav List 1`] = `
106
126
  class="pf-v6-c-nav__link test-nav-item-class"
107
127
  href="#link2"
108
128
  >
109
- Link 2
129
+ <span
130
+ class="pf-v6-c-nav__link-text"
131
+ >
132
+ Link 2
133
+ </span>
110
134
  </a>
111
135
  </li>
112
136
  <li
@@ -119,7 +143,11 @@ exports[`Nav Default Nav List 1`] = `
119
143
  class="pf-v6-c-nav__link test-nav-item-class"
120
144
  href="#link3"
121
145
  >
122
- Link 3
146
+ <span
147
+ class="pf-v6-c-nav__link-text"
148
+ >
149
+ Link 3
150
+ </span>
123
151
  </a>
124
152
  </li>
125
153
  <li
@@ -132,7 +160,11 @@ exports[`Nav Default Nav List 1`] = `
132
160
  class="pf-v6-c-nav__link test-nav-item-class"
133
161
  href="#link4"
134
162
  >
135
- Link 4
163
+ <span
164
+ class="pf-v6-c-nav__link-text"
165
+ >
166
+ Link 4
167
+ </span>
136
168
  </a>
137
169
  </li>
138
170
  </ul>
@@ -206,7 +238,11 @@ exports[`Nav Expandable Nav List - Trigger toggle 1`] = `
206
238
  class="pf-v6-c-nav__link"
207
239
  href="#link1"
208
240
  >
209
- Link 1
241
+ <span
242
+ class="pf-v6-c-nav__link-text"
243
+ >
244
+ Link 1
245
+ </span>
210
246
  </a>
211
247
  </li>
212
248
  <li
@@ -219,7 +255,11 @@ exports[`Nav Expandable Nav List - Trigger toggle 1`] = `
219
255
  class="pf-v6-c-nav__link"
220
256
  href="#link2"
221
257
  >
222
- Link 2
258
+ <span
259
+ class="pf-v6-c-nav__link-text"
260
+ >
261
+ Link 2
262
+ </span>
223
263
  </a>
224
264
  </li>
225
265
  <li
@@ -232,7 +272,11 @@ exports[`Nav Expandable Nav List - Trigger toggle 1`] = `
232
272
  class="pf-v6-c-nav__link"
233
273
  href="#link3"
234
274
  >
235
- Link 3
275
+ <span
276
+ class="pf-v6-c-nav__link-text"
277
+ >
278
+ Link 3
279
+ </span>
236
280
  </a>
237
281
  </li>
238
282
  <li
@@ -245,7 +289,11 @@ exports[`Nav Expandable Nav List - Trigger toggle 1`] = `
245
289
  class="pf-v6-c-nav__link"
246
290
  href="#link4"
247
291
  >
248
- Link 4
292
+ <span
293
+ class="pf-v6-c-nav__link-text"
294
+ >
295
+ Link 4
296
+ </span>
249
297
  </a>
250
298
  </li>
251
299
  </ul>
@@ -322,7 +370,11 @@ exports[`Nav Expandable Nav List 1`] = `
322
370
  class="pf-v6-c-nav__link"
323
371
  href="#link1"
324
372
  >
325
- Link 1
373
+ <span
374
+ class="pf-v6-c-nav__link-text"
375
+ >
376
+ Link 1
377
+ </span>
326
378
  </a>
327
379
  </li>
328
380
  <li
@@ -335,7 +387,11 @@ exports[`Nav Expandable Nav List 1`] = `
335
387
  class="pf-v6-c-nav__link"
336
388
  href="#link2"
337
389
  >
338
- Link 2
390
+ <span
391
+ class="pf-v6-c-nav__link-text"
392
+ >
393
+ Link 2
394
+ </span>
339
395
  </a>
340
396
  </li>
341
397
  <li
@@ -348,7 +404,11 @@ exports[`Nav Expandable Nav List 1`] = `
348
404
  class="pf-v6-c-nav__link"
349
405
  href="#link3"
350
406
  >
351
- Link 3
407
+ <span
408
+ class="pf-v6-c-nav__link-text"
409
+ >
410
+ Link 3
411
+ </span>
352
412
  </a>
353
413
  </li>
354
414
  <li
@@ -361,7 +421,11 @@ exports[`Nav Expandable Nav List 1`] = `
361
421
  class="pf-v6-c-nav__link"
362
422
  href="#link4"
363
423
  >
364
- Link 4
424
+ <span
425
+ class="pf-v6-c-nav__link-text"
426
+ >
427
+ Link 4
428
+ </span>
365
429
  </a>
366
430
  </li>
367
431
  </ul>
@@ -443,7 +507,11 @@ exports[`Nav Expandable Nav List with aria label 1`] = `
443
507
  class="pf-v6-c-nav__link"
444
508
  href="#link1"
445
509
  >
446
- Link 1
510
+ <span
511
+ class="pf-v6-c-nav__link-text"
512
+ >
513
+ Link 1
514
+ </span>
447
515
  </a>
448
516
  </li>
449
517
  <li
@@ -456,7 +524,11 @@ exports[`Nav Expandable Nav List with aria label 1`] = `
456
524
  class="pf-v6-c-nav__link"
457
525
  href="#link2"
458
526
  >
459
- Link 2
527
+ <span
528
+ class="pf-v6-c-nav__link-text"
529
+ >
530
+ Link 2
531
+ </span>
460
532
  </a>
461
533
  </li>
462
534
  <li
@@ -469,7 +541,11 @@ exports[`Nav Expandable Nav List with aria label 1`] = `
469
541
  class="pf-v6-c-nav__link"
470
542
  href="#link3"
471
543
  >
472
- Link 3
544
+ <span
545
+ class="pf-v6-c-nav__link-text"
546
+ >
547
+ Link 3
548
+ </span>
473
549
  </a>
474
550
  </li>
475
551
  <li
@@ -482,7 +558,11 @@ exports[`Nav Expandable Nav List with aria label 1`] = `
482
558
  class="pf-v6-c-nav__link"
483
559
  href="#link4"
484
560
  >
485
- Link 4
561
+ <span
562
+ class="pf-v6-c-nav__link-text"
563
+ >
564
+ Link 4
565
+ </span>
486
566
  </a>
487
567
  </li>
488
568
  </ul>
@@ -516,7 +596,11 @@ exports[`Nav Horizontal Nav List 1`] = `
516
596
  class="pf-v6-c-nav__link"
517
597
  href="#link1"
518
598
  >
519
- Link 1
599
+ <span
600
+ class="pf-v6-c-nav__link-text"
601
+ >
602
+ Link 1
603
+ </span>
520
604
  </a>
521
605
  </li>
522
606
  <li
@@ -529,7 +613,11 @@ exports[`Nav Horizontal Nav List 1`] = `
529
613
  class="pf-v6-c-nav__link"
530
614
  href="#link2"
531
615
  >
532
- Link 2
616
+ <span
617
+ class="pf-v6-c-nav__link-text"
618
+ >
619
+ Link 2
620
+ </span>
533
621
  </a>
534
622
  </li>
535
623
  <li
@@ -542,7 +630,11 @@ exports[`Nav Horizontal Nav List 1`] = `
542
630
  class="pf-v6-c-nav__link"
543
631
  href="#link3"
544
632
  >
545
- Link 3
633
+ <span
634
+ class="pf-v6-c-nav__link-text"
635
+ >
636
+ Link 3
637
+ </span>
546
638
  </a>
547
639
  </li>
548
640
  <li
@@ -555,7 +647,11 @@ exports[`Nav Horizontal Nav List 1`] = `
555
647
  class="pf-v6-c-nav__link"
556
648
  href="#link4"
557
649
  >
558
- Link 4
650
+ <span
651
+ class="pf-v6-c-nav__link-text"
652
+ >
653
+ Link 4
654
+ </span>
559
655
  </a>
560
656
  </li>
561
657
  </ul>
@@ -586,7 +682,11 @@ exports[`Nav Horizontal SubNav List 1`] = `
586
682
  class="pf-v6-c-nav__link"
587
683
  href="#link1"
588
684
  >
589
- Link 1
685
+ <span
686
+ class="pf-v6-c-nav__link-text"
687
+ >
688
+ Link 1
689
+ </span>
590
690
  </a>
591
691
  </li>
592
692
  <li
@@ -599,7 +699,11 @@ exports[`Nav Horizontal SubNav List 1`] = `
599
699
  class="pf-v6-c-nav__link"
600
700
  href="#link2"
601
701
  >
602
- Link 2
702
+ <span
703
+ class="pf-v6-c-nav__link-text"
704
+ >
705
+ Link 2
706
+ </span>
603
707
  </a>
604
708
  </li>
605
709
  <li
@@ -612,7 +716,11 @@ exports[`Nav Horizontal SubNav List 1`] = `
612
716
  class="pf-v6-c-nav__link"
613
717
  href="#link3"
614
718
  >
615
- Link 3
719
+ <span
720
+ class="pf-v6-c-nav__link-text"
721
+ >
722
+ Link 3
723
+ </span>
616
724
  </a>
617
725
  </li>
618
726
  <li
@@ -625,7 +733,11 @@ exports[`Nav Horizontal SubNav List 1`] = `
625
733
  class="pf-v6-c-nav__link"
626
734
  href="#link4"
627
735
  >
628
- Link 4
736
+ <span
737
+ class="pf-v6-c-nav__link-text"
738
+ >
739
+ Link 4
740
+ </span>
629
741
  </a>
630
742
  </li>
631
743
  </ul>
@@ -670,7 +782,11 @@ exports[`Nav Nav Grouped List 1`] = `
670
782
  class="pf-v6-c-nav__link"
671
783
  href="#link1"
672
784
  >
673
- Link 1
785
+ <span
786
+ class="pf-v6-c-nav__link-text"
787
+ >
788
+ Link 1
789
+ </span>
674
790
  </a>
675
791
  </li>
676
792
  <li
@@ -683,7 +799,11 @@ exports[`Nav Nav Grouped List 1`] = `
683
799
  class="pf-v6-c-nav__link"
684
800
  href="#link2"
685
801
  >
686
- Link 2
802
+ <span
803
+ class="pf-v6-c-nav__link-text"
804
+ >
805
+ Link 2
806
+ </span>
687
807
  </a>
688
808
  </li>
689
809
  <li
@@ -696,7 +816,11 @@ exports[`Nav Nav Grouped List 1`] = `
696
816
  class="pf-v6-c-nav__link"
697
817
  href="#link3"
698
818
  >
699
- Link 3
819
+ <span
820
+ class="pf-v6-c-nav__link-text"
821
+ >
822
+ Link 3
823
+ </span>
700
824
  </a>
701
825
  </li>
702
826
  <li
@@ -709,7 +833,11 @@ exports[`Nav Nav Grouped List 1`] = `
709
833
  class="pf-v6-c-nav__link"
710
834
  href="#link4"
711
835
  >
712
- Link 4
836
+ <span
837
+ class="pf-v6-c-nav__link-text"
838
+ >
839
+ Link 4
840
+ </span>
713
841
  </a>
714
842
  </li>
715
843
  </ul>
@@ -743,7 +871,11 @@ exports[`Nav Nav Grouped List 1`] = `
743
871
  class="pf-v6-c-nav__link"
744
872
  href="#link1"
745
873
  >
746
- Link 1
874
+ <span
875
+ class="pf-v6-c-nav__link-text"
876
+ >
877
+ Link 1
878
+ </span>
747
879
  </a>
748
880
  </li>
749
881
  <li
@@ -756,7 +888,11 @@ exports[`Nav Nav Grouped List 1`] = `
756
888
  class="pf-v6-c-nav__link"
757
889
  href="#link2"
758
890
  >
759
- Link 2
891
+ <span
892
+ class="pf-v6-c-nav__link-text"
893
+ >
894
+ Link 2
895
+ </span>
760
896
  </a>
761
897
  </li>
762
898
  <li
@@ -769,7 +905,11 @@ exports[`Nav Nav Grouped List 1`] = `
769
905
  class="pf-v6-c-nav__link"
770
906
  href="#link3"
771
907
  >
772
- Link 3
908
+ <span
909
+ class="pf-v6-c-nav__link-text"
910
+ >
911
+ Link 3
912
+ </span>
773
913
  </a>
774
914
  </li>
775
915
  <li
@@ -782,7 +922,11 @@ exports[`Nav Nav Grouped List 1`] = `
782
922
  class="pf-v6-c-nav__link"
783
923
  href="#link4"
784
924
  >
785
- Link 4
925
+ <span
926
+ class="pf-v6-c-nav__link-text"
927
+ >
928
+ Link 4
929
+ </span>
786
930
  </a>
787
931
  </li>
788
932
  </ul>
@@ -907,7 +1051,11 @@ exports[`Nav Renders nav list in strict mode 1`] = `
907
1051
  class="pf-v6-c-nav__link test-nav-item-class"
908
1052
  href="#link1"
909
1053
  >
910
- Link 1
1054
+ <span
1055
+ class="pf-v6-c-nav__link-text"
1056
+ >
1057
+ Link 1
1058
+ </span>
911
1059
  </a>
912
1060
  </li>
913
1061
  <li
@@ -920,7 +1068,11 @@ exports[`Nav Renders nav list in strict mode 1`] = `
920
1068
  class="pf-v6-c-nav__link test-nav-item-class"
921
1069
  href="#link2"
922
1070
  >
923
- Link 2
1071
+ <span
1072
+ class="pf-v6-c-nav__link-text"
1073
+ >
1074
+ Link 2
1075
+ </span>
924
1076
  </a>
925
1077
  </li>
926
1078
  <li
@@ -933,7 +1085,11 @@ exports[`Nav Renders nav list in strict mode 1`] = `
933
1085
  class="pf-v6-c-nav__link test-nav-item-class"
934
1086
  href="#link3"
935
1087
  >
936
- Link 3
1088
+ <span
1089
+ class="pf-v6-c-nav__link-text"
1090
+ >
1091
+ Link 3
1092
+ </span>
937
1093
  </a>
938
1094
  </li>
939
1095
  <li
@@ -946,7 +1102,11 @@ exports[`Nav Renders nav list in strict mode 1`] = `
946
1102
  class="pf-v6-c-nav__link test-nav-item-class"
947
1103
  href="#link4"
948
1104
  >
949
- Link 4
1105
+ <span
1106
+ class="pf-v6-c-nav__link-text"
1107
+ >
1108
+ Link 4
1109
+ </span>
950
1110
  </a>
951
1111
  </li>
952
1112
  </ul>
@@ -9,6 +9,10 @@ ouia: true
9
9
  import './nav.css';
10
10
  import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-icon';
11
11
  import UserIcon from '@patternfly/react-icons/dist/esm/icons/user-icon';
12
+ import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
13
+ import FolderIcon from '@patternfly/react-icons/dist/esm/icons/folder-icon';
14
+ import CloudIcon from '@patternfly/react-icons/dist/esm/icons/cloud-icon';
15
+ import LinkIcon from '@patternfly/react-icons/dist/esm/icons/link-icon';
12
16
 
13
17
  ## Examples
14
18
 
@@ -70,12 +74,13 @@ A flyout should be a `Menu` component. Press `space` or `right arrow` to open a
70
74
 
71
75
  ```
72
76
 
73
- ### Link text
77
+ ### With item icons
74
78
 
75
- ```ts file="./NavLinkText.tsx"
79
+ ```ts file="./NavIcons.tsx"
76
80
 
77
81
  ```
78
82
 
83
+
79
84
  ## Types
80
85
 
81
86
  ### NavSelectClickHandler