@patternfly/react-core 5.2.0-prerelease.9 → 6.0.0-alpha.2

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 (405) hide show
  1. package/CHANGELOG.md +129 -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/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/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/DragDrop/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/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/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/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/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/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/package.json +1 -1
  119. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  120. package/dist/esm/components/CalendarMonth/CalendarMonth.js +15 -39
  121. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  122. package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
  123. package/dist/esm/components/Chip/Chip.js +2 -2
  124. package/dist/esm/components/Chip/Chip.js.map +1 -1
  125. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts +1 -1
  126. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  127. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
  128. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js +2 -2
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
  130. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  131. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  132. package/dist/esm/components/Drawer/DrawerPanelContent.js +4 -4
  133. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  134. package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
  135. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  136. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  137. package/dist/esm/components/ExpandableSection/ExpandableSection.js +1 -1
  138. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  139. package/dist/esm/components/InputGroup/InputGroup.d.ts.map +1 -1
  140. package/dist/esm/components/InputGroup/InputGroup.js +1 -51
  141. package/dist/esm/components/InputGroup/InputGroup.js.map +1 -1
  142. package/dist/esm/components/Masthead/Masthead.d.ts +0 -2
  143. package/dist/esm/components/Masthead/Masthead.d.ts.map +1 -1
  144. package/dist/esm/components/Masthead/Masthead.js +3 -3
  145. package/dist/esm/components/Masthead/Masthead.js.map +1 -1
  146. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  147. package/dist/esm/components/Menu/Menu.js +2 -1
  148. package/dist/esm/components/Menu/Menu.js.map +1 -1
  149. package/dist/esm/components/Menu/MenuContainer.d.ts +2 -0
  150. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  151. package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
  152. package/dist/esm/components/Nav/NavExpandable.d.ts +3 -3
  153. package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
  154. package/dist/esm/components/Nav/NavExpandable.js +2 -2
  155. package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
  156. package/dist/esm/components/Nav/NavItem.d.ts +2 -0
  157. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  158. package/dist/esm/components/Nav/NavItem.js +2 -2
  159. package/dist/esm/components/Nav/NavItem.js.map +1 -1
  160. package/dist/esm/components/Nav/NavList.js +3 -3
  161. package/dist/esm/components/Nav/NavList.js.map +1 -1
  162. package/dist/esm/components/NotificationBadge/NotificationBadge.js +1 -1
  163. package/dist/esm/components/NotificationBadge/NotificationBadge.js.map +1 -1
  164. package/dist/esm/components/Page/PageSection.d.ts +2 -5
  165. package/dist/esm/components/Page/PageSection.d.ts.map +1 -1
  166. package/dist/esm/components/Page/PageSection.js +1 -7
  167. package/dist/esm/components/Page/PageSection.js.map +1 -1
  168. package/dist/esm/components/Page/PageSidebar.d.ts +0 -2
  169. package/dist/esm/components/Page/PageSidebar.d.ts.map +1 -1
  170. package/dist/esm/components/Page/PageSidebar.js +2 -2
  171. package/dist/esm/components/Page/PageSidebar.js.map +1 -1
  172. package/dist/esm/components/SearchInput/SearchInput.d.ts +2 -0
  173. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  174. package/dist/esm/components/SearchInput/SearchInput.js +2 -2
  175. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  176. package/dist/esm/components/Select/Select.d.ts +2 -0
  177. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  178. package/dist/esm/components/Select/Select.js.map +1 -1
  179. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  180. package/dist/esm/components/Slider/Slider.js +2 -1
  181. package/dist/esm/components/Slider/Slider.js.map +1 -1
  182. package/dist/esm/components/Tabs/Tabs.js +3 -3
  183. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  184. package/dist/esm/demos/DashboardWrapper.js +1 -1
  185. package/dist/esm/demos/DashboardWrapper.js.map +1 -1
  186. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.d.ts +0 -2
  187. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.d.ts.map +1 -1
  188. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.js +2 -2
  189. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.js.map +1 -1
  190. package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
  191. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  192. package/dist/esm/helpers/Popper/Popper.js +7 -16
  193. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  194. package/dist/esm/helpers/datetimeUtils.d.ts +1 -1
  195. package/dist/esm/helpers/datetimeUtils.d.ts.map +1 -1
  196. package/dist/esm/helpers/datetimeUtils.js.map +1 -1
  197. package/dist/esm/helpers/util.d.ts +9 -0
  198. package/dist/esm/helpers/util.d.ts.map +1 -1
  199. package/dist/esm/helpers/util.js +18 -0
  200. package/dist/esm/helpers/util.js.map +1 -1
  201. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  202. package/dist/js/components/CalendarMonth/CalendarMonth.js +15 -39
  203. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  204. package/dist/js/components/Chip/Chip.d.ts.map +1 -1
  205. package/dist/js/components/Chip/Chip.js +2 -2
  206. package/dist/js/components/Chip/Chip.js.map +1 -1
  207. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts +1 -1
  208. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  209. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
  210. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js +2 -2
  211. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
  212. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  213. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  214. package/dist/js/components/Drawer/DrawerPanelContent.js +3 -3
  215. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  216. package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
  217. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  218. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  219. package/dist/js/components/ExpandableSection/ExpandableSection.js +1 -1
  220. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  221. package/dist/js/components/InputGroup/InputGroup.d.ts.map +1 -1
  222. package/dist/js/components/InputGroup/InputGroup.js +1 -51
  223. package/dist/js/components/InputGroup/InputGroup.js.map +1 -1
  224. package/dist/js/components/Masthead/Masthead.d.ts +0 -2
  225. package/dist/js/components/Masthead/Masthead.d.ts.map +1 -1
  226. package/dist/js/components/Masthead/Masthead.js +3 -3
  227. package/dist/js/components/Masthead/Masthead.js.map +1 -1
  228. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  229. package/dist/js/components/Menu/Menu.js +2 -1
  230. package/dist/js/components/Menu/Menu.js.map +1 -1
  231. package/dist/js/components/Menu/MenuContainer.d.ts +2 -0
  232. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  233. package/dist/js/components/Menu/MenuContainer.js.map +1 -1
  234. package/dist/js/components/Nav/NavExpandable.d.ts +3 -3
  235. package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
  236. package/dist/js/components/Nav/NavExpandable.js +2 -2
  237. package/dist/js/components/Nav/NavExpandable.js.map +1 -1
  238. package/dist/js/components/Nav/NavItem.d.ts +2 -0
  239. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  240. package/dist/js/components/Nav/NavItem.js +2 -2
  241. package/dist/js/components/Nav/NavItem.js.map +1 -1
  242. package/dist/js/components/Nav/NavList.js +2 -2
  243. package/dist/js/components/Nav/NavList.js.map +1 -1
  244. package/dist/js/components/NotificationBadge/NotificationBadge.js +1 -1
  245. package/dist/js/components/NotificationBadge/NotificationBadge.js.map +1 -1
  246. package/dist/js/components/Page/PageSection.d.ts +2 -5
  247. package/dist/js/components/Page/PageSection.d.ts.map +1 -1
  248. package/dist/js/components/Page/PageSection.js +1 -7
  249. package/dist/js/components/Page/PageSection.js.map +1 -1
  250. package/dist/js/components/Page/PageSidebar.d.ts +0 -2
  251. package/dist/js/components/Page/PageSidebar.d.ts.map +1 -1
  252. package/dist/js/components/Page/PageSidebar.js +2 -2
  253. package/dist/js/components/Page/PageSidebar.js.map +1 -1
  254. package/dist/js/components/SearchInput/SearchInput.d.ts +2 -0
  255. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  256. package/dist/js/components/SearchInput/SearchInput.js +2 -2
  257. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  258. package/dist/js/components/Select/Select.d.ts +2 -0
  259. package/dist/js/components/Select/Select.d.ts.map +1 -1
  260. package/dist/js/components/Select/Select.js.map +1 -1
  261. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  262. package/dist/js/components/Slider/Slider.js +2 -1
  263. package/dist/js/components/Slider/Slider.js.map +1 -1
  264. package/dist/js/components/Tabs/Tabs.js +2 -2
  265. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  266. package/dist/js/demos/DashboardWrapper.js +1 -1
  267. package/dist/js/demos/DashboardWrapper.js.map +1 -1
  268. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsItem.d.ts +0 -2
  269. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsItem.d.ts.map +1 -1
  270. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsItem.js +2 -2
  271. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsItem.js.map +1 -1
  272. package/dist/js/helpers/Popper/Popper.d.ts +2 -1
  273. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  274. package/dist/js/helpers/Popper/Popper.js +9 -19
  275. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  276. package/dist/js/helpers/datetimeUtils.d.ts +1 -1
  277. package/dist/js/helpers/datetimeUtils.d.ts.map +1 -1
  278. package/dist/js/helpers/datetimeUtils.js.map +1 -1
  279. package/dist/js/helpers/util.d.ts +9 -0
  280. package/dist/js/helpers/util.d.ts.map +1 -1
  281. package/dist/js/helpers/util.js +20 -1
  282. package/dist/js/helpers/util.js.map +1 -1
  283. package/dist/styles/assets/images/logo__pf--reverse-on-md.svg +1 -1
  284. package/dist/styles/assets/images/pf-c-brand__logo-on-sm.svg +1 -1
  285. package/dist/styles/base-no-reset.css +849 -0
  286. package/dist/styles/base.css +861 -13
  287. package/dist/umd/react-core.min.js +1 -1
  288. package/helpers/package.json +1 -1
  289. package/layouts/package.json +1 -1
  290. package/next/package.json +1 -1
  291. package/package.json +8 -7
  292. package/src/components/CalendarMonth/CalendarMonth.tsx +18 -43
  293. package/src/components/Checkbox/__tests__/Checkbox.test.tsx +223 -69
  294. package/src/components/Checkbox/__tests__/__snapshots__/Checkbox.test.tsx.snap +3 -198
  295. package/src/components/Chip/Chip.tsx +2 -1
  296. package/src/components/Chip/__tests__/Chip.test.tsx +249 -32
  297. package/src/components/Chip/__tests__/ChipGroup.test.tsx +288 -61
  298. package/src/components/Chip/__tests__/__snapshots__/Chip.test.tsx.snap +9 -209
  299. package/src/components/Chip/__tests__/__snapshots__/ChipGroup.test.tsx.snap +2 -313
  300. package/src/components/ClipboardCopy/ClipboardCopy.tsx +1 -1
  301. package/src/components/ClipboardCopy/ClipboardCopyButton.tsx +2 -0
  302. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +1 -1
  303. package/src/components/ClipboardCopy/__tests__/ClipboardCopy.test.tsx +344 -0
  304. package/src/components/ClipboardCopy/__tests__/ClipboardCopyAction.test.tsx +37 -0
  305. package/src/components/ClipboardCopy/__tests__/ClipboardCopyButton.test.tsx +136 -19
  306. package/src/components/ClipboardCopy/__tests__/ClipboardCopyExpanded.test.tsx +71 -14
  307. package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +78 -34
  308. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopy.test.tsx.snap +57 -0
  309. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyAction.test.tsx.snap +11 -0
  310. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyButton.test.tsx.snap +50 -24
  311. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyExpanded.test.tsx.snap +3 -23
  312. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +5 -6
  313. package/src/components/Drawer/DrawerPanelContent.tsx +4 -4
  314. package/src/components/Dropdown/Dropdown.tsx +2 -0
  315. package/src/components/ExpandableSection/ExpandableSection.tsx +1 -1
  316. package/src/components/InputGroup/InputGroup.tsx +1 -53
  317. package/src/components/InputGroup/__tests__/InputGroup.test.tsx +7 -44
  318. package/src/components/Masthead/Masthead.tsx +0 -5
  319. package/src/components/Masthead/examples/Masthead.md +0 -44
  320. package/src/components/Menu/Menu.tsx +2 -1
  321. package/src/components/Menu/MenuContainer.tsx +2 -0
  322. package/src/components/Nav/NavExpandable.tsx +5 -5
  323. package/src/components/Nav/NavItem.tsx +4 -1
  324. package/src/components/Nav/NavList.tsx +3 -3
  325. package/src/components/Nav/examples/Nav.md +8 -0
  326. package/src/components/Nav/examples/NavExpandableThirdLevel.tsx +1 -1
  327. package/src/components/Nav/examples/NavLinkText.tsx +109 -0
  328. package/src/components/Nav/examples/nav.css +1 -0
  329. package/src/components/NotificationBadge/NotificationBadge.tsx +1 -1
  330. package/src/components/NumberInput/__tests__/NumberInput.test.tsx +0 -1
  331. package/src/components/Page/PageSection.tsx +3 -9
  332. package/src/components/Page/PageSidebar.tsx +0 -4
  333. package/src/components/Page/__tests__/Generated/PageSidebar.test.tsx +1 -1
  334. package/src/components/Page/__tests__/Page.test.tsx +1 -40
  335. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +0 -195
  336. package/src/components/Page/examples/PageGroupSection.tsx +3 -4
  337. package/src/components/Page/examples/PageHorizontalNav.tsx +3 -4
  338. package/src/components/Page/examples/PageMainSectionPadding.tsx +2 -7
  339. package/src/components/Page/examples/PageMultipleSidebarBody.tsx +3 -4
  340. package/src/components/Page/examples/PageTertiaryNav.tsx +3 -4
  341. package/src/components/Page/examples/PageUncontrolledNav.tsx +3 -4
  342. package/src/components/Page/examples/PageVerticalNav.tsx +3 -4
  343. package/src/components/SearchInput/SearchInput.tsx +5 -1
  344. package/src/components/SearchInput/__tests__/SearchInput.test.tsx +8 -0
  345. package/src/components/Select/Select.tsx +2 -0
  346. package/src/components/Slider/Slider.tsx +2 -1
  347. package/src/components/Tabs/Tabs.tsx +3 -3
  348. package/src/demos/Banner.md +2 -4
  349. package/src/demos/CardView/examples/CardView.tsx +2 -8
  350. package/src/demos/DashboardWrapper.tsx +1 -1
  351. package/src/demos/JumpLinks.md +1 -1
  352. package/src/demos/Nav.md +10 -1673
  353. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +2 -3
  354. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +2 -3
  355. package/src/demos/PrimaryDetail.md +4 -7
  356. package/src/demos/Tabs.md +6 -8
  357. package/src/demos/Wizard/WizardDemo.md +6 -761
  358. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +4 -5
  359. package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +1 -2
  360. package/src/demos/examples/DashboardWrapper.js +127 -0
  361. package/src/demos/examples/JumpLinks/JumpLinksWithDrawer.js +3 -4
  362. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +1 -2
  363. package/src/demos/examples/Nav/NavDefault.tsx +97 -0
  364. package/src/demos/examples/Nav/NavDrilldown.tsx +2 -0
  365. package/src/demos/examples/Nav/NavExpandable.tsx +123 -0
  366. package/src/demos/examples/Nav/NavFlyout.tsx +277 -0
  367. package/src/demos/examples/Nav/NavGrouped.tsx +98 -0
  368. package/src/demos/examples/Nav/NavHorizontal.tsx +236 -0
  369. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +296 -0
  370. package/src/demos/examples/Nav/NavManual.tsx +272 -0
  371. package/src/demos/examples/Nav/NavWithSubnav.tsx +141 -0
  372. package/src/demos/examples/Nav/deprecated/NavLight.tsx +95 -0
  373. package/src/demos/examples/Nav/deprecated/NavTertiary.tsx +91 -0
  374. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +1 -2
  375. package/src/demos/examples/Page/PageStickySectionGroup.tsx +1 -2
  376. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +1 -2
  377. package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +1 -2
  378. package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +2 -3
  379. package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +2 -3
  380. package/src/demos/examples/Tabs/ModalTabs.tsx +1 -2
  381. package/src/demos/examples/Tabs/NestedUnindentedTabs.tsx +2 -2
  382. package/src/demos/examples/Tabs/TabsAndTable.tsx +2 -3
  383. package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +1 -2
  384. package/src/demos/examples/Wizard/InModal.tsx +75 -0
  385. package/src/demos/examples/Wizard/InModalWithDrawer.tsx +115 -0
  386. package/src/demos/examples/Wizard/InModalWithDrawerInformationalStep.tsx +122 -0
  387. package/src/demos/examples/Wizard/InPage.tsx +35 -0
  388. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +195 -0
  389. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +200 -0
  390. package/src/deprecated/components/PageHeader/PageHeaderToolsItem.tsx +0 -4
  391. package/src/deprecated/components/PageHeader/examples/PageVerticalNavUsingPageHeaderComponent.tsx +4 -4
  392. package/src/deprecated/components/PageHeader/tests/PageHeaderToolsItem.test.tsx +1 -3
  393. package/src/deprecated/components/PageHeader/tests/__snapshots__/PageHeaderToolsItem.test.tsx.snap +1 -1
  394. package/src/helpers/Popper/Popper.tsx +10 -19
  395. package/src/helpers/__mocks__/util.ts +2 -0
  396. package/src/helpers/datetimeUtils.ts +1 -1
  397. package/src/helpers/util.ts +22 -0
  398. package/dist/styles/assets/images/pf-c-brand__logo-on-lg-white.svg +0 -32
  399. package/dist/styles/assets/images/pf-c-brand__logo-on-md-white.svg +0 -42
  400. package/dist/styles/assets/images/pf-c-brand__logo-on-sm-white.svg +0 -17
  401. package/dist/styles/assets/images/pf-c-brand__logo-on-xl-white.svg +0 -39
  402. package/dist/styles/assets/images/pf_logo_white.hbs +0 -35
  403. package/dist/styles/assets/images/pf_logo_white.svg +0 -38
  404. package/src/components/ClipboardCopy/__tests__/Generated/ClipboardCopy.test.tsx +0 -40
  405. package/src/components/ClipboardCopy/__tests__/Generated/__snapshots__/ClipboardCopy.test.tsx.snap +0 -55
@@ -0,0 +1,296 @@
1
+ import React from 'react';
2
+ import {
3
+ Avatar,
4
+ Brand,
5
+ Button,
6
+ ButtonVariant,
7
+ Card,
8
+ CardBody,
9
+ Divider,
10
+ Dropdown,
11
+ DropdownGroup,
12
+ DropdownItem,
13
+ DropdownList,
14
+ Gallery,
15
+ GalleryItem,
16
+ MenuToggle,
17
+ Masthead,
18
+ MastheadBrand,
19
+ MastheadContent,
20
+ MastheadMain,
21
+ MastheadToggle,
22
+ Nav,
23
+ NavItem,
24
+ NavList,
25
+ Page,
26
+ PageSection,
27
+ PageSectionTypes,
28
+ PageToggleButton,
29
+ SkipToContent,
30
+ TextContent,
31
+ Text,
32
+ Toolbar,
33
+ ToolbarContent,
34
+ ToolbarGroup,
35
+ ToolbarItem
36
+ } from '@patternfly/react-core';
37
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
38
+ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
39
+ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
40
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
41
+ import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
42
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
43
+ import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
44
+ import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.svg';
45
+ import { DashboardBreadcrumb } from '@patternfly/react-core/src/demos/DashboardWrapper';
46
+
47
+ export const NavHorizontalWithSubnav: React.FunctionComponent = () => {
48
+ const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);
49
+ const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false);
50
+ const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = React.useState(false);
51
+ const [activeItem, setActiveItem] = React.useState<string | number>(0);
52
+ const [activeSubNavItem, setActiveSubNavItem] = React.useState<string | number>(7);
53
+
54
+ const onNavSelect = (
55
+ _event: React.FormEvent<HTMLInputElement>,
56
+ selectedItem: {
57
+ groupId: number | string;
58
+ itemId: number | string;
59
+ to: string;
60
+ }
61
+ ) => setActiveItem(selectedItem.itemId);
62
+
63
+ const onSubNavSelect = (
64
+ _event: React.FormEvent<HTMLInputElement>,
65
+ selectedItem: {
66
+ groupId: number | string;
67
+ itemId: number | string;
68
+ to: string;
69
+ }
70
+ ) => setActiveSubNavItem(selectedItem.itemId);
71
+
72
+ const onDropdownToggle = () => setIsDropdownOpen((prevState) => !prevState);
73
+ const onDropdownSelect = () => setIsDropdownOpen(false);
74
+ const onKebabDropdownToggle = () => setIsKebabDropdownOpen((prevState) => !prevState);
75
+ const onKebabDropdownSelect = () => setIsKebabDropdownOpen(false);
76
+ const onFullKebabToggle = () => setIsFullKebabDropdownOpen((prevState) => !prevState);
77
+ const onFullKebabSelect = () => setIsFullKebabDropdownOpen(false);
78
+
79
+ const PageNav = (
80
+ <Nav onSelect={onNavSelect} aria-label="Nav" variant="horizontal">
81
+ <NavList>
82
+ {/* Preventing default click behavior on each NavItem for demo purposes only */}
83
+ <NavItem preventDefault itemId={0} isActive={activeItem === 0} to="#">
84
+ System Panel
85
+ </NavItem>
86
+ <NavItem preventDefault itemId={1} isActive={activeItem === 1} to="#">
87
+ Policy
88
+ </NavItem>
89
+ <NavItem preventDefault itemId={2} isActive={activeItem === 2} to="#">
90
+ Authentication
91
+ </NavItem>
92
+ <NavItem preventDefault itemId={3} isActive={activeItem === 3} to="#">
93
+ Network Services
94
+ </NavItem>
95
+ <NavItem preventDefault itemId={4} isActive={activeItem === 4} to="#">
96
+ Server
97
+ </NavItem>
98
+ <NavItem preventDefault itemId={5} isActive={activeItem === 5} to="#">
99
+ Other horizontal nav item 1
100
+ </NavItem>
101
+ <NavItem preventDefault itemId={6} isActive={activeItem === 6} to="#">
102
+ Other horizontal nav item 2
103
+ </NavItem>
104
+ </NavList>
105
+ </Nav>
106
+ );
107
+ const kebabDropdownItems = (
108
+ <>
109
+ <DropdownItem>
110
+ <CogIcon /> Settings
111
+ </DropdownItem>
112
+ <DropdownItem>
113
+ <HelpIcon /> Help
114
+ </DropdownItem>
115
+ </>
116
+ );
117
+ const userDropdownItems = (
118
+ <>
119
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
120
+ <DropdownItem key="group 2 user">User management</DropdownItem>
121
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
122
+ </>
123
+ );
124
+
125
+ const SubNav = (
126
+ <Nav onSelect={onSubNavSelect} aria-label="Subnav" variant="horizontal-subnav">
127
+ <NavList>
128
+ {/* Preventing default click behavior on each NavItem for demo purposes only */}
129
+ <NavItem preventDefault itemId={7} isActive={activeSubNavItem === 7} to="#">
130
+ Horizontal subnav item 1
131
+ </NavItem>
132
+ <NavItem preventDefault itemId={8} isActive={activeSubNavItem === 8} to="#">
133
+ Horizontal subnav item 2
134
+ </NavItem>
135
+ <NavItem preventDefault itemId={9} isActive={activeSubNavItem === 9} to="#">
136
+ Horizontal subnav item 3
137
+ </NavItem>
138
+ <NavItem preventDefault itemId={10} isActive={activeSubNavItem === 10} to="#">
139
+ Horizontal subnav item 4
140
+ </NavItem>
141
+ <NavItem preventDefault itemId={11} isActive={activeSubNavItem === 11} to="#">
142
+ Horizontal subnav item 5
143
+ </NavItem>
144
+ <NavItem preventDefault itemId={12} isActive={activeSubNavItem === 12} to="#">
145
+ Horizontal subnav item 6
146
+ </NavItem>
147
+ <NavItem preventDefault itemId={13} isActive={activeSubNavItem === 13} to="#">
148
+ Horizontal subnav item 7
149
+ </NavItem>
150
+ </NavList>
151
+ </Nav>
152
+ );
153
+
154
+ const headerToolbar = (
155
+ <Toolbar id="toolbar" isFullHeight isStatic>
156
+ <ToolbarContent>
157
+ <ToolbarItem isOverflowContainer>{PageNav}</ToolbarItem>
158
+ <ToolbarGroup
159
+ variant="icon-button-group"
160
+ align={{ default: 'alignRight' }}
161
+ spacer={{ default: 'spacerNone', md: 'spacerMd' }}
162
+ >
163
+ <ToolbarItem>
164
+ <Button aria-label="Notifications" variant={ButtonVariant.plain} icon={<BellIcon />} onClick={() => {}} />
165
+ </ToolbarItem>
166
+ <ToolbarGroup variant="icon-button-group" visibility={{ default: 'hidden', lg: 'visible' }}>
167
+ <ToolbarItem>
168
+ <Button aria-label="Settings" variant={ButtonVariant.plain} icon={<CogIcon />} />
169
+ </ToolbarItem>
170
+ <ToolbarItem>
171
+ <Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
172
+ </ToolbarItem>
173
+ </ToolbarGroup>
174
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
175
+ <Dropdown
176
+ isOpen={isKebabDropdownOpen}
177
+ onSelect={onKebabDropdownSelect}
178
+ onOpenChange={setIsKebabDropdownOpen}
179
+ popperProps={{ position: 'right' }}
180
+ toggle={(toggleRef) => (
181
+ <MenuToggle
182
+ ref={toggleRef}
183
+ isExpanded={isKebabDropdownOpen}
184
+ onClick={onKebabDropdownToggle}
185
+ variant="plain"
186
+ aria-label="Settings and help"
187
+ >
188
+ <EllipsisVIcon aria-hidden="true" />
189
+ </MenuToggle>
190
+ )}
191
+ >
192
+ <DropdownList>{kebabDropdownItems}</DropdownList>
193
+ </Dropdown>
194
+ </ToolbarItem>
195
+ <ToolbarItem visibility={{ md: 'hidden' }}>
196
+ <Dropdown
197
+ isOpen={isFullKebabDropdownOpen}
198
+ onSelect={onFullKebabSelect}
199
+ onOpenChange={setIsFullKebabDropdownOpen}
200
+ popperProps={{ position: 'right' }}
201
+ toggle={(toggleRef) => (
202
+ <MenuToggle
203
+ ref={toggleRef}
204
+ isExpanded={isFullKebabDropdownOpen}
205
+ onClick={onFullKebabToggle}
206
+ variant="plain"
207
+ aria-label="Toolbar menu"
208
+ >
209
+ <EllipsisVIcon aria-hidden="true" />
210
+ </MenuToggle>
211
+ )}
212
+ >
213
+ <DropdownGroup key="group 2" aria-label="User actions">
214
+ <DropdownList>{userDropdownItems}</DropdownList>
215
+ </DropdownGroup>
216
+ <Divider />
217
+ <DropdownList>{kebabDropdownItems}</DropdownList>
218
+ </Dropdown>
219
+ </ToolbarItem>
220
+ </ToolbarGroup>
221
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
222
+ <Dropdown
223
+ isOpen={isDropdownOpen}
224
+ onSelect={onDropdownSelect}
225
+ onOpenChange={setIsDropdownOpen}
226
+ popperProps={{ position: 'right' }}
227
+ toggle={(toggleRef) => (
228
+ <MenuToggle
229
+ ref={toggleRef}
230
+ isExpanded={isDropdownOpen}
231
+ onClick={onDropdownToggle}
232
+ icon={<Avatar src={imgAvatar} alt="" />}
233
+ isFullHeight
234
+ >
235
+ Ned Username
236
+ </MenuToggle>
237
+ )}
238
+ >
239
+ <DropdownList>{userDropdownItems}</DropdownList>
240
+ </Dropdown>
241
+ </ToolbarItem>
242
+ </ToolbarContent>
243
+ </Toolbar>
244
+ );
245
+ const Header = (
246
+ <Masthead>
247
+ <MastheadToggle>
248
+ <PageToggleButton variant="plain" aria-label="Global navigation">
249
+ <BarsIcon />
250
+ </PageToggleButton>
251
+ </MastheadToggle>
252
+ <MastheadMain>
253
+ <MastheadBrand>
254
+ <Brand src={pfLogo} alt="PatternFly" heights={{ default: '36px' }} />
255
+ </MastheadBrand>
256
+ </MastheadMain>
257
+ <MastheadContent>{headerToolbar}</MastheadContent>
258
+ </Masthead>
259
+ );
260
+
261
+ const pageId = 'main-content-page-layout-horizontal-nav';
262
+ const PageSkipToContent = <SkipToContent href={`#${pageId}`}>Skip to content</SkipToContent>;
263
+
264
+ return (
265
+ <React.Fragment>
266
+ <Page header={Header} skipToContent={PageSkipToContent} mainContainerId={pageId}>
267
+ <PageSection type={PageSectionTypes.subNav} isWidthLimited>
268
+ {SubNav}
269
+ </PageSection>
270
+ <PageSection type={PageSectionTypes.breadcrumb} isWidthLimited>
271
+ {DashboardBreadcrumb}
272
+ </PageSection>
273
+ <PageSection>
274
+ <TextContent>
275
+ <Text component="h1">Main title</Text>
276
+ <Text component="p">
277
+ Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
278
+ of it’s relative line height of 1.5.
279
+ </Text>
280
+ </TextContent>
281
+ </PageSection>
282
+ <PageSection>
283
+ <Gallery hasGutter>
284
+ {Array.from({ length: 10 }, (_value: any, index: React.Key) => (
285
+ <GalleryItem key={index}>
286
+ <Card>
287
+ <CardBody>This is a card</CardBody>
288
+ </Card>
289
+ </GalleryItem>
290
+ ))}
291
+ </Gallery>
292
+ </PageSection>
293
+ </Page>
294
+ </React.Fragment>
295
+ );
296
+ };
@@ -0,0 +1,272 @@
1
+ import React from 'react';
2
+ import {
3
+ Avatar,
4
+ Brand,
5
+ Button,
6
+ ButtonVariant,
7
+ Card,
8
+ CardBody,
9
+ Divider,
10
+ Dropdown,
11
+ DropdownGroup,
12
+ DropdownItem,
13
+ DropdownList,
14
+ Gallery,
15
+ GalleryItem,
16
+ Masthead,
17
+ MastheadBrand,
18
+ MastheadContent,
19
+ MastheadMain,
20
+ MastheadToggle,
21
+ MenuToggle,
22
+ Nav,
23
+ NavItem,
24
+ NavList,
25
+ Page,
26
+ PageSection,
27
+ PageSidebar,
28
+ PageSidebarBody,
29
+ PageToggleButton,
30
+ SkipToContent,
31
+ TextContent,
32
+ Text,
33
+ Toolbar,
34
+ ToolbarContent,
35
+ ToolbarGroup,
36
+ ToolbarItem
37
+ } from '@patternfly/react-core';
38
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
39
+ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
40
+ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
41
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
42
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
43
+ import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
44
+ import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
45
+ import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.svg';
46
+
47
+ export const NavManual: React.FunctionComponent = () => {
48
+ const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);
49
+ const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false);
50
+ const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = React.useState(false);
51
+ const [isMobileView, setIsMobileView] = React.useState(false);
52
+ const [isSidebarOpenDesktop, setIsSidebarOpenDesktop] = React.useState(true);
53
+ const [isSidebarOpenMobile, setIsSidebarOpenMobile] = React.useState(false);
54
+ const [activeItem, setActiveItem] = React.useState<string | number>(0);
55
+
56
+ const onNavSelect = (
57
+ _event: React.FormEvent<HTMLInputElement>,
58
+ selectedItem: {
59
+ groupId: number | string;
60
+ itemId: number | string;
61
+ to: string;
62
+ }
63
+ ) => setActiveItem(selectedItem.itemId);
64
+
65
+ const onDropdownToggle = () => setIsDropdownOpen((prevState) => !prevState);
66
+ const onDropdownSelect = () => setIsDropdownOpen(false);
67
+ const onKebabDropdownToggle = () => setIsKebabDropdownOpen((prevState) => !prevState);
68
+ const onKebabDropdownSelect = () => setIsKebabDropdownOpen(false);
69
+ const onFullKebabToggle = () => setIsFullKebabDropdownOpen((prevState) => !prevState);
70
+ const onFullKebabSelect = () => setIsFullKebabDropdownOpen(false);
71
+ const onSidebarToggleDesktop = () => setIsSidebarOpenDesktop((prevState) => !prevState);
72
+ const onSidebarToggleMobile = () => setIsSidebarOpenMobile((prevState) => !prevState);
73
+
74
+ interface PageOptions {
75
+ mobileView: boolean;
76
+ windowSize: number;
77
+ }
78
+
79
+ const onPageResize = (_event: MouseEvent | TouchEvent | React.KeyboardEvent, { mobileView }: PageOptions) =>
80
+ setIsMobileView(mobileView);
81
+
82
+ const PageNav = (
83
+ <Nav onSelect={onNavSelect} aria-label="Nav">
84
+ <NavList>
85
+ {/* Preventing default click behavior on each NavItem for demo purposes only */}
86
+ <NavItem preventDefault itemId={0} isActive={activeItem === 0} to="#">
87
+ System Panel
88
+ </NavItem>
89
+ <NavItem preventDefault itemId={1} isActive={activeItem === 1} to="#">
90
+ Policy
91
+ </NavItem>
92
+ <NavItem preventDefault itemId={2} isActive={activeItem === 2} to="#">
93
+ Authentication
94
+ </NavItem>
95
+ <NavItem preventDefault itemId={3} isActive={activeItem === 3} to="#">
96
+ Network Services
97
+ </NavItem>
98
+ <NavItem preventDefault itemId={4} isActive={activeItem === 4} to="#">
99
+ Server
100
+ </NavItem>
101
+ </NavList>
102
+ </Nav>
103
+ );
104
+ const kebabDropdownItems = (
105
+ <>
106
+ <DropdownItem>
107
+ <CogIcon /> Settings
108
+ </DropdownItem>
109
+ <DropdownItem>
110
+ <HelpIcon /> Help
111
+ </DropdownItem>
112
+ </>
113
+ );
114
+ const userDropdownItems = (
115
+ <>
116
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
117
+ <DropdownItem key="group 2 user">User management</DropdownItem>
118
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
119
+ </>
120
+ );
121
+
122
+ const headerToolbar = (
123
+ <Toolbar id="toolbar" isFullHeight isStatic>
124
+ <ToolbarContent>
125
+ <ToolbarGroup
126
+ variant="icon-button-group"
127
+ align={{ default: 'alignRight' }}
128
+ spacer={{ default: 'spacerNone', md: 'spacerMd' }}
129
+ >
130
+ <ToolbarItem>
131
+ <Button aria-label="Notifications" variant={ButtonVariant.plain} icon={<BellIcon />} onClick={() => {}} />
132
+ </ToolbarItem>
133
+ <ToolbarGroup variant="icon-button-group" visibility={{ default: 'hidden', lg: 'visible' }}>
134
+ <ToolbarItem>
135
+ <Button aria-label="Settings" variant={ButtonVariant.plain} icon={<CogIcon />} />
136
+ </ToolbarItem>
137
+ <ToolbarItem>
138
+ <Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
139
+ </ToolbarItem>
140
+ </ToolbarGroup>
141
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
142
+ <Dropdown
143
+ isOpen={isKebabDropdownOpen}
144
+ onSelect={onKebabDropdownSelect}
145
+ onOpenChange={setIsKebabDropdownOpen}
146
+ popperProps={{ position: 'right' }}
147
+ toggle={(toggleRef) => (
148
+ <MenuToggle
149
+ ref={toggleRef}
150
+ isExpanded={isKebabDropdownOpen}
151
+ onClick={onKebabDropdownToggle}
152
+ variant="plain"
153
+ aria-label="Settings and help"
154
+ >
155
+ <EllipsisVIcon aria-hidden="true" />
156
+ </MenuToggle>
157
+ )}
158
+ >
159
+ <DropdownList>{kebabDropdownItems}</DropdownList>
160
+ </Dropdown>
161
+ </ToolbarItem>
162
+ <ToolbarItem visibility={{ md: 'hidden' }}>
163
+ <Dropdown
164
+ isOpen={isFullKebabDropdownOpen}
165
+ onSelect={onFullKebabSelect}
166
+ onOpenChange={setIsFullKebabDropdownOpen}
167
+ popperProps={{ position: 'right' }}
168
+ toggle={(toggleRef) => (
169
+ <MenuToggle
170
+ ref={toggleRef}
171
+ isExpanded={isFullKebabDropdownOpen}
172
+ onClick={onFullKebabToggle}
173
+ variant="plain"
174
+ aria-label="Toolbar menu"
175
+ >
176
+ <EllipsisVIcon aria-hidden="true" />
177
+ </MenuToggle>
178
+ )}
179
+ >
180
+ <DropdownGroup key="group 2" aria-label="User actions">
181
+ <DropdownList>{userDropdownItems}</DropdownList>
182
+ </DropdownGroup>
183
+ <Divider />
184
+ <DropdownList>{kebabDropdownItems}</DropdownList>
185
+ </Dropdown>
186
+ </ToolbarItem>
187
+ </ToolbarGroup>
188
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
189
+ <Dropdown
190
+ isOpen={isDropdownOpen}
191
+ onSelect={onDropdownSelect}
192
+ onOpenChange={setIsDropdownOpen}
193
+ popperProps={{ position: 'right' }}
194
+ toggle={(toggleRef) => (
195
+ <MenuToggle
196
+ ref={toggleRef}
197
+ isExpanded={isDropdownOpen}
198
+ onClick={onDropdownToggle}
199
+ icon={<Avatar src={imgAvatar} alt="" />}
200
+ isFullHeight
201
+ >
202
+ Ned Username
203
+ </MenuToggle>
204
+ )}
205
+ >
206
+ <DropdownList>{userDropdownItems}</DropdownList>
207
+ </Dropdown>
208
+ </ToolbarItem>
209
+ </ToolbarContent>
210
+ </Toolbar>
211
+ );
212
+ const Header = (
213
+ <Masthead>
214
+ <MastheadToggle>
215
+ <PageToggleButton
216
+ onSidebarToggle={isMobileView ? onSidebarToggleMobile : onSidebarToggleDesktop}
217
+ variant="plain"
218
+ aria-label="Global navigation"
219
+ >
220
+ <BarsIcon />
221
+ </PageToggleButton>
222
+ </MastheadToggle>
223
+ <MastheadMain>
224
+ <MastheadBrand>
225
+ <Brand src={pfLogo} alt="PatternFly" heights={{ default: '36px' }} />
226
+ </MastheadBrand>
227
+ </MastheadMain>
228
+ <MastheadContent>{headerToolbar}</MastheadContent>
229
+ </Masthead>
230
+ );
231
+
232
+ const Sidebar = (
233
+ <PageSidebar isSidebarOpen={isMobileView ? isSidebarOpenMobile : isSidebarOpenDesktop}>
234
+ <PageSidebarBody>{PageNav}</PageSidebarBody>
235
+ </PageSidebar>
236
+ );
237
+ const pageId = 'main-content-page-layout-manual-nav';
238
+ const PageSkipToContent = <SkipToContent href={`#${pageId}`}>Skip to Content</SkipToContent>;
239
+
240
+ return (
241
+ <React.Fragment>
242
+ <Page
243
+ header={Header}
244
+ sidebar={Sidebar}
245
+ onPageResize={onPageResize}
246
+ skipToContent={PageSkipToContent}
247
+ mainContainerId={pageId}
248
+ >
249
+ <PageSection>
250
+ <TextContent>
251
+ <Text component="h1">Main title</Text>
252
+ <Text component="p">
253
+ Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
254
+ of its relative line height of 1.5.
255
+ </Text>
256
+ </TextContent>
257
+ </PageSection>
258
+ <PageSection>
259
+ <Gallery hasGutter>
260
+ {Array.from({ length: 10 }, (_value: any, index: React.Key) => (
261
+ <GalleryItem key={index}>
262
+ <Card>
263
+ <CardBody>This is a card</CardBody>
264
+ </Card>
265
+ </GalleryItem>
266
+ ))}
267
+ </Gallery>
268
+ </PageSection>
269
+ </Page>
270
+ </React.Fragment>
271
+ );
272
+ };