@patternfly/react-core 4.243.0 → 4.244.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/components/Alert/Alert.d.ts +41 -34
  3. package/dist/esm/components/Alert/Alert.d.ts.map +1 -1
  4. package/dist/esm/components/Alert/Alert.js.map +1 -1
  5. package/dist/esm/components/Alert/AlertActionCloseButton.d.ts +8 -5
  6. package/dist/esm/components/Alert/AlertActionCloseButton.d.ts.map +1 -1
  7. package/dist/esm/components/Alert/AlertActionCloseButton.js.map +1 -1
  8. package/dist/esm/components/Alert/AlertActionLink.d.ts +5 -2
  9. package/dist/esm/components/Alert/AlertActionLink.d.ts.map +1 -1
  10. package/dist/esm/components/Alert/AlertActionLink.js.map +1 -1
  11. package/dist/esm/components/Alert/AlertIcon.d.ts +4 -4
  12. package/dist/esm/components/Alert/AlertIcon.d.ts.map +1 -1
  13. package/dist/esm/components/Alert/AlertToggleExpandButton.d.ts +5 -5
  14. package/dist/esm/components/Alert/AlertToggleExpandButton.d.ts.map +1 -1
  15. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts +34 -28
  16. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  17. package/dist/esm/components/CalendarMonth/CalendarMonth.js +1 -0
  18. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  19. package/dist/esm/components/DatePicker/DatePicker.d.ts +43 -36
  20. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  21. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  22. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +34 -24
  23. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  24. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  25. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +10 -5
  26. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  27. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  28. package/dist/esm/components/FileUpload/FileUpload.d.ts +53 -47
  29. package/dist/esm/components/FileUpload/FileUpload.d.ts.map +1 -1
  30. package/dist/esm/components/FileUpload/FileUpload.js.map +1 -1
  31. package/dist/esm/components/FileUpload/FileUploadField.d.ts +51 -46
  32. package/dist/esm/components/FileUpload/FileUploadField.d.ts.map +1 -1
  33. package/dist/esm/components/FileUpload/FileUploadField.js.map +1 -1
  34. package/dist/esm/components/Modal/Modal.d.ts +57 -48
  35. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  36. package/dist/esm/components/Modal/Modal.js.map +1 -1
  37. package/dist/esm/components/Modal/ModalBox.d.ts +12 -12
  38. package/dist/esm/components/Modal/ModalBox.d.ts.map +1 -1
  39. package/dist/esm/components/Modal/ModalBoxBody.d.ts +2 -2
  40. package/dist/esm/components/Modal/ModalBoxBody.d.ts.map +1 -1
  41. package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts +2 -2
  42. package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
  43. package/dist/esm/components/Modal/ModalBoxDescription.d.ts +3 -3
  44. package/dist/esm/components/Modal/ModalBoxDescription.d.ts.map +1 -1
  45. package/dist/esm/components/Modal/ModalBoxFooter.d.ts +2 -2
  46. package/dist/esm/components/Modal/ModalBoxFooter.d.ts.map +1 -1
  47. package/dist/esm/components/Modal/ModalBoxHeader.d.ts +3 -3
  48. package/dist/esm/components/Modal/ModalBoxHeader.d.ts.map +1 -1
  49. package/dist/esm/components/Modal/ModalBoxTitle.d.ts +8 -9
  50. package/dist/esm/components/Modal/ModalBoxTitle.d.ts.map +1 -1
  51. package/dist/esm/components/Modal/ModalBoxTitle.js.map +1 -1
  52. package/dist/esm/components/Modal/ModalContent.d.ts +56 -48
  53. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  54. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  55. package/dist/esm/components/NotificationBadge/NotificationBadge.d.ts +17 -13
  56. package/dist/esm/components/NotificationBadge/NotificationBadge.d.ts.map +1 -1
  57. package/dist/esm/components/NotificationBadge/NotificationBadge.js +3 -3
  58. package/dist/esm/components/NotificationBadge/NotificationBadge.js.map +1 -1
  59. package/dist/esm/components/Pagination/Navigation.d.ts +33 -33
  60. package/dist/esm/components/Pagination/Navigation.d.ts.map +1 -1
  61. package/dist/esm/components/Pagination/OptionsToggle.d.ts +27 -26
  62. package/dist/esm/components/Pagination/OptionsToggle.d.ts.map +1 -1
  63. package/dist/esm/components/Pagination/OptionsToggle.js.map +1 -1
  64. package/dist/esm/components/Pagination/Pagination.d.ts +76 -65
  65. package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
  66. package/dist/esm/components/Pagination/Pagination.js +1 -1
  67. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  68. package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts +22 -18
  69. package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
  70. package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
  71. package/dist/esm/components/Pagination/ToggleTemplate.d.ts +3 -0
  72. package/dist/esm/components/Pagination/ToggleTemplate.d.ts.map +1 -1
  73. package/dist/esm/components/Pagination/ToggleTemplate.js.map +1 -1
  74. package/dist/esm/components/Popover/Popover.d.ts +88 -73
  75. package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
  76. package/dist/esm/components/Popover/Popover.js.map +1 -1
  77. package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts +27 -26
  78. package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  79. package/dist/esm/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  80. package/dist/esm/components/SearchInput/SearchInput.d.ts +71 -60
  81. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  82. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  83. package/dist/esm/components/Slider/Slider.d.ts +45 -39
  84. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  85. package/dist/esm/components/Slider/Slider.js.map +1 -1
  86. package/dist/esm/components/Slider/SliderStep.d.ts +10 -10
  87. package/dist/esm/components/Slider/SliderStep.d.ts.map +1 -1
  88. package/dist/esm/components/TreeView/TreeView.d.ts +65 -53
  89. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  90. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  91. package/dist/esm/components/TreeView/TreeViewList.d.ts +4 -4
  92. package/dist/esm/components/TreeView/TreeViewList.d.ts.map +1 -1
  93. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +46 -39
  94. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  95. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  96. package/dist/esm/components/TreeView/TreeViewRoot.d.ts +4 -4
  97. package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  98. package/dist/esm/components/TreeView/TreeViewSearch.d.ts +11 -8
  99. package/dist/esm/components/TreeView/TreeViewSearch.d.ts.map +1 -1
  100. package/dist/esm/components/TreeView/TreeViewSearch.js.map +1 -1
  101. package/dist/esm/helpers/Popper/Popper.js +8 -8
  102. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  103. package/dist/js/components/Alert/Alert.d.ts +41 -34
  104. package/dist/js/components/Alert/Alert.d.ts.map +1 -1
  105. package/dist/js/components/Alert/Alert.js.map +1 -1
  106. package/dist/js/components/Alert/AlertActionCloseButton.d.ts +8 -5
  107. package/dist/js/components/Alert/AlertActionCloseButton.d.ts.map +1 -1
  108. package/dist/js/components/Alert/AlertActionCloseButton.js.map +1 -1
  109. package/dist/js/components/Alert/AlertActionLink.d.ts +5 -2
  110. package/dist/js/components/Alert/AlertActionLink.d.ts.map +1 -1
  111. package/dist/js/components/Alert/AlertActionLink.js.map +1 -1
  112. package/dist/js/components/Alert/AlertIcon.d.ts +4 -4
  113. package/dist/js/components/Alert/AlertIcon.d.ts.map +1 -1
  114. package/dist/js/components/Alert/AlertToggleExpandButton.d.ts +5 -5
  115. package/dist/js/components/Alert/AlertToggleExpandButton.d.ts.map +1 -1
  116. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts +34 -28
  117. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  118. package/dist/js/components/CalendarMonth/CalendarMonth.js +1 -0
  119. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  120. package/dist/js/components/DatePicker/DatePicker.d.ts +43 -36
  121. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  122. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  123. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +34 -24
  124. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  125. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  126. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +10 -5
  127. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  128. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  129. package/dist/js/components/FileUpload/FileUpload.d.ts +53 -47
  130. package/dist/js/components/FileUpload/FileUpload.d.ts.map +1 -1
  131. package/dist/js/components/FileUpload/FileUpload.js.map +1 -1
  132. package/dist/js/components/FileUpload/FileUploadField.d.ts +51 -46
  133. package/dist/js/components/FileUpload/FileUploadField.d.ts.map +1 -1
  134. package/dist/js/components/FileUpload/FileUploadField.js.map +1 -1
  135. package/dist/js/components/Modal/Modal.d.ts +57 -48
  136. package/dist/js/components/Modal/Modal.d.ts.map +1 -1
  137. package/dist/js/components/Modal/Modal.js.map +1 -1
  138. package/dist/js/components/Modal/ModalBox.d.ts +12 -12
  139. package/dist/js/components/Modal/ModalBox.d.ts.map +1 -1
  140. package/dist/js/components/Modal/ModalBoxBody.d.ts +2 -2
  141. package/dist/js/components/Modal/ModalBoxBody.d.ts.map +1 -1
  142. package/dist/js/components/Modal/ModalBoxCloseButton.d.ts +2 -2
  143. package/dist/js/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
  144. package/dist/js/components/Modal/ModalBoxDescription.d.ts +3 -3
  145. package/dist/js/components/Modal/ModalBoxDescription.d.ts.map +1 -1
  146. package/dist/js/components/Modal/ModalBoxFooter.d.ts +2 -2
  147. package/dist/js/components/Modal/ModalBoxFooter.d.ts.map +1 -1
  148. package/dist/js/components/Modal/ModalBoxHeader.d.ts +3 -3
  149. package/dist/js/components/Modal/ModalBoxHeader.d.ts.map +1 -1
  150. package/dist/js/components/Modal/ModalBoxTitle.d.ts +8 -9
  151. package/dist/js/components/Modal/ModalBoxTitle.d.ts.map +1 -1
  152. package/dist/js/components/Modal/ModalBoxTitle.js.map +1 -1
  153. package/dist/js/components/Modal/ModalContent.d.ts +56 -48
  154. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  155. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  156. package/dist/js/components/NotificationBadge/NotificationBadge.d.ts +17 -13
  157. package/dist/js/components/NotificationBadge/NotificationBadge.d.ts.map +1 -1
  158. package/dist/js/components/NotificationBadge/NotificationBadge.js +3 -3
  159. package/dist/js/components/NotificationBadge/NotificationBadge.js.map +1 -1
  160. package/dist/js/components/Pagination/Navigation.d.ts +33 -33
  161. package/dist/js/components/Pagination/Navigation.d.ts.map +1 -1
  162. package/dist/js/components/Pagination/OptionsToggle.d.ts +27 -26
  163. package/dist/js/components/Pagination/OptionsToggle.d.ts.map +1 -1
  164. package/dist/js/components/Pagination/OptionsToggle.js.map +1 -1
  165. package/dist/js/components/Pagination/Pagination.d.ts +76 -65
  166. package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
  167. package/dist/js/components/Pagination/Pagination.js +1 -1
  168. package/dist/js/components/Pagination/Pagination.js.map +1 -1
  169. package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts +22 -18
  170. package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
  171. package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
  172. package/dist/js/components/Pagination/ToggleTemplate.d.ts +3 -0
  173. package/dist/js/components/Pagination/ToggleTemplate.d.ts.map +1 -1
  174. package/dist/js/components/Pagination/ToggleTemplate.js.map +1 -1
  175. package/dist/js/components/Popover/Popover.d.ts +88 -73
  176. package/dist/js/components/Popover/Popover.d.ts.map +1 -1
  177. package/dist/js/components/Popover/Popover.js.map +1 -1
  178. package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts +27 -26
  179. package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  180. package/dist/js/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  181. package/dist/js/components/SearchInput/SearchInput.d.ts +71 -60
  182. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  183. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  184. package/dist/js/components/Slider/Slider.d.ts +45 -39
  185. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  186. package/dist/js/components/Slider/Slider.js.map +1 -1
  187. package/dist/js/components/Slider/SliderStep.d.ts +10 -10
  188. package/dist/js/components/Slider/SliderStep.d.ts.map +1 -1
  189. package/dist/js/components/TreeView/TreeView.d.ts +65 -53
  190. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  191. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  192. package/dist/js/components/TreeView/TreeViewList.d.ts +4 -4
  193. package/dist/js/components/TreeView/TreeViewList.d.ts.map +1 -1
  194. package/dist/js/components/TreeView/TreeViewListItem.d.ts +46 -39
  195. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  196. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  197. package/dist/js/components/TreeView/TreeViewRoot.d.ts +4 -4
  198. package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  199. package/dist/js/components/TreeView/TreeViewSearch.d.ts +11 -8
  200. package/dist/js/components/TreeView/TreeViewSearch.d.ts.map +1 -1
  201. package/dist/js/components/TreeView/TreeViewSearch.js.map +1 -1
  202. package/dist/js/helpers/Popper/Popper.js +8 -8
  203. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  204. package/dist/umd/react-core.min.css +3498 -3498
  205. package/dist/umd/react-core.min.js +2 -2
  206. package/package.json +2 -2
  207. package/src/components/Alert/Alert.tsx +42 -34
  208. package/src/components/Alert/AlertActionCloseButton.tsx +9 -5
  209. package/src/components/Alert/AlertActionLink.tsx +6 -2
  210. package/src/components/Alert/AlertIcon.tsx +4 -4
  211. package/src/components/Alert/AlertToggleExpandButton.tsx +5 -5
  212. package/src/components/Badge/__tests__/Badge.test.tsx +45 -8
  213. package/src/components/Badge/__tests__/__snapshots__/Badge.test.tsx.snap +2 -12
  214. package/src/components/CalendarMonth/CalendarMonth.tsx +36 -28
  215. package/src/components/DatePicker/DatePicker.tsx +45 -36
  216. package/src/components/ExpandableSection/ExpandableSection.tsx +35 -24
  217. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +11 -5
  218. package/src/components/FileUpload/FileUpload.tsx +56 -49
  219. package/src/components/FileUpload/FileUploadField.tsx +56 -50
  220. package/src/components/Modal/Modal.tsx +57 -48
  221. package/src/components/Modal/ModalBox.tsx +12 -12
  222. package/src/components/Modal/ModalBoxBody.tsx +2 -2
  223. package/src/components/Modal/ModalBoxCloseButton.tsx +2 -2
  224. package/src/components/Modal/ModalBoxDescription.tsx +3 -3
  225. package/src/components/Modal/ModalBoxFooter.tsx +2 -2
  226. package/src/components/Modal/ModalBoxHeader.tsx +3 -3
  227. package/src/components/Modal/ModalBoxTitle.tsx +8 -9
  228. package/src/components/Modal/ModalContent.tsx +56 -48
  229. package/src/components/Modal/examples/Modal.md +1 -3
  230. package/src/components/NotificationBadge/NotificationBadge.tsx +22 -15
  231. package/src/components/NotificationBadge/__tests__/NotificationBadge.test.tsx +25 -1
  232. package/src/components/NotificationBadge/__tests__/__snapshots__/NotificationBadge.test.tsx.snap +5 -0
  233. package/src/components/NotificationBadge/examples/NotificationBadge.md +16 -3
  234. package/src/components/NotificationBadge/examples/NotificationBadgeBasic.tsx +26 -13
  235. package/src/components/NotificationBadge/examples/NotificationBadgeWithCount.tsx +28 -18
  236. package/src/components/NumberInput/examples/NumberInput.md +9 -448
  237. package/src/components/NumberInput/examples/NumberInputCustomStep.tsx +29 -0
  238. package/src/components/NumberInput/examples/NumberInputCustomStepAndThreshold.tsx +52 -0
  239. package/src/components/NumberInput/examples/NumberInputDefault.tsx +34 -0
  240. package/src/components/NumberInput/examples/NumberInputDisabled.tsx +40 -0
  241. package/src/components/NumberInput/examples/NumberInputUnit.tsx +57 -0
  242. package/src/components/NumberInput/examples/NumberInputUnitThreshold.tsx +55 -0
  243. package/src/components/NumberInput/examples/NumberInputVaryingSizes.tsx +80 -0
  244. package/src/components/NumberInput/examples/{WithStatus.tsx → NumberInputWithStatus.tsx} +4 -3
  245. package/src/components/Pagination/Navigation.tsx +33 -33
  246. package/src/components/Pagination/OptionsToggle.tsx +27 -26
  247. package/src/components/Pagination/Pagination.tsx +79 -65
  248. package/src/components/Pagination/PaginationOptionsMenu.tsx +22 -18
  249. package/src/components/Pagination/ToggleTemplate.tsx +4 -0
  250. package/src/components/Popover/Popover.tsx +89 -73
  251. package/src/components/SearchInput/AdvancedSearchMenu.tsx +29 -28
  252. package/src/components/SearchInput/SearchInput.tsx +76 -62
  253. package/src/components/Slider/Slider.tsx +47 -41
  254. package/src/components/Slider/SliderStep.tsx +10 -10
  255. package/src/components/TreeView/TreeView.tsx +67 -53
  256. package/src/components/TreeView/TreeViewList.tsx +4 -4
  257. package/src/components/TreeView/TreeViewListItem.tsx +46 -39
  258. package/src/components/TreeView/TreeViewRoot.tsx +4 -4
  259. package/src/components/TreeView/TreeViewSearch.tsx +12 -8
  260. package/src/demos/Masthead.md +9 -193
  261. package/src/demos/NotificationDrawer/NotificationDrawer.md +2 -0
  262. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +305 -0
  263. package/src/helpers/Popper/Popper.tsx +8 -8
@@ -0,0 +1,305 @@
1
+ import React from 'react';
2
+ import {
3
+ ApplicationLauncher,
4
+ ApplicationLauncherItem,
5
+ Avatar,
6
+ Brand,
7
+ Breadcrumb,
8
+ BreadcrumbItem,
9
+ Button,
10
+ ButtonVariant,
11
+ Card,
12
+ CardBody,
13
+ Divider,
14
+ Dropdown,
15
+ DropdownGroup,
16
+ DropdownItem,
17
+ DropdownToggle,
18
+ Gallery,
19
+ GalleryItem,
20
+ KebabToggle,
21
+ Masthead,
22
+ MastheadBrand,
23
+ MastheadContent,
24
+ MastheadMain,
25
+ MastheadToggle,
26
+ Nav,
27
+ NavItem,
28
+ NavList,
29
+ Page,
30
+ PageSection,
31
+ PageSectionVariants,
32
+ PageSidebar,
33
+ PageToggleButton,
34
+ SkipToContent,
35
+ Text,
36
+ TextContent,
37
+ Toolbar,
38
+ ToolbarContent,
39
+ ToolbarGroup,
40
+ ToolbarItem
41
+ } from '@patternfly/react-core';
42
+ import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
43
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
44
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
45
+ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
46
+ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
47
+ import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
48
+
49
+ interface NavOnSelectProps {
50
+ groupId: number | string;
51
+ itemId: number | string;
52
+ to: string;
53
+ event: React.FormEvent<HTMLInputElement>;
54
+ }
55
+
56
+ export const MastheadWithUtilitiesAndUserDropdownMenu: React.FunctionComponent = () => {
57
+ const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);
58
+ const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false);
59
+ const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = React.useState(false);
60
+ const [isAppLauncherOpen, setIsAppLauncherOpen] = React.useState(false);
61
+ const [activeItem, setActiveItem] = React.useState(1);
62
+
63
+ const onNavSelect = (selectedItem: NavOnSelectProps) => {
64
+ typeof selectedItem.itemId === 'number' && setActiveItem(selectedItem.itemId);
65
+ };
66
+
67
+ const onDropdownToggle = (isOpen: boolean) => {
68
+ setIsDropdownOpen(isOpen);
69
+ };
70
+
71
+ const onDropdownSelect = () => {
72
+ setIsDropdownOpen(!isDropdownOpen);
73
+ };
74
+
75
+ const onKebabDropdownToggle = (isOpen: boolean) => {
76
+ setIsKebabDropdownOpen(isOpen);
77
+ };
78
+
79
+ const onKebabDropdownSelect = () => {
80
+ setIsKebabDropdownOpen(!isKebabDropdownOpen);
81
+ };
82
+
83
+ const onFullKebabDropdownToggle = (isOpen: boolean) => {
84
+ setIsFullKebabDropdownOpen(isOpen);
85
+ };
86
+
87
+ const onFullKebabDropdownSelect = () => {
88
+ setIsFullKebabDropdownOpen(!isFullKebabDropdownOpen);
89
+ };
90
+
91
+ const onAppLauncherToggle = (isOpen: boolean) => {
92
+ setIsAppLauncherOpen(isOpen);
93
+ };
94
+
95
+ const onAppLauncherSelect = () => {
96
+ setIsAppLauncherOpen(!isAppLauncherOpen);
97
+ };
98
+
99
+ const dashboardBreadcrumb = (
100
+ <Breadcrumb>
101
+ <BreadcrumbItem>Section home</BreadcrumbItem>
102
+ <BreadcrumbItem to="#">Section title</BreadcrumbItem>
103
+ <BreadcrumbItem to="#">Section title</BreadcrumbItem>
104
+ <BreadcrumbItem to="#" isActive>
105
+ Section landing
106
+ </BreadcrumbItem>
107
+ </Breadcrumb>
108
+ );
109
+
110
+ const kebabDropdownItems = [
111
+ <DropdownItem key="settings">
112
+ <CogIcon /> Settings
113
+ </DropdownItem>,
114
+ <DropdownItem key="help">
115
+ <HelpIcon /> Help
116
+ </DropdownItem>
117
+ ];
118
+
119
+ const fullKebabDropdownItems = [
120
+ <DropdownGroup key="group 2">
121
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
122
+ <DropdownItem key="group 2 user" component="button">
123
+ User management
124
+ </DropdownItem>
125
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
126
+ </DropdownGroup>,
127
+ <Divider key="divider" />,
128
+ <DropdownItem key="settings">
129
+ <CogIcon /> Settings
130
+ </DropdownItem>,
131
+ <DropdownItem key="help">
132
+ <HelpIcon /> Help
133
+ </DropdownItem>
134
+ ];
135
+
136
+ const userDropdownItems = [
137
+ <DropdownGroup key="group 2">
138
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
139
+ <DropdownItem key="group 2 user" component="button">
140
+ User management
141
+ </DropdownItem>
142
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
143
+ </DropdownGroup>
144
+ ];
145
+
146
+ const appLauncherItems = [
147
+ <ApplicationLauncherItem key="application_1a" href="#">
148
+ Application 1 (anchor link)
149
+ </ApplicationLauncherItem>,
150
+ <ApplicationLauncherItem key="application_2a" component="button" onClick={() => alert('Clicked item 2')}>
151
+ Application 2 (button with onClick)
152
+ </ApplicationLauncherItem>
153
+ ];
154
+
155
+ const headerToolbar = (
156
+ <Toolbar id="toolbar" isFullHeight isStatic>
157
+ <ToolbarContent>
158
+ <ToolbarGroup
159
+ variant="icon-button-group"
160
+ alignment={{ default: 'alignRight' }}
161
+ spacer={{ default: 'spacerNone', md: 'spacerMd' }}
162
+ >
163
+ <ToolbarItem>
164
+ <Button aria-label="Notifications" variant={ButtonVariant.plain} icon={<BellIcon />} />
165
+ </ToolbarItem>
166
+ <ToolbarGroup variant="icon-button-group" visibility={{ default: 'hidden', lg: 'visible' }}>
167
+ <ToolbarItem visibility={{ default: 'hidden', md: 'hidden', lg: 'visible' }}>
168
+ <ApplicationLauncher
169
+ onSelect={onAppLauncherSelect}
170
+ onToggle={onAppLauncherToggle}
171
+ isOpen={isAppLauncherOpen}
172
+ items={appLauncherItems}
173
+ />
174
+ </ToolbarItem>
175
+ <ToolbarItem>
176
+ <Button aria-label="Settings" variant={ButtonVariant.plain} icon={<CogIcon />} />
177
+ </ToolbarItem>
178
+ <ToolbarItem>
179
+ <Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
180
+ </ToolbarItem>
181
+ </ToolbarGroup>
182
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
183
+ <Dropdown
184
+ isPlain
185
+ position="right"
186
+ onSelect={onKebabDropdownSelect}
187
+ toggle={<KebabToggle onToggle={onKebabDropdownToggle} />}
188
+ isOpen={isKebabDropdownOpen}
189
+ dropdownItems={kebabDropdownItems}
190
+ />
191
+ </ToolbarItem>
192
+ <ToolbarItem visibility={{ md: 'hidden' }}>
193
+ <Dropdown
194
+ isPlain
195
+ position="right"
196
+ onSelect={onFullKebabDropdownSelect}
197
+ toggle={<KebabToggle onToggle={onFullKebabDropdownToggle} />}
198
+ isOpen={isFullKebabDropdownOpen}
199
+ dropdownItems={fullKebabDropdownItems}
200
+ />
201
+ </ToolbarItem>
202
+ </ToolbarGroup>
203
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
204
+ <Dropdown
205
+ isFullHeight
206
+ onSelect={onDropdownSelect}
207
+ isOpen={isDropdownOpen}
208
+ toggle={
209
+ <DropdownToggle icon={<Avatar src={imgAvatar} alt="Avatar" />} onToggle={onDropdownToggle}>
210
+ Ned Username
211
+ </DropdownToggle>
212
+ }
213
+ dropdownItems={userDropdownItems}
214
+ />
215
+ </ToolbarItem>
216
+ </ToolbarContent>
217
+ </Toolbar>
218
+ );
219
+
220
+ const masthead = (
221
+ <Masthead>
222
+ <MastheadToggle>
223
+ <PageToggleButton variant="plain" aria-label="Global navigation">
224
+ <BarsIcon />
225
+ </PageToggleButton>
226
+ </MastheadToggle>
227
+ <MastheadMain>
228
+ <MastheadBrand>
229
+ <Brand
230
+ widths={{ default: '180px', md: '180px', '2xl': '220px' }}
231
+ src="/assets/images/logo__pf--reverse--base.png"
232
+ alt="Fallback patternFly default logo"
233
+ >
234
+ <source media="(min-width: 768px)" srcSet="/assets/images/logo__pf--reverse-on-md.svg" />
235
+ <source srcSet="/assets/images/logo__pf--reverse--base.svg" />
236
+ </Brand>
237
+ </MastheadBrand>
238
+ </MastheadMain>
239
+ <MastheadContent>{headerToolbar}</MastheadContent>
240
+ </Masthead>
241
+ );
242
+
243
+ const pageNav = (
244
+ <Nav onSelect={onNavSelect} aria-label="Nav">
245
+ <NavList>
246
+ <NavItem itemId={0} isActive={activeItem === 0} to="#system-panel">
247
+ System panel
248
+ </NavItem>
249
+ <NavItem itemId={1} isActive={activeItem === 1} to="#policy">
250
+ Policy
251
+ </NavItem>
252
+ <NavItem itemId={2} isActive={activeItem === 2} to="#auth">
253
+ Authentication
254
+ </NavItem>
255
+ <NavItem itemId={3} isActive={activeItem === 3} to="#network">
256
+ Network services
257
+ </NavItem>
258
+ <NavItem itemId={4} isActive={activeItem === 4} to="#server">
259
+ Server
260
+ </NavItem>
261
+ </NavList>
262
+ </Nav>
263
+ );
264
+
265
+ const sidebar = <PageSidebar nav={pageNav} />;
266
+
267
+ const mainContainerId = 'main-content-page-layout-tertiary-nav';
268
+
269
+ const pageSkipToContent = <SkipToContent href={`#${mainContainerId}`}>Skip to content</SkipToContent>;
270
+
271
+ return (
272
+ <Page
273
+ header={masthead}
274
+ sidebar={sidebar}
275
+ isManagedSidebar
276
+ skipToContent={pageSkipToContent}
277
+ breadcrumb={dashboardBreadcrumb}
278
+ mainContainerId={mainContainerId}
279
+ isTertiaryNavWidthLimited
280
+ isBreadcrumbWidthLimited
281
+ isTertiaryNavGrouped
282
+ isBreadcrumbGrouped
283
+ additionalGroupedContent={
284
+ <PageSection variant={PageSectionVariants.light}>
285
+ <TextContent>
286
+ <Text component="h1">Main title</Text>
287
+ <Text component="p">This is a full page demo.</Text>
288
+ </TextContent>
289
+ </PageSection>
290
+ }
291
+ >
292
+ <PageSection>
293
+ <Gallery hasGutter>
294
+ {Array.apply(0, Array(10)).map((x, i) => (
295
+ <GalleryItem key={i}>
296
+ <Card>
297
+ <CardBody>This is a card</CardBody>
298
+ </Card>
299
+ </GalleryItem>
300
+ ))}
301
+ </Gallery>
302
+ </PageSection>
303
+ </Page>
304
+ );
305
+ };
@@ -190,14 +190,14 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
190
190
  }
191
191
  }
192
192
  }, [isVisible, popperRef]);
193
- const addEventListener = (listener: any, element: Document | HTMLElement, event: string) => {
193
+ const addEventListener = (listener: any, element: Document | HTMLElement, event: string, capture = false) => {
194
194
  if (listener && element) {
195
- element.addEventListener(event, listener);
195
+ element.addEventListener(event, listener, { capture });
196
196
  }
197
197
  };
198
- const removeEventListener = (listener: any, element: Document | HTMLElement, event: string) => {
198
+ const removeEventListener = (listener: any, element: Document | HTMLElement, event: string, capture = false) => {
199
199
  if (listener && element) {
200
- element.removeEventListener(event, listener);
200
+ element.removeEventListener(event, listener, { capture });
201
201
  }
202
202
  };
203
203
 
@@ -211,8 +211,8 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
211
211
  addEventListener(onPopperClick, popperElement, 'click');
212
212
  addEventListener(onPopperMouseEnter, popperElement, 'mouseenter');
213
213
  addEventListener(onPopperMouseLeave, popperElement, 'mouseleave');
214
- onDocumentClick && addEventListener(onDocumentClickCallback, document, 'click');
215
- addEventListener(onDocumentKeyDown, document, 'keydown');
214
+ onDocumentClick && addEventListener(onDocumentClickCallback, document, 'click', true);
215
+ addEventListener(onDocumentKeyDown, document, 'keydown', true);
216
216
 
217
217
  // Trigger a Popper update when content changes.
218
218
  const observer = new MutationObserver(() => {
@@ -230,8 +230,8 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
230
230
  removeEventListener(onPopperClick, popperElement, 'click');
231
231
  removeEventListener(onPopperMouseEnter, popperElement, 'mouseenter');
232
232
  removeEventListener(onPopperMouseLeave, popperElement, 'mouseleave');
233
- onDocumentClick && removeEventListener(onDocumentClickCallback, document, 'click');
234
- removeEventListener(onDocumentKeyDown, document, 'keydown');
233
+ onDocumentClick && removeEventListener(onDocumentClickCallback, document, 'click', true);
234
+ removeEventListener(onDocumentKeyDown, document, 'keydown', true);
235
235
  observer.disconnect();
236
236
  };
237
237
  }, [