@patternfly/react-core 5.1.1-prerelease.2 → 5.1.1-prerelease.21

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 +119 -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/BackToTop/BackToTop.js +1 -1
  120. package/dist/esm/components/BackToTop/BackToTop.js.map +1 -1
  121. package/dist/esm/components/Button/Button.d.ts +2 -2
  122. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  123. package/dist/esm/components/Button/Button.js +3 -3
  124. package/dist/esm/components/Button/Button.js.map +1 -1
  125. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  126. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +1 -1
  127. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  128. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  130. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  131. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
  132. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  133. package/dist/esm/components/Drawer/Drawer.d.ts +3 -3
  134. package/dist/esm/components/Drawer/Drawer.d.ts.map +1 -1
  135. package/dist/esm/components/Drawer/Drawer.js +3 -3
  136. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  137. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +16 -0
  138. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  139. package/dist/esm/components/Drawer/DrawerPanelContent.js +132 -41
  140. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  141. package/dist/esm/components/Dropdown/Dropdown.d.ts +3 -1
  142. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  143. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  144. package/dist/esm/components/Icon/Icon.d.ts +4 -0
  145. package/dist/esm/components/Icon/Icon.d.ts.map +1 -1
  146. package/dist/esm/components/Icon/Icon.js +2 -2
  147. package/dist/esm/components/Icon/Icon.js.map +1 -1
  148. package/dist/esm/components/Label/Label.d.ts +4 -2
  149. package/dist/esm/components/Label/Label.d.ts.map +1 -1
  150. package/dist/esm/components/Label/Label.js +19 -4
  151. package/dist/esm/components/Label/Label.js.map +1 -1
  152. package/dist/esm/components/Menu/MenuContainer.d.ts +1 -1
  153. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  154. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  155. package/dist/esm/components/Modal/ModalContent.js +3 -1
  156. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  157. package/dist/esm/components/Nav/NavItem.d.ts +1 -1
  158. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  159. package/dist/esm/components/Nav/NavList.d.ts +10 -4
  160. package/dist/esm/components/Nav/NavList.d.ts.map +1 -1
  161. package/dist/esm/components/Nav/NavList.js +29 -8
  162. package/dist/esm/components/Nav/NavList.js.map +1 -1
  163. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  164. package/dist/esm/components/SearchInput/SearchInput.js +4 -2
  165. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  166. package/dist/esm/components/Select/Select.d.ts +9 -1
  167. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  168. package/dist/esm/components/Select/Select.js.map +1 -1
  169. package/dist/esm/components/Slider/Slider.d.ts +8 -4
  170. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  171. package/dist/esm/components/Slider/Slider.js +62 -16
  172. package/dist/esm/components/Slider/Slider.js.map +1 -1
  173. package/dist/esm/components/Slider/SliderStep.d.ts.map +1 -1
  174. package/dist/esm/components/Slider/SliderStep.js +2 -1
  175. package/dist/esm/components/Slider/SliderStep.js.map +1 -1
  176. package/dist/esm/components/Tabs/Tabs.d.ts +11 -6
  177. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  178. package/dist/esm/components/Tabs/Tabs.js +35 -16
  179. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  180. package/dist/esm/components/TextInput/TextInput.d.ts +3 -1
  181. package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
  182. package/dist/esm/components/TextInput/TextInput.js +8 -7
  183. package/dist/esm/components/TextInput/TextInput.js.map +1 -1
  184. package/dist/esm/components/Timestamp/Timestamp.d.ts +4 -0
  185. package/dist/esm/components/Timestamp/Timestamp.d.ts.map +1 -1
  186. package/dist/esm/components/Timestamp/Timestamp.js +7 -4
  187. package/dist/esm/components/Timestamp/Timestamp.js.map +1 -1
  188. package/dist/esm/components/Toolbar/ToolbarContent.d.ts.map +1 -1
  189. package/dist/esm/components/Toolbar/ToolbarContent.js +8 -6
  190. package/dist/esm/components/Toolbar/ToolbarContent.js.map +1 -1
  191. package/dist/esm/components/Toolbar/ToolbarExpandableContent.d.ts.map +1 -1
  192. package/dist/esm/components/Toolbar/ToolbarExpandableContent.js +3 -5
  193. package/dist/esm/components/Toolbar/ToolbarExpandableContent.js.map +1 -1
  194. package/dist/esm/components/Toolbar/ToolbarFilter.d.ts +4 -0
  195. package/dist/esm/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
  196. package/dist/esm/components/Toolbar/ToolbarFilter.js +8 -4
  197. package/dist/esm/components/Toolbar/ToolbarFilter.js.map +1 -1
  198. package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts +14 -0
  199. package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
  200. package/dist/esm/components/Toolbar/ToolbarToggleGroup.js +21 -20
  201. package/dist/esm/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
  202. package/dist/esm/components/Toolbar/ToolbarUtils.d.ts +4 -0
  203. package/dist/esm/components/Toolbar/ToolbarUtils.d.ts.map +1 -1
  204. package/dist/esm/components/Toolbar/ToolbarUtils.js +2 -1
  205. package/dist/esm/components/Toolbar/ToolbarUtils.js.map +1 -1
  206. package/dist/esm/components/Toolbar/index.d.ts +1 -0
  207. package/dist/esm/components/Toolbar/index.d.ts.map +1 -1
  208. package/dist/esm/components/Toolbar/index.js +1 -0
  209. package/dist/esm/components/Toolbar/index.js.map +1 -1
  210. package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
  211. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  212. package/dist/esm/helpers/Popper/Popper.js +27 -5
  213. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  214. package/dist/js/components/BackToTop/BackToTop.js +1 -1
  215. package/dist/js/components/BackToTop/BackToTop.js.map +1 -1
  216. package/dist/js/components/Button/Button.d.ts +2 -2
  217. package/dist/js/components/Button/Button.d.ts.map +1 -1
  218. package/dist/js/components/Button/Button.js +3 -3
  219. package/dist/js/components/Button/Button.js.map +1 -1
  220. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  221. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +1 -1
  222. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  223. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
  224. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  225. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  226. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
  227. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  228. package/dist/js/components/Drawer/Drawer.d.ts +3 -3
  229. package/dist/js/components/Drawer/Drawer.d.ts.map +1 -1
  230. package/dist/js/components/Drawer/Drawer.js +3 -3
  231. package/dist/js/components/Drawer/Drawer.js.map +1 -1
  232. package/dist/js/components/Drawer/DrawerPanelContent.d.ts +16 -0
  233. package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  234. package/dist/js/components/Drawer/DrawerPanelContent.js +132 -41
  235. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  236. package/dist/js/components/Dropdown/Dropdown.d.ts +3 -1
  237. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  238. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  239. package/dist/js/components/Icon/Icon.d.ts +4 -0
  240. package/dist/js/components/Icon/Icon.d.ts.map +1 -1
  241. package/dist/js/components/Icon/Icon.js +2 -2
  242. package/dist/js/components/Icon/Icon.js.map +1 -1
  243. package/dist/js/components/Label/Label.d.ts +4 -2
  244. package/dist/js/components/Label/Label.d.ts.map +1 -1
  245. package/dist/js/components/Label/Label.js +19 -4
  246. package/dist/js/components/Label/Label.js.map +1 -1
  247. package/dist/js/components/Menu/MenuContainer.d.ts +1 -1
  248. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  249. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  250. package/dist/js/components/Modal/ModalContent.js +3 -1
  251. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  252. package/dist/js/components/Nav/NavItem.d.ts +1 -1
  253. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  254. package/dist/js/components/Nav/NavList.d.ts +10 -4
  255. package/dist/js/components/Nav/NavList.d.ts.map +1 -1
  256. package/dist/js/components/Nav/NavList.js +29 -8
  257. package/dist/js/components/Nav/NavList.js.map +1 -1
  258. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  259. package/dist/js/components/SearchInput/SearchInput.js +4 -2
  260. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  261. package/dist/js/components/Select/Select.d.ts +9 -1
  262. package/dist/js/components/Select/Select.d.ts.map +1 -1
  263. package/dist/js/components/Select/Select.js.map +1 -1
  264. package/dist/js/components/Slider/Slider.d.ts +8 -4
  265. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  266. package/dist/js/components/Slider/Slider.js +62 -16
  267. package/dist/js/components/Slider/Slider.js.map +1 -1
  268. package/dist/js/components/Slider/SliderStep.d.ts.map +1 -1
  269. package/dist/js/components/Slider/SliderStep.js +2 -1
  270. package/dist/js/components/Slider/SliderStep.js.map +1 -1
  271. package/dist/js/components/Tabs/Tabs.d.ts +11 -6
  272. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  273. package/dist/js/components/Tabs/Tabs.js +35 -16
  274. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  275. package/dist/js/components/TextInput/TextInput.d.ts +3 -1
  276. package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
  277. package/dist/js/components/TextInput/TextInput.js +8 -7
  278. package/dist/js/components/TextInput/TextInput.js.map +1 -1
  279. package/dist/js/components/Timestamp/Timestamp.d.ts +4 -0
  280. package/dist/js/components/Timestamp/Timestamp.d.ts.map +1 -1
  281. package/dist/js/components/Timestamp/Timestamp.js +7 -4
  282. package/dist/js/components/Timestamp/Timestamp.js.map +1 -1
  283. package/dist/js/components/Toolbar/ToolbarContent.d.ts.map +1 -1
  284. package/dist/js/components/Toolbar/ToolbarContent.js +8 -6
  285. package/dist/js/components/Toolbar/ToolbarContent.js.map +1 -1
  286. package/dist/js/components/Toolbar/ToolbarExpandableContent.d.ts.map +1 -1
  287. package/dist/js/components/Toolbar/ToolbarExpandableContent.js +3 -5
  288. package/dist/js/components/Toolbar/ToolbarExpandableContent.js.map +1 -1
  289. package/dist/js/components/Toolbar/ToolbarFilter.d.ts +4 -0
  290. package/dist/js/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
  291. package/dist/js/components/Toolbar/ToolbarFilter.js +8 -4
  292. package/dist/js/components/Toolbar/ToolbarFilter.js.map +1 -1
  293. package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts +14 -0
  294. package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
  295. package/dist/js/components/Toolbar/ToolbarToggleGroup.js +21 -20
  296. package/dist/js/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
  297. package/dist/js/components/Toolbar/ToolbarUtils.d.ts +4 -0
  298. package/dist/js/components/Toolbar/ToolbarUtils.d.ts.map +1 -1
  299. package/dist/js/components/Toolbar/ToolbarUtils.js +2 -1
  300. package/dist/js/components/Toolbar/ToolbarUtils.js.map +1 -1
  301. package/dist/js/components/Toolbar/index.d.ts +1 -0
  302. package/dist/js/components/Toolbar/index.d.ts.map +1 -1
  303. package/dist/js/components/Toolbar/index.js +1 -0
  304. package/dist/js/components/Toolbar/index.js.map +1 -1
  305. package/dist/js/helpers/Popper/Popper.d.ts +2 -1
  306. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  307. package/dist/js/helpers/Popper/Popper.js +29 -6
  308. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  309. package/dist/styles/base-no-reset.css +3 -4
  310. package/dist/styles/base.css +3 -4
  311. package/dist/umd/react-core.min.js +3 -3
  312. package/helpers/package.json +1 -1
  313. package/layouts/package.json +1 -1
  314. package/next/package.json +1 -1
  315. package/package.json +6 -6
  316. package/src/components/Alert/__tests__/AlertGroup.test.tsx +77 -73
  317. package/src/components/BackToTop/BackToTop.tsx +1 -1
  318. package/src/components/BackToTop/__tests__/BackToTop.test.tsx +1 -1
  319. package/src/components/BackToTop/__tests__/__snapshots__/BackToTop.test.tsx.snap +1 -1
  320. package/src/components/BackgroundImage/__tests__/BackgroundImage.test.tsx +21 -7
  321. package/src/components/BackgroundImage/__tests__/__snapshots__/BackgroundImage.test.tsx.snap +11 -0
  322. package/src/components/Brand/__tests__/Brand.test.tsx +105 -30
  323. package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +25 -3
  324. package/src/components/Button/Button.tsx +5 -5
  325. package/src/components/Button/examples/ButtonVariations.tsx +1 -1
  326. package/src/components/Checkbox/examples/Checkbox.md +8 -2
  327. package/src/components/Checkbox/examples/CheckboxControlled.tsx +18 -16
  328. package/src/components/ClipboardCopy/ClipboardCopy.tsx +1 -0
  329. package/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +1 -1
  330. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +5 -2
  331. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyExpanded.test.tsx.snap +3 -1
  332. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +16 -12
  333. package/src/components/Drawer/Drawer.tsx +6 -6
  334. package/src/components/Drawer/DrawerPanelContent.tsx +192 -81
  335. package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +89 -0
  336. package/src/components/Drawer/examples/Drawer.md +43 -12
  337. package/src/components/Drawer/examples/DrawerFocusTrap.tsx +58 -0
  338. package/src/components/Drawer/examples/{DrawerInlinePanelRight.tsx → DrawerInlinePanelEnd.tsx} +1 -1
  339. package/src/components/Drawer/examples/{DrawerInlinePanelLeft.tsx → DrawerInlinePanelStart.tsx} +2 -2
  340. package/src/components/Drawer/examples/{DrawerPanelLeft.tsx → DrawerPanelEnd.tsx} +2 -2
  341. package/src/components/Drawer/examples/{DrawerPanelRight.tsx → DrawerPanelStart.tsx} +2 -2
  342. package/src/components/Drawer/examples/{DrawerResizableOnRight.tsx → DrawerResizableAtEnd.tsx} +3 -3
  343. package/src/components/Drawer/examples/{DrawerResizableOnLeft.tsx → DrawerResizableAtStart.tsx} +2 -2
  344. package/src/components/Dropdown/Dropdown.tsx +3 -1
  345. package/src/components/Icon/Icon.tsx +15 -1
  346. package/src/components/Icon/__tests__/Icon.test.tsx +16 -0
  347. package/src/components/Label/Label.tsx +29 -3
  348. package/src/components/Label/__tests__/Label.test.tsx +35 -0
  349. package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +1 -0
  350. package/src/components/Label/examples/LabelFilled.tsx +220 -168
  351. package/src/components/Label/examples/LabelOutline.tsx +280 -226
  352. package/src/components/Menu/MenuContainer.tsx +1 -1
  353. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +32 -15
  354. package/src/components/Modal/ModalContent.tsx +4 -6
  355. package/src/components/Nav/NavItem.tsx +1 -1
  356. package/src/components/Nav/NavList.tsx +44 -12
  357. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +10 -10
  358. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +6 -6
  359. package/src/components/SearchInput/SearchInput.tsx +5 -2
  360. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +105 -65
  361. package/src/components/SearchInput/examples/SearchInputAdvanced.tsx +1 -1
  362. package/src/components/Select/Select.tsx +9 -1
  363. package/src/components/Slider/Slider.tsx +69 -20
  364. package/src/components/Slider/SliderStep.tsx +2 -1
  365. package/src/components/Slider/_tests_/Slider.test.tsx +3 -3
  366. package/src/components/Slider/examples/SliderActions.tsx +3 -3
  367. package/src/components/Tabs/Tabs.tsx +50 -26
  368. package/src/components/Tabs/examples/Tabs.md +1 -3
  369. package/src/components/TextInput/TextInput.tsx +11 -7
  370. package/src/components/TextInput/__tests__/TextInput.test.tsx +16 -1
  371. package/src/components/TextInput/__tests__/__snapshots__/TextInput.test.tsx.snap +2 -1
  372. package/src/components/TextInput/examples/TextInput.md +2 -2
  373. package/src/components/TextInput/examples/{TextInputLeftTruncated.tsx → TextInputStartTruncated.tsx} +3 -3
  374. package/src/components/Tile/examples/Tile.md +14 -10
  375. package/src/components/Timestamp/Timestamp.tsx +12 -3
  376. package/src/components/Timestamp/__tests__/Timestamp.test.tsx +6 -0
  377. package/src/components/Timestamp/examples/Timestamp.md +8 -0
  378. package/src/components/Timestamp/examples/TimestampDefault.tsx +7 -1
  379. package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
  380. package/src/components/Toolbar/ToolbarContent.tsx +7 -11
  381. package/src/components/Toolbar/ToolbarExpandableContent.tsx +7 -3
  382. package/src/components/Toolbar/ToolbarFilter.tsx +12 -2
  383. package/src/components/Toolbar/ToolbarToggleGroup.tsx +92 -47
  384. package/src/components/Toolbar/ToolbarUtils.tsx +6 -1
  385. package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarContent.test.tsx.snap +0 -8
  386. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +3 -4
  387. package/src/components/Toolbar/__tests__/ToolbarToggleGroup.test.tsx +13 -10
  388. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +0 -59
  389. package/src/components/Toolbar/examples/Toolbar.md +6 -6
  390. package/src/components/Toolbar/index.ts +1 -0
  391. package/src/demos/Card/Card.md +3 -664
  392. package/src/demos/Card/examples/CardView.tsx +575 -0
  393. package/src/demos/CardDemos.md +4 -4
  394. package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +1 -1
  395. package/src/demos/DataListDemo.md +7 -4
  396. package/src/demos/NotificationDrawer/NotificationDrawer.md +2 -1435
  397. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +557 -0
  398. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +796 -0
  399. package/src/demos/PrimaryDetail.md +3 -4
  400. package/src/deprecated/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +42 -26
  401. package/src/helpers/Popper/Popper.tsx +43 -6
  402. package/src/components/Alert/__tests__/__snapshots__/AlertGroup.test.tsx.snap +0 -10
  403. package/src/components/Brand/__tests__/__snapshots__/Brand.test.tsx.snap +0 -11
  404. package/src/components/Checkbox/examples/checkbox.css +0 -3
  405. /package/src/demos/Card/{CardData.jsx → examples/CardData.jsx} +0 -0
@@ -0,0 +1,557 @@
1
+ import React from 'react';
2
+ import {
3
+ Avatar,
4
+ Brand,
5
+ Breadcrumb,
6
+ BreadcrumbItem,
7
+ Button,
8
+ ButtonVariant,
9
+ Divider,
10
+ Dropdown,
11
+ DropdownItem,
12
+ DropdownList,
13
+ EmptyState,
14
+ EmptyStateActions,
15
+ EmptyStateBody,
16
+ EmptyStateIcon,
17
+ EmptyStateHeader,
18
+ EmptyStateFooter,
19
+ EmptyStateVariant,
20
+ MenuToggle,
21
+ Nav,
22
+ NavItem,
23
+ NavList,
24
+ NotificationBadge,
25
+ NotificationDrawer,
26
+ NotificationDrawerBody,
27
+ NotificationDrawerHeader,
28
+ NotificationDrawerList,
29
+ NotificationDrawerListItem,
30
+ NotificationDrawerListItemBody,
31
+ NotificationDrawerListItemHeader,
32
+ Page,
33
+ PageSection,
34
+ PageSectionVariants,
35
+ PageSidebar,
36
+ PageSidebarBody,
37
+ SkipToContent,
38
+ TextContent,
39
+ Text,
40
+ PageToggleButton,
41
+ Masthead,
42
+ MastheadMain,
43
+ MastheadToggle,
44
+ MastheadContent,
45
+ MastheadBrand,
46
+ Toolbar,
47
+ ToolbarItem,
48
+ ToolbarGroup,
49
+ ToolbarContent
50
+ } from '@patternfly/react-core';
51
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
52
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
53
+ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
54
+ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
55
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
56
+ import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
57
+ import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
58
+ import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
59
+ import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.svg';
60
+
61
+ export const NotificationDrawerBasic: React.FunctionComponent = () => {
62
+ const drawerRef = React.useRef<HTMLElement | null>(null);
63
+
64
+ const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);
65
+ const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false);
66
+ const [isDrawerExpanded, setIsDrawerExpanded] = React.useState(false);
67
+
68
+ interface UnreadMap {
69
+ [notificationId: string]: boolean;
70
+ }
71
+
72
+ const [activeItem, setActiveItem] = React.useState<number | string>(0);
73
+ const [isUnreadMap, setIsUnreadMap] = React.useState<UnreadMap | null>({
74
+ 'notification-1': true,
75
+ 'notification-2': true,
76
+ 'notification-3': false,
77
+ 'notification-4': false
78
+ });
79
+
80
+ const [shouldShowNotifications, setShouldShowNotifications] = React.useState(true);
81
+
82
+ interface ActionsMenu {
83
+ [toggleId: string]: boolean;
84
+ }
85
+
86
+ const [isActionsMenuOpen, setIsActionsMenuOpen] = React.useState<ActionsMenu | {}>({});
87
+
88
+ const onNavSelect = (
89
+ _event: React.FormEvent<HTMLInputElement>,
90
+ selectedItem: {
91
+ groupId: number | string;
92
+ itemId: number | string;
93
+ to: string;
94
+ }
95
+ ) => setActiveItem(selectedItem.itemId);
96
+
97
+ const onDropdownToggle = () => setIsDropdownOpen((prevState) => !prevState);
98
+ const onDropdownSelect = () => setIsDropdownOpen(false);
99
+ const onKebabDropdownToggle = () => setIsKebabDropdownOpen((prevState) => !prevState);
100
+ const onKebabDropdownSelect = () => setIsKebabDropdownOpen(false);
101
+ const onCloseNotificationDrawer = (_event: any) => setIsDrawerExpanded((prevState) => !prevState);
102
+
103
+ const onToggle = (id: string) => {
104
+ setIsActionsMenuOpen({ [id]: !isActionsMenuOpen[id] });
105
+ };
106
+
107
+ const closeActionsMenu = () => setIsActionsMenuOpen({});
108
+
109
+ const onListItemClick = (id: string) => {
110
+ if (!isUnreadMap) {
111
+ return;
112
+ }
113
+ setIsUnreadMap({ ...isUnreadMap, [id]: false });
114
+ };
115
+
116
+ const getNumberUnread: () => number = () => {
117
+ if (!isUnreadMap) {
118
+ return 0;
119
+ }
120
+ return Object.values(isUnreadMap).reduce((count, value) => count + (value ? 1 : 0), 0);
121
+ };
122
+
123
+ const markAllRead = () => setIsUnreadMap(null);
124
+
125
+ const showNotifications = (showNotifications: boolean) => {
126
+ setIsUnreadMap(null);
127
+ setShouldShowNotifications(showNotifications);
128
+ };
129
+
130
+ const focusDrawer = (_event: any) => {
131
+ if (drawerRef.current === null) {
132
+ return;
133
+ }
134
+ const firstTabbableItem = drawerRef.current.querySelector('a, button') as
135
+ | HTMLAnchorElement
136
+ | HTMLButtonElement
137
+ | null;
138
+ firstTabbableItem?.focus();
139
+ };
140
+
141
+ const PageNav = (
142
+ <Nav onSelect={onNavSelect} aria-label="Nav">
143
+ <NavList>
144
+ <NavItem itemId={0} isActive={activeItem === 0}>
145
+ System Panel
146
+ </NavItem>
147
+ <NavItem itemId={1} isActive={activeItem === 1}>
148
+ Policy
149
+ </NavItem>
150
+ <NavItem itemId={2} isActive={activeItem === 2}>
151
+ Authentication
152
+ </NavItem>
153
+ <NavItem itemId={3} isActive={activeItem === 3}>
154
+ Network Services
155
+ </NavItem>
156
+ <NavItem itemId={4} isActive={activeItem === 4}>
157
+ Server
158
+ </NavItem>
159
+ </NavList>
160
+ </Nav>
161
+ );
162
+ const kebabDropdownItems = (
163
+ <>
164
+ <DropdownItem>
165
+ <CogIcon /> Settings
166
+ </DropdownItem>
167
+ <DropdownItem>
168
+ <HelpIcon /> Help
169
+ </DropdownItem>
170
+ </>
171
+ );
172
+ const userDropdownItems = (
173
+ <>
174
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
175
+ <DropdownItem key="group 2 user">User management</DropdownItem>
176
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
177
+ </>
178
+ );
179
+ const headerToolbar = (
180
+ <Toolbar isFullHeight>
181
+ <ToolbarContent>
182
+ <ToolbarGroup spaceItems={{ default: 'spaceItemsNone' }} align={{ default: 'alignRight' }}>
183
+ <ToolbarGroup variant="icon-button-group">
184
+ <ToolbarItem visibility={{ default: 'visible' }} selected={isDrawerExpanded}>
185
+ <NotificationBadge
186
+ variant={getNumberUnread() === 0 ? 'read' : 'unread'}
187
+ onClick={(event: any) => onCloseNotificationDrawer(event)}
188
+ aria-label="Notifications"
189
+ isExpanded={isDrawerExpanded}
190
+ >
191
+ <BellIcon />
192
+ </NotificationBadge>
193
+ </ToolbarItem>
194
+ <ToolbarGroup
195
+ variant="icon-button-group"
196
+ visibility={{
197
+ default: 'hidden',
198
+ lg: 'visible'
199
+ }} /** the settings and help icon buttons are only visible on desktop sizes and replaced by a kebab dropdown for other sizes */
200
+ >
201
+ <ToolbarItem>
202
+ <Button aria-label="Settings actions" variant={ButtonVariant.plain}>
203
+ <CogIcon />
204
+ </Button>
205
+ </ToolbarItem>
206
+ <ToolbarItem>
207
+ <Button aria-label="Help actions" variant={ButtonVariant.plain}>
208
+ <QuestionCircleIcon />
209
+ </Button>
210
+ </ToolbarItem>
211
+ </ToolbarGroup>
212
+ </ToolbarGroup>
213
+ <ToolbarGroup>
214
+ <ToolbarItem
215
+ visibility={{
216
+ lg: 'hidden'
217
+ }} /** this kebab dropdown replaces the icon buttons and is hidden for desktop sizes */
218
+ >
219
+ <Dropdown
220
+ isOpen={isKebabDropdownOpen}
221
+ onSelect={onKebabDropdownSelect}
222
+ onOpenChange={setIsKebabDropdownOpen}
223
+ popperProps={{ position: 'right' }}
224
+ toggle={(toggleRef: React.RefObject<any>) => (
225
+ <MenuToggle
226
+ ref={toggleRef}
227
+ isExpanded={isKebabDropdownOpen}
228
+ onClick={onKebabDropdownToggle}
229
+ variant="plain"
230
+ aria-label="Settings and help"
231
+ >
232
+ <EllipsisVIcon aria-hidden="true" />
233
+ </MenuToggle>
234
+ )}
235
+ >
236
+ <DropdownList>{kebabDropdownItems}</DropdownList>
237
+ </Dropdown>
238
+ </ToolbarItem>
239
+ <ToolbarItem
240
+ visibility={{ default: 'hidden', md: 'visible' }} /** this user dropdown is hidden on mobile sizes */
241
+ >
242
+ <Dropdown
243
+ isOpen={isDropdownOpen}
244
+ onSelect={onDropdownSelect}
245
+ onOpenChange={setIsDropdownOpen}
246
+ popperProps={{ position: 'right' }}
247
+ toggle={(toggleRef: React.RefObject<any>) => (
248
+ <MenuToggle
249
+ ref={toggleRef}
250
+ isExpanded={isDropdownOpen}
251
+ onClick={onDropdownToggle}
252
+ icon={<Avatar src={imgAvatar} alt="" />}
253
+ isFullHeight
254
+ >
255
+ John Smith
256
+ </MenuToggle>
257
+ )}
258
+ >
259
+ <DropdownList>{userDropdownItems}</DropdownList>
260
+ </Dropdown>
261
+ </ToolbarItem>
262
+ </ToolbarGroup>
263
+ </ToolbarGroup>
264
+ </ToolbarContent>
265
+ </Toolbar>
266
+ );
267
+
268
+ const Header = (
269
+ <Masthead>
270
+ <MastheadToggle>
271
+ <PageToggleButton variant="plain" aria-label="Global navigation">
272
+ <BarsIcon />
273
+ </PageToggleButton>
274
+ </MastheadToggle>
275
+ <MastheadMain>
276
+ <MastheadBrand>
277
+ <Brand src={pfLogo} alt="PatternFly" heights={{ default: '36px' }} />
278
+ </MastheadBrand>
279
+ </MastheadMain>
280
+ <MastheadContent>{headerToolbar}</MastheadContent>
281
+ </Masthead>
282
+ );
283
+ const Sidebar = (
284
+ <PageSidebar>
285
+ <PageSidebarBody>{PageNav}</PageSidebarBody>
286
+ </PageSidebar>
287
+ );
288
+ const pageId = 'main-content-page-layout-default-nav';
289
+ const PageSkipToContent = <SkipToContent href={`#${pageId}`}>Skip to content</SkipToContent>;
290
+
291
+ const PageBreadcrumb = (
292
+ <Breadcrumb>
293
+ <BreadcrumbItem>Section home</BreadcrumbItem>
294
+ <BreadcrumbItem to="#">Section title</BreadcrumbItem>
295
+ <BreadcrumbItem to="#">Section title</BreadcrumbItem>
296
+ <BreadcrumbItem to="#" isActive>
297
+ Section landing
298
+ </BreadcrumbItem>
299
+ </Breadcrumb>
300
+ );
301
+
302
+ const notificationDrawerActions = (
303
+ <>
304
+ <DropdownItem key="markAllRead" onClick={markAllRead}>
305
+ Mark all read
306
+ </DropdownItem>
307
+ <DropdownItem key="clearAll" onClick={() => showNotifications(false)}>
308
+ Clear all
309
+ </DropdownItem>
310
+ <DropdownItem key="unclearLast" onClick={() => showNotifications(true)}>
311
+ Unclear last
312
+ </DropdownItem>
313
+ <DropdownItem key="settings">Settings</DropdownItem>
314
+ </>
315
+ );
316
+ const notificationDrawerDropdownItems = (
317
+ <>
318
+ <DropdownItem
319
+ key="link"
320
+ to="#"
321
+ // Prevent default onClick behavior for demo purposes
322
+ onClick={(ev: any) => ev.preventDefault()}
323
+ >
324
+ Link
325
+ </DropdownItem>
326
+ <DropdownItem key="action">Action</DropdownItem>
327
+ <Divider component="li" key="separator" />
328
+ <DropdownItem key="disabled link" isDisabled>
329
+ Disabled Link
330
+ </DropdownItem>
331
+ </>
332
+ );
333
+ const notificationDrawer = (
334
+ <NotificationDrawer ref={drawerRef}>
335
+ <NotificationDrawerHeader count={getNumberUnread()} onClose={onCloseNotificationDrawer}>
336
+ <Dropdown
337
+ onSelect={closeActionsMenu}
338
+ isOpen={isActionsMenuOpen['toggle-id-0'] || false}
339
+ id="notification-0"
340
+ onOpenChange={(isOpen: boolean) => !isOpen && closeActionsMenu()}
341
+ popperProps={{ position: 'right' }}
342
+ toggle={(toggleRef: React.RefObject<any>) => (
343
+ <MenuToggle
344
+ ref={toggleRef}
345
+ id="toggle-id-0"
346
+ aria-label="Notification drawer actions"
347
+ variant="plain"
348
+ onClick={() => onToggle('toggle-id-0')}
349
+ isExpanded={isActionsMenuOpen['toggle-id-0'] || false}
350
+ >
351
+ <EllipsisVIcon aria-hidden="true" />
352
+ </MenuToggle>
353
+ )}
354
+ >
355
+ <DropdownList>{notificationDrawerActions}</DropdownList>
356
+ </Dropdown>
357
+ </NotificationDrawerHeader>
358
+ <NotificationDrawerBody>
359
+ {shouldShowNotifications && (
360
+ <NotificationDrawerList>
361
+ <NotificationDrawerListItem
362
+ variant="info"
363
+ onClick={() => onListItemClick('notification-1')}
364
+ isRead={isUnreadMap === null || !isUnreadMap['notification-1']}
365
+ >
366
+ <NotificationDrawerListItemHeader
367
+ variant="info"
368
+ title="Unread info notification title"
369
+ srTitle="Info notification:"
370
+ >
371
+ <Dropdown
372
+ onSelect={closeActionsMenu}
373
+ isOpen={isActionsMenuOpen['toggle-id-1'] || false}
374
+ id="notification-1"
375
+ onOpenChange={(isOpen: boolean) => !isOpen && closeActionsMenu()}
376
+ popperProps={{ position: 'right' }}
377
+ toggle={(toggleRef: React.RefObject<any>) => (
378
+ <MenuToggle
379
+ ref={toggleRef}
380
+ id="toggle-id-1"
381
+ aria-label="Notification drawer actions"
382
+ variant="plain"
383
+ onClick={() => onToggle('toggle-id-1')}
384
+ isExpanded={isActionsMenuOpen['toggle-id-1'] || false}
385
+ >
386
+ <EllipsisVIcon aria-hidden="true" />
387
+ </MenuToggle>
388
+ )}
389
+ >
390
+ <DropdownList>{notificationDrawerDropdownItems}</DropdownList>
391
+ </Dropdown>
392
+ </NotificationDrawerListItemHeader>
393
+ <NotificationDrawerListItemBody timestamp="5 minutes ago">
394
+ This is an info notification description.
395
+ </NotificationDrawerListItemBody>
396
+ </NotificationDrawerListItem>
397
+ <NotificationDrawerListItem
398
+ variant="danger"
399
+ onClick={() => onListItemClick('notification-2')}
400
+ isRead={isUnreadMap === null || !isUnreadMap['notification-2']}
401
+ >
402
+ <NotificationDrawerListItemHeader
403
+ variant="danger"
404
+ title="Unread danger notification title. This is a long title to show how the title will wrap if it is long and wraps to multiple lines."
405
+ srTitle="Danger notification:"
406
+ >
407
+ <Dropdown
408
+ onSelect={closeActionsMenu}
409
+ isOpen={isActionsMenuOpen['toggle-id-2'] || false}
410
+ id="notification-2"
411
+ onOpenChange={(isOpen: boolean) => !isOpen && closeActionsMenu()}
412
+ popperProps={{ position: 'right' }}
413
+ toggle={(toggleRef: React.RefObject<any>) => (
414
+ <MenuToggle
415
+ ref={toggleRef}
416
+ id="toggle-id-2"
417
+ aria-label="Notification drawer actions"
418
+ variant="plain"
419
+ onClick={() => onToggle('toggle-id-2')}
420
+ isExpanded={isActionsMenuOpen['toggle-id-2'] || false}
421
+ >
422
+ <EllipsisVIcon aria-hidden="true" />
423
+ </MenuToggle>
424
+ )}
425
+ >
426
+ <DropdownList>{notificationDrawerDropdownItems}</DropdownList>
427
+ </Dropdown>
428
+ </NotificationDrawerListItemHeader>
429
+ <NotificationDrawerListItemBody timestamp="10 minutes ago">
430
+ This is a danger notification description. This is a long description to show how the title will wrap if
431
+ it is long and wraps to multiple lines.
432
+ </NotificationDrawerListItemBody>
433
+ </NotificationDrawerListItem>
434
+ <NotificationDrawerListItem
435
+ variant="warning"
436
+ onClick={() => onListItemClick('notification-3')}
437
+ isRead={isUnreadMap === null || !isUnreadMap['notification-3']}
438
+ >
439
+ <NotificationDrawerListItemHeader
440
+ variant="warning"
441
+ title="Read warning notification title"
442
+ srTitle="Warning notification:"
443
+ >
444
+ <Dropdown
445
+ onSelect={closeActionsMenu}
446
+ isOpen={isActionsMenuOpen['toggle-id-3'] || false}
447
+ id="notification-3"
448
+ onOpenChange={(isOpen: boolean) => !isOpen && closeActionsMenu()}
449
+ popperProps={{ position: 'right' }}
450
+ toggle={(toggleRef: React.RefObject<any>) => (
451
+ <MenuToggle
452
+ ref={toggleRef}
453
+ id="toggle-id-3"
454
+ aria-label="Notification drawer actions"
455
+ variant="plain"
456
+ onClick={() => onToggle('toggle-id-3')}
457
+ isExpanded={isActionsMenuOpen['toggle-id-3'] || false}
458
+ >
459
+ <EllipsisVIcon aria-hidden="true" />
460
+ </MenuToggle>
461
+ )}
462
+ >
463
+ <DropdownList>{notificationDrawerDropdownItems}</DropdownList>
464
+ </Dropdown>
465
+ </NotificationDrawerListItemHeader>
466
+ <NotificationDrawerListItemBody timestamp="20 minutes ago">
467
+ This is a warning notification description.
468
+ </NotificationDrawerListItemBody>
469
+ </NotificationDrawerListItem>
470
+ <NotificationDrawerListItem
471
+ variant="success"
472
+ onClick={() => onListItemClick('notification-4')}
473
+ isRead={isUnreadMap === null || !isUnreadMap['notification-4']}
474
+ >
475
+ <NotificationDrawerListItemHeader
476
+ variant="success"
477
+ title="Read success notification title"
478
+ srTitle="Success notification:"
479
+ >
480
+ <Dropdown
481
+ onSelect={closeActionsMenu}
482
+ isOpen={isActionsMenuOpen['toggle-id-4'] || false}
483
+ id="notification-4"
484
+ onOpenChange={(isOpen: boolean) => !isOpen && closeActionsMenu()}
485
+ popperProps={{ position: 'right' }}
486
+ toggle={(toggleRef: React.RefObject<any>) => (
487
+ <MenuToggle
488
+ ref={toggleRef}
489
+ id="toggle-id-4"
490
+ aria-label="Notification drawer actions"
491
+ variant="plain"
492
+ onClick={() => onToggle('toggle-id-4')}
493
+ isExpanded={isActionsMenuOpen['toggle-id-4'] || false}
494
+ >
495
+ <EllipsisVIcon aria-hidden="true" />
496
+ </MenuToggle>
497
+ )}
498
+ >
499
+ <DropdownList>{notificationDrawerDropdownItems}</DropdownList>
500
+ </Dropdown>
501
+ </NotificationDrawerListItemHeader>
502
+ <NotificationDrawerListItemBody timestamp="30 minutes ago">
503
+ This is a success notification description.
504
+ </NotificationDrawerListItemBody>
505
+ </NotificationDrawerListItem>
506
+ </NotificationDrawerList>
507
+ )}
508
+ {!shouldShowNotifications && (
509
+ <EmptyState variant={EmptyStateVariant.full}>
510
+ <EmptyStateHeader
511
+ headingLevel="h2"
512
+ titleText="No alerts found"
513
+ icon={<EmptyStateIcon icon={SearchIcon} />}
514
+ />
515
+ <EmptyStateBody>
516
+ There are currently no alerts. There may be silenced critical alerts however.
517
+ </EmptyStateBody>
518
+ <EmptyStateFooter>
519
+ <EmptyStateActions>
520
+ <Button variant="link">Action</Button>
521
+ </EmptyStateActions>
522
+ </EmptyStateFooter>
523
+ </EmptyState>
524
+ )}
525
+ </NotificationDrawerBody>
526
+ </NotificationDrawer>
527
+ );
528
+
529
+ return (
530
+ <React.Fragment>
531
+ <Page
532
+ header={Header}
533
+ sidebar={Sidebar}
534
+ isManagedSidebar
535
+ notificationDrawer={notificationDrawer}
536
+ onNotificationDrawerExpand={(
537
+ event: React.MouseEvent<Element, MouseEvent> | KeyboardEvent | React.TransitionEvent<Element>
538
+ ) => focusDrawer(event)}
539
+ isNotificationDrawerExpanded={isDrawerExpanded}
540
+ skipToContent={PageSkipToContent}
541
+ breadcrumb={PageBreadcrumb}
542
+ mainContainerId={pageId}
543
+ >
544
+ <PageSection variant={PageSectionVariants.light}>
545
+ <TextContent>
546
+ <Text component="h1">Main title</Text>
547
+ <Text component="p">
548
+ Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
549
+ of its relative line height of 1.5.
550
+ </Text>
551
+ </TextContent>
552
+ </PageSection>
553
+ <PageSection variant={PageSectionVariants.light}>Panel section content</PageSection>
554
+ </Page>
555
+ </React.Fragment>
556
+ );
557
+ };