@patternfly/react-core 5.0.0-alpha.87 → 5.0.0-alpha.89

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 (325) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/esm/components/AboutModal/package.json +1 -1
  3. package/dist/esm/components/Accordion/package.json +1 -1
  4. package/dist/esm/components/ActionList/package.json +1 -1
  5. package/dist/esm/components/Alert/package.json +1 -1
  6. package/dist/esm/components/Avatar/package.json +1 -1
  7. package/dist/esm/components/BackToTop/package.json +1 -1
  8. package/dist/esm/components/Backdrop/package.json +1 -1
  9. package/dist/esm/components/BackgroundImage/package.json +1 -1
  10. package/dist/esm/components/Badge/package.json +1 -1
  11. package/dist/esm/components/Banner/package.json +1 -1
  12. package/dist/esm/components/Brand/package.json +1 -1
  13. package/dist/esm/components/Breadcrumb/package.json +1 -1
  14. package/dist/esm/components/Button/package.json +1 -1
  15. package/dist/esm/components/CalendarMonth/package.json +1 -1
  16. package/dist/esm/components/Card/package.json +1 -1
  17. package/dist/esm/components/Checkbox/package.json +1 -1
  18. package/dist/esm/components/Chip/package.json +1 -1
  19. package/dist/esm/components/ClipboardCopy/package.json +1 -1
  20. package/dist/esm/components/CodeBlock/package.json +1 -1
  21. package/dist/esm/components/DataList/package.json +1 -1
  22. package/dist/esm/components/DatePicker/package.json +1 -1
  23. package/dist/esm/components/DescriptionList/package.json +1 -1
  24. package/dist/esm/components/Divider/package.json +1 -1
  25. package/dist/esm/components/DragDrop/package.json +1 -1
  26. package/dist/esm/components/Drawer/package.json +1 -1
  27. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  28. package/dist/esm/components/Dropdown/Dropdown.js +2 -4
  29. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  30. package/dist/esm/components/Dropdown/package.json +1 -1
  31. package/dist/esm/components/DualListSelector/package.json +1 -1
  32. package/dist/esm/components/EmptyState/package.json +1 -1
  33. package/dist/esm/components/ExpandableSection/package.json +1 -1
  34. package/dist/esm/components/FileUpload/package.json +1 -1
  35. package/dist/esm/components/Form/package.json +1 -1
  36. package/dist/esm/components/FormSelect/package.json +1 -1
  37. package/dist/esm/components/HelperText/package.json +1 -1
  38. package/dist/esm/components/Hint/package.json +1 -1
  39. package/dist/esm/components/Icon/package.json +1 -1
  40. package/dist/esm/components/InputGroup/package.json +1 -1
  41. package/dist/esm/components/JumpLinks/package.json +1 -1
  42. package/dist/esm/components/Label/package.json +1 -1
  43. package/dist/esm/components/LabelGroup/package.json +1 -1
  44. package/dist/esm/components/List/package.json +1 -1
  45. package/dist/esm/components/LoginPage/package.json +1 -1
  46. package/dist/esm/components/Masthead/package.json +1 -1
  47. package/dist/esm/components/Menu/package.json +1 -1
  48. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +3 -1
  49. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  50. package/dist/esm/components/MenuToggle/MenuToggle.js +1 -3
  51. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  52. package/dist/esm/components/MenuToggle/package.json +1 -1
  53. package/dist/esm/components/Modal/package.json +1 -1
  54. package/dist/esm/components/MultipleFileUpload/package.json +1 -1
  55. package/dist/esm/components/Nav/Nav.d.ts +4 -6
  56. package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
  57. package/dist/esm/components/Nav/Nav.js +3 -4
  58. package/dist/esm/components/Nav/Nav.js.map +1 -1
  59. package/dist/esm/components/Nav/NavItem.js +1 -1
  60. package/dist/esm/components/Nav/NavItem.js.map +1 -1
  61. package/dist/esm/components/Nav/package.json +1 -1
  62. package/dist/esm/components/NotificationBadge/package.json +1 -1
  63. package/dist/esm/components/NotificationDrawer/package.json +1 -1
  64. package/dist/esm/components/NumberInput/package.json +1 -1
  65. package/dist/esm/components/OverflowMenu/package.json +1 -1
  66. package/dist/esm/components/Page/package.json +1 -1
  67. package/dist/esm/components/Pagination/package.json +1 -1
  68. package/dist/esm/components/Panel/package.json +1 -1
  69. package/dist/esm/components/Popover/package.json +1 -1
  70. package/dist/esm/components/Progress/package.json +1 -1
  71. package/dist/esm/components/ProgressStepper/package.json +1 -1
  72. package/dist/esm/components/Radio/package.json +1 -1
  73. package/dist/esm/components/SearchInput/package.json +1 -1
  74. package/dist/esm/components/Select/package.json +1 -1
  75. package/dist/esm/components/Sidebar/package.json +1 -1
  76. package/dist/esm/components/SimpleList/package.json +1 -1
  77. package/dist/esm/components/Skeleton/package.json +1 -1
  78. package/dist/esm/components/SkipToContent/package.json +1 -1
  79. package/dist/esm/components/Slider/package.json +1 -1
  80. package/dist/esm/components/Spinner/package.json +1 -1
  81. package/dist/esm/components/Switch/package.json +1 -1
  82. package/dist/esm/components/Tabs/package.json +1 -1
  83. package/dist/esm/components/Text/package.json +1 -1
  84. package/dist/esm/components/TextArea/package.json +1 -1
  85. package/dist/esm/components/TextInput/package.json +1 -1
  86. package/dist/esm/components/TextInputGroup/package.json +1 -1
  87. package/dist/esm/components/Tile/package.json +1 -1
  88. package/dist/esm/components/TimePicker/package.json +1 -1
  89. package/dist/esm/components/Timestamp/package.json +1 -1
  90. package/dist/esm/components/Title/package.json +1 -1
  91. package/dist/esm/components/ToggleGroup/package.json +1 -1
  92. package/dist/esm/components/Toolbar/package.json +1 -1
  93. package/dist/esm/components/Tooltip/package.json +1 -1
  94. package/dist/esm/components/TreeView/package.json +1 -1
  95. package/dist/esm/components/Truncate/package.json +1 -1
  96. package/dist/esm/components/Wizard/hooks/package.json +1 -1
  97. package/dist/esm/components/Wizard/package.json +1 -1
  98. package/dist/esm/components/package.json +1 -1
  99. package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
  100. package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
  101. package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
  102. package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
  103. package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
  104. package/dist/esm/deprecated/components/Select/package.json +1 -1
  105. package/dist/esm/deprecated/components/Wizard/package.json +1 -1
  106. package/dist/esm/deprecated/components/package.json +1 -1
  107. package/dist/esm/deprecated/package.json +1 -1
  108. package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  109. package/dist/esm/helpers/package.json +1 -1
  110. package/dist/esm/layouts/Bullseye/package.json +1 -1
  111. package/dist/esm/layouts/Flex/package.json +1 -1
  112. package/dist/esm/layouts/Gallery/package.json +1 -1
  113. package/dist/esm/layouts/Grid/package.json +1 -1
  114. package/dist/esm/layouts/Level/package.json +1 -1
  115. package/dist/esm/layouts/Split/package.json +1 -1
  116. package/dist/esm/layouts/Stack/package.json +1 -1
  117. package/dist/esm/layouts/package.json +1 -1
  118. package/dist/esm/next/components/package.json +1 -1
  119. package/dist/esm/next/package.json +1 -1
  120. package/dist/esm/package.json +1 -1
  121. package/dist/js/components/AboutModal/package.json +1 -1
  122. package/dist/js/components/Accordion/package.json +1 -1
  123. package/dist/js/components/ActionList/package.json +1 -1
  124. package/dist/js/components/Alert/package.json +1 -1
  125. package/dist/js/components/Avatar/package.json +1 -1
  126. package/dist/js/components/BackToTop/package.json +1 -1
  127. package/dist/js/components/Backdrop/package.json +1 -1
  128. package/dist/js/components/BackgroundImage/package.json +1 -1
  129. package/dist/js/components/Badge/package.json +1 -1
  130. package/dist/js/components/Banner/package.json +1 -1
  131. package/dist/js/components/Brand/package.json +1 -1
  132. package/dist/js/components/Breadcrumb/package.json +1 -1
  133. package/dist/js/components/Button/package.json +1 -1
  134. package/dist/js/components/CalendarMonth/package.json +1 -1
  135. package/dist/js/components/Card/package.json +1 -1
  136. package/dist/js/components/Checkbox/package.json +1 -1
  137. package/dist/js/components/Chip/package.json +1 -1
  138. package/dist/js/components/ClipboardCopy/package.json +1 -1
  139. package/dist/js/components/CodeBlock/package.json +1 -1
  140. package/dist/js/components/DataList/package.json +1 -1
  141. package/dist/js/components/DatePicker/package.json +1 -1
  142. package/dist/js/components/DescriptionList/package.json +1 -1
  143. package/dist/js/components/Divider/package.json +1 -1
  144. package/dist/js/components/DragDrop/package.json +1 -1
  145. package/dist/js/components/Drawer/package.json +1 -1
  146. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  147. package/dist/js/components/Dropdown/Dropdown.js +2 -4
  148. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  149. package/dist/js/components/Dropdown/package.json +1 -1
  150. package/dist/js/components/DualListSelector/package.json +1 -1
  151. package/dist/js/components/EmptyState/package.json +1 -1
  152. package/dist/js/components/ExpandableSection/package.json +1 -1
  153. package/dist/js/components/FileUpload/package.json +1 -1
  154. package/dist/js/components/Form/package.json +1 -1
  155. package/dist/js/components/FormSelect/package.json +1 -1
  156. package/dist/js/components/HelperText/package.json +1 -1
  157. package/dist/js/components/Hint/package.json +1 -1
  158. package/dist/js/components/Icon/package.json +1 -1
  159. package/dist/js/components/InputGroup/package.json +1 -1
  160. package/dist/js/components/JumpLinks/package.json +1 -1
  161. package/dist/js/components/Label/package.json +1 -1
  162. package/dist/js/components/LabelGroup/package.json +1 -1
  163. package/dist/js/components/List/package.json +1 -1
  164. package/dist/js/components/LoginPage/package.json +1 -1
  165. package/dist/js/components/Masthead/package.json +1 -1
  166. package/dist/js/components/Menu/package.json +1 -1
  167. package/dist/js/components/MenuToggle/MenuToggle.d.ts +3 -1
  168. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  169. package/dist/js/components/MenuToggle/MenuToggle.js +1 -3
  170. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  171. package/dist/js/components/MenuToggle/package.json +1 -1
  172. package/dist/js/components/Modal/package.json +1 -1
  173. package/dist/js/components/MultipleFileUpload/package.json +1 -1
  174. package/dist/js/components/Nav/Nav.d.ts +4 -6
  175. package/dist/js/components/Nav/Nav.d.ts.map +1 -1
  176. package/dist/js/components/Nav/Nav.js +3 -4
  177. package/dist/js/components/Nav/Nav.js.map +1 -1
  178. package/dist/js/components/Nav/NavItem.js +1 -1
  179. package/dist/js/components/Nav/NavItem.js.map +1 -1
  180. package/dist/js/components/Nav/package.json +1 -1
  181. package/dist/js/components/NotificationBadge/package.json +1 -1
  182. package/dist/js/components/NotificationDrawer/package.json +1 -1
  183. package/dist/js/components/NumberInput/package.json +1 -1
  184. package/dist/js/components/OverflowMenu/package.json +1 -1
  185. package/dist/js/components/Page/package.json +1 -1
  186. package/dist/js/components/Pagination/package.json +1 -1
  187. package/dist/js/components/Panel/package.json +1 -1
  188. package/dist/js/components/Popover/package.json +1 -1
  189. package/dist/js/components/Progress/package.json +1 -1
  190. package/dist/js/components/ProgressStepper/package.json +1 -1
  191. package/dist/js/components/Radio/package.json +1 -1
  192. package/dist/js/components/SearchInput/package.json +1 -1
  193. package/dist/js/components/Select/package.json +1 -1
  194. package/dist/js/components/Sidebar/package.json +1 -1
  195. package/dist/js/components/SimpleList/package.json +1 -1
  196. package/dist/js/components/Skeleton/package.json +1 -1
  197. package/dist/js/components/SkipToContent/package.json +1 -1
  198. package/dist/js/components/Slider/package.json +1 -1
  199. package/dist/js/components/Spinner/package.json +1 -1
  200. package/dist/js/components/Switch/package.json +1 -1
  201. package/dist/js/components/Tabs/package.json +1 -1
  202. package/dist/js/components/Text/package.json +1 -1
  203. package/dist/js/components/TextArea/package.json +1 -1
  204. package/dist/js/components/TextInput/package.json +1 -1
  205. package/dist/js/components/TextInputGroup/package.json +1 -1
  206. package/dist/js/components/Tile/package.json +1 -1
  207. package/dist/js/components/TimePicker/package.json +1 -1
  208. package/dist/js/components/Timestamp/package.json +1 -1
  209. package/dist/js/components/Title/package.json +1 -1
  210. package/dist/js/components/ToggleGroup/package.json +1 -1
  211. package/dist/js/components/Toolbar/package.json +1 -1
  212. package/dist/js/components/Tooltip/package.json +1 -1
  213. package/dist/js/components/TreeView/package.json +1 -1
  214. package/dist/js/components/Truncate/package.json +1 -1
  215. package/dist/js/components/Wizard/hooks/package.json +1 -1
  216. package/dist/js/components/Wizard/package.json +1 -1
  217. package/dist/js/components/package.json +1 -1
  218. package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
  219. package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
  220. package/dist/js/deprecated/components/Dropdown/package.json +1 -1
  221. package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
  222. package/dist/js/deprecated/components/PageHeader/package.json +1 -1
  223. package/dist/js/deprecated/components/Select/package.json +1 -1
  224. package/dist/js/deprecated/components/Wizard/package.json +1 -1
  225. package/dist/js/deprecated/components/package.json +1 -1
  226. package/dist/js/deprecated/package.json +1 -1
  227. package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  228. package/dist/js/helpers/package.json +1 -1
  229. package/dist/js/layouts/Bullseye/package.json +1 -1
  230. package/dist/js/layouts/Flex/package.json +1 -1
  231. package/dist/js/layouts/Gallery/package.json +1 -1
  232. package/dist/js/layouts/Grid/package.json +1 -1
  233. package/dist/js/layouts/Level/package.json +1 -1
  234. package/dist/js/layouts/Split/package.json +1 -1
  235. package/dist/js/layouts/Stack/package.json +1 -1
  236. package/dist/js/layouts/package.json +1 -1
  237. package/dist/js/next/components/package.json +1 -1
  238. package/dist/js/next/package.json +1 -1
  239. package/dist/js/package.json +1 -1
  240. package/dist/umd/react-core.min.js +1 -1
  241. package/package.json +2 -2
  242. package/src/components/ActionList/examples/ActionList.md +1 -6
  243. package/src/components/ActionList/examples/ActionListSingleGroup.tsx +50 -38
  244. package/src/components/Breadcrumb/examples/Breadcrumb.md +1 -5
  245. package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +34 -21
  246. package/src/components/Card/examples/Card.md +9 -14
  247. package/src/components/Card/examples/CardExpandable.tsx +44 -31
  248. package/src/components/Card/examples/CardExpandableWithIcon.tsx +50 -29
  249. package/src/components/Card/examples/CardHeaderInCardHead.tsx +50 -29
  250. package/src/components/Card/examples/CardLegacySelectable.tsx +52 -33
  251. package/src/components/Card/examples/CardOnlyActionsInCardHead.tsx +48 -29
  252. package/src/components/Card/examples/CardSelectable.tsx +52 -36
  253. package/src/components/Card/examples/CardWithImageAndActions.tsx +51 -29
  254. package/src/components/DataList/__tests__/DataList.test.tsx +10 -11
  255. package/src/components/DataList/__tests__/__snapshots__/DataList.test.tsx.snap +86 -19
  256. package/src/components/DataList/examples/DataList.md +1 -6
  257. package/src/components/DataList/examples/DataListActions.tsx +39 -23
  258. package/src/components/DataList/examples/DataListCheckboxes.tsx +106 -61
  259. package/src/components/DataList/examples/DataListExpandable.tsx +103 -55
  260. package/src/components/DataList/examples/DataListMixedExpandable.tsx +105 -57
  261. package/src/components/DataList/examples/DataListSelectableRows.tsx +71 -39
  262. package/src/components/DataList/examples/DataListWidthModifiers.tsx +81 -39
  263. package/src/components/Dropdown/Dropdown.tsx +10 -13
  264. package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +29 -32
  265. package/src/components/Dropdown/examples/Dropdown.md +0 -1
  266. package/src/components/Dropdown/examples/DropdownBasic.tsx +22 -16
  267. package/src/components/Dropdown/examples/DropdownWithDescriptions.tsx +13 -18
  268. package/src/components/Dropdown/examples/DropdownWithGroups.tsx +30 -16
  269. package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +22 -16
  270. package/src/components/DualListSelector/examples/DualListSelector.md +1 -5
  271. package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +60 -36
  272. package/src/components/Hint/examples/Hint.md +1 -6
  273. package/src/components/Hint/examples/HintBasicWithTitle.tsx +58 -32
  274. package/src/components/Hint/examples/HintBasicWithoutTitle.tsx +57 -32
  275. package/src/components/InputGroup/examples/InputGroup.md +0 -5
  276. package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +32 -24
  277. package/src/components/Menu/examples/Menu.md +1 -5
  278. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +120 -89
  279. package/src/components/MenuToggle/MenuToggle.tsx +4 -3
  280. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +10 -18
  281. package/src/components/MenuToggle/examples/MenuToggle.md +35 -5
  282. package/src/components/Modal/examples/Modal.md +0 -5
  283. package/src/components/Modal/examples/ModalWithDropdown.tsx +40 -34
  284. package/src/components/Nav/Nav.tsx +20 -23
  285. package/src/components/Nav/NavItem.tsx +1 -1
  286. package/src/components/Nav/examples/Nav.md +24 -0
  287. package/src/components/Nav/examples/NavDefault.tsx +1 -1
  288. package/src/components/Nav/examples/NavExpandable.tsx +8 -2
  289. package/src/components/Nav/examples/NavExpandableThirdLevel.tsx +8 -2
  290. package/src/components/Nav/examples/NavFlyout.tsx +1 -1
  291. package/src/components/Nav/examples/NavGrouped.tsx +1 -1
  292. package/src/components/Nav/examples/NavHorizontalSubNav.tsx +2 -2
  293. package/src/components/Nav/examples/NavLegacyTertiary.tsx +2 -2
  294. package/src/components/Nav/examples/NavMixed.tsx +4 -1
  295. package/src/components/NotificationDrawer/examples/NotificationDrawer.md +1 -8
  296. package/src/components/NotificationDrawer/examples/NotificationDrawerBasic.tsx +145 -72
  297. package/src/components/NotificationDrawer/examples/NotificationDrawerGroups.tsx +187 -131
  298. package/src/components/Toolbar/examples/Toolbar.md +0 -9
  299. package/src/components/Toolbar/examples/ToolbarStacked.tsx +75 -58
  300. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +57 -88
  301. package/src/components/TreeView/examples/TreeView.md +42 -30
  302. package/src/demos/AlertGroup.md +1 -6
  303. package/src/demos/Card/Card.md +75 -80
  304. package/src/demos/CardDemos.md +40 -34
  305. package/src/demos/DataListDemo.md +130 -70
  306. package/src/demos/DatePicker/DatePicker.md +1 -89
  307. package/src/demos/DateTimePicker.md +90 -5
  308. package/src/demos/Masthead.md +1 -7
  309. package/src/demos/Nav.md +225 -167
  310. package/src/demos/NotificationDrawer/NotificationDrawer.md +487 -357
  311. package/src/demos/Page.md +1 -7
  312. package/src/demos/PrimaryDetail.md +193 -211
  313. package/src/demos/SearchInput/SearchInput.md +165 -124
  314. package/src/demos/Tabs.md +0 -1
  315. package/src/demos/Toolbar.md +169 -190
  316. package/src/demos/Wizard/WizardDemo.md +2 -2
  317. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +61 -49
  318. package/src/demos/examples/DashboardHeader.js +96 -81
  319. package/src/demos/examples/DashboardWrapper.js +1 -1
  320. package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +29 -26
  321. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +85 -71
  322. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +91 -76
  323. package/src/demos/examples/Page/PageStickySectionGroup.tsx +91 -76
  324. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +91 -76
  325. package/src/demos/examples/Tabs/TabsAndTable.tsx +12 -6
@@ -25,15 +25,14 @@ import {
25
25
  AlertGroup,
26
26
  AlertActionCloseButton,
27
27
  ToolbarItem,
28
+ Dropdown,
29
+ DropdownList,
30
+ DropdownItem,
31
+ MenuToggle,
32
+ MenuToggleElement
28
33
  } from '@patternfly/react-core';
29
- import {
30
- Dropdown as DropdownDeprecated,
31
- DropdownItem as DropdownItemDeprecated,
32
- KebabToggle,
33
- DropdownPosition
34
- } from '@patternfly/react-core/deprecated';
35
-
36
34
  import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
35
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
37
36
  import DashboardWrapper from '../DashboardWrapper';
38
37
  import DashboardHeader from '../DashboardHeader';
39
38
 
@@ -146,8 +145,8 @@ export const AlertGroupToastWithNotificationDrawer: React.FunctionComponent = ()
146
145
  setDrawerExpanded(!isDrawerExpanded);
147
146
  };
148
147
 
149
- const onDropdownToggle = (id: React.Key, isActive: boolean) => {
150
- if (isActive) {
148
+ const onDropdownToggle = (id: React.Key) => {
149
+ if (id && openDropdownKey !== id) {
151
150
  setOpenDropdownKey(id);
152
151
  return;
153
152
  }
@@ -218,46 +217,53 @@ export const AlertGroupToastWithNotificationDrawer: React.FunctionComponent = ()
218
217
  </ToolbarItem>
219
218
  );
220
219
 
221
- const notificationDrawerActions = [
222
- <DropdownItemDeprecated key="markAllRead" onClick={markAllNotificationsRead} component="button">
223
- Mark all read
224
- </DropdownItemDeprecated>,
225
- <DropdownItemDeprecated key="clearAll" onClick={removeAllNotifications} component="button">
226
- Clear all
227
- </DropdownItemDeprecated>
228
- ];
229
-
220
+ const notificationDrawerActions = (
221
+ <>
222
+ <DropdownItem key="markAllRead" onClick={markAllNotificationsRead}>
223
+ Mark all read
224
+ </DropdownItem>
225
+ <DropdownItem key="clearAll" onClick={removeAllNotifications}>
226
+ Clear all
227
+ </DropdownItem>
228
+ </>
229
+ );
230
230
  const notificationDrawerDropdownItems = (key: React.Key) => [
231
- <DropdownItemDeprecated key="markRead" component="button" onClick={() => markNotificationRead(key)}>
231
+ <DropdownItem key={`markRead-${key}`} onClick={() => markNotificationRead(key)}>
232
232
  Mark as read
233
- </DropdownItemDeprecated>,
234
- <DropdownItemDeprecated key="action" component="button" onClick={() => removeNotification(key)}>
233
+ </DropdownItem>,
234
+ <DropdownItem key={`clear-${key}`} onClick={() => removeNotification(key)}>
235
235
  Clear
236
- </DropdownItemDeprecated>
236
+ </DropdownItem>
237
237
  ];
238
238
 
239
239
  const notificationDrawer = (
240
240
  <NotificationDrawer>
241
241
  <NotificationDrawerHeader count={getUnreadNotificationsNumber()} onClose={(_event) => setDrawerExpanded(false)}>
242
- <DropdownDeprecated
243
- onSelect={onDropdownSelect}
244
- toggle={
245
- <KebabToggle
246
- onToggle={(_event: any, isActive: boolean) => onDropdownToggle('dropdown-toggle-id-0', isActive)}
247
- id="dropdown-toggle-id-0"
248
- />
249
- }
250
- isOpen={openDropdownKey === 'dropdown-toggle-id-0'}
251
- isPlain
252
- dropdownItems={notificationDrawerActions}
242
+ <Dropdown
253
243
  id="notification-drawer-0"
254
- position={DropdownPosition.right}
255
- />
244
+ isOpen={openDropdownKey === 'dropdown-toggle-id-0'}
245
+ onSelect={onDropdownSelect}
246
+ popperProps={{ position: 'right' }}
247
+ onOpenChange={(isOpen: boolean) => !isOpen && setOpenDropdownKey(null)}
248
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
249
+ <MenuToggle
250
+ ref={toggleRef}
251
+ isExpanded={openDropdownKey === 'dropdown-toggle-id-0'}
252
+ variant="plain"
253
+ onClick={() => onDropdownToggle('dropdown-toggle-id-0')}
254
+ aria-label="Notification drawer actions"
255
+ >
256
+ <EllipsisVIcon aria-hidden="true" />
257
+ </MenuToggle>
258
+ )}
259
+ >
260
+ <DropdownList>{notificationDrawerActions}</DropdownList>
261
+ </Dropdown>
256
262
  </NotificationDrawerHeader>
257
263
  <NotificationDrawerBody>
258
264
  {notifications.length !== 0 && (
259
265
  <NotificationDrawerList>
260
- {notifications.map(({ key, variant, title, srTitle, description, timestamp }) => (
266
+ {notifications.map(({ key, variant, title, srTitle, description, timestamp }, index) => (
261
267
  <NotificationDrawerListItem
262
268
  key={key}
263
269
  variant={variant}
@@ -265,20 +271,26 @@ export const AlertGroupToastWithNotificationDrawer: React.FunctionComponent = ()
265
271
  onClick={() => markNotificationRead(key)}
266
272
  >
267
273
  <NotificationDrawerListItemHeader variant={variant} title={title} srTitle={srTitle}>
268
- <DropdownDeprecated
269
- position={DropdownPosition.right}
270
- onSelect={onDropdownSelect}
271
- toggle={
272
- <KebabToggle
273
- onToggle={(_event: any, isActive: boolean) => onDropdownToggle(key, isActive)}
274
- id={key.toString()}
275
- />
276
- }
277
- isOpen={openDropdownKey === key}
278
- isPlain
279
- dropdownItems={notificationDrawerDropdownItems(key)}
274
+ <Dropdown
280
275
  id={key.toString()}
281
- />
276
+ isOpen={openDropdownKey === key}
277
+ onSelect={onDropdownSelect}
278
+ popperProps={{ position: 'right' }}
279
+ onOpenChange={(isOpen: boolean) => !isOpen && setOpenDropdownKey(null)}
280
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
281
+ <MenuToggle
282
+ ref={toggleRef}
283
+ isExpanded={openDropdownKey === key}
284
+ variant="plain"
285
+ onClick={() => onDropdownToggle(key)}
286
+ aria-label={`Notification ${index + 1} actions`}
287
+ >
288
+ <EllipsisVIcon aria-hidden="true" />
289
+ </MenuToggle>
290
+ )}
291
+ >
292
+ <DropdownList>{notificationDrawerDropdownItems(key)}</DropdownList>
293
+ </Dropdown>
282
294
  </NotificationDrawerListItemHeader>
283
295
  <NotificationDrawerListItemBody timestamp={timestamp}> {description} </NotificationDrawerListItemBody>
284
296
  </NotificationDrawerListItem>
@@ -5,29 +5,28 @@ import {
5
5
  Button,
6
6
  ButtonVariant,
7
7
  Divider,
8
+ Dropdown,
9
+ DropdownGroup,
10
+ DropdownItem,
11
+ DropdownList,
8
12
  Masthead,
9
13
  MastheadToggle,
10
14
  MastheadMain,
11
15
  MastheadBrand,
12
16
  MastheadContent,
17
+ MenuToggle,
13
18
  Toolbar,
14
19
  ToolbarContent,
15
20
  ToolbarGroup,
16
21
  ToolbarItem,
17
- PageToggleButton,
22
+ PageToggleButton
18
23
  } from '@patternfly/react-core';
19
- import {
20
- Dropdown as DropdownDeprecated,
21
- DropdownGroup as DropdownGroupDeprecated,
22
- DropdownToggle,
23
- DropdownItem as DropdownItemDeprecated,
24
- KebabToggle
25
- } from '@patternfly/react-core/deprecated';
26
24
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
27
25
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
28
26
  import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
29
27
  import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
30
28
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
29
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
31
30
  import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
32
31
  import pfColorLogo from '@patternfly/react-core/src/demos/examples/pfColorLogo.svg';
33
32
 
@@ -41,39 +40,39 @@ export default class DashboardHeader extends React.Component {
41
40
  activeItem: 0
42
41
  };
43
42
 
44
- this.onDropdownToggle = (_event, isDropdownOpen) => {
45
- this.setState({
46
- isDropdownOpen
47
- });
43
+ this.onDropdownToggle = () => {
44
+ this.setState((prevState) => ({
45
+ isDropdownOpen: !prevState.isDropdownOpen
46
+ }));
48
47
  };
49
48
 
50
49
  this.onDropdownSelect = () => {
51
50
  this.setState({
52
- isDropdownOpen: !this.state.isDropdownOpen
51
+ isDropdownOpen: false
53
52
  });
54
53
  };
55
54
 
56
- this.onKebabDropdownToggle = (_event, isKebabDropdownOpen) => {
57
- this.setState({
58
- isKebabDropdownOpen
59
- });
55
+ this.onKebabDropdownToggle = () => {
56
+ this.setState((prevState) => ({
57
+ isKebabDropdownOpen: !prevState.isKebabDropdownOpen
58
+ }));
60
59
  };
61
60
 
62
61
  this.onKebabDropdownSelect = () => {
63
62
  this.setState({
64
- isKebabDropdownOpen: !this.state.isKebabDropdownOpen
63
+ isKebabDropdownOpen: false
65
64
  });
66
65
  };
67
66
 
68
- this.onFullKebabToggle = (_event, isFullKebabDropdownOpen) => {
69
- this.setState({
70
- isFullKebabDropdownOpen
71
- });
67
+ this.onFullKebabToggle = () => {
68
+ this.setState((prevState) => ({
69
+ isFullKebabDropdownOpen: !prevState.isFullKebabDropdownOpen
70
+ }));
72
71
  };
73
72
 
74
73
  this.onFullKebabSelect = () => {
75
74
  this.setState({
76
- isFullKebabDropdownOpen: !this.state.isFullKebabDropdownOpen
75
+ isFullKebabDropdownOpen: false
77
76
  });
78
77
  };
79
78
  }
@@ -82,41 +81,23 @@ export default class DashboardHeader extends React.Component {
82
81
  const { isDropdownOpen, isKebabDropdownOpen, isFullKebabDropdownOpen } = this.state;
83
82
  const { notificationBadge } = this.props;
84
83
 
85
- const kebabDropdownItems = [
86
- <DropdownItemDeprecated key="settings">
87
- <CogIcon /> Settings
88
- </DropdownItemDeprecated>,
89
- <DropdownItemDeprecated key="help">
90
- <HelpIcon /> Help
91
- </DropdownItemDeprecated>
92
- ];
93
-
94
- const fullKebabItems = [
95
- <DropdownGroupDeprecated key="group 2">
96
- <DropdownItemDeprecated key="group 2 profile">My profile</DropdownItemDeprecated>
97
- <DropdownItemDeprecated key="group 2 user" component="button">
98
- User management
99
- </DropdownItemDeprecated>
100
- <DropdownItemDeprecated key="group 2 logout">Logout</DropdownItemDeprecated>
101
- </DropdownGroupDeprecated>,
102
- <Divider key="divider" />,
103
- <DropdownItemDeprecated key="settings">
104
- <CogIcon /> Settings
105
- </DropdownItemDeprecated>,
106
- <DropdownItemDeprecated key="help">
107
- <HelpIcon /> Help
108
- </DropdownItemDeprecated>
109
- ];
110
-
111
- const userDropdownItems = [
112
- <DropdownGroupDeprecated key="group 2">
113
- <DropdownItemDeprecated key="group 2 profile">My profile</DropdownItemDeprecated>
114
- <DropdownItemDeprecated key="group 2 user" component="button">
115
- User management
116
- </DropdownItemDeprecated>
117
- <DropdownItemDeprecated key="group 2 logout">Logout</DropdownItemDeprecated>
118
- </DropdownGroupDeprecated>
119
- ];
84
+ const kebabDropdownItems = (
85
+ <>
86
+ <DropdownItem>
87
+ <CogIcon /> Settings
88
+ </DropdownItem>
89
+ <DropdownItem>
90
+ <HelpIcon /> Help
91
+ </DropdownItem>
92
+ </>
93
+ );
94
+ const userDropdownItems = (
95
+ <>
96
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
97
+ <DropdownItem key="group 2 user">User management</DropdownItem>
98
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
99
+ </>
100
+ );
120
101
 
121
102
  const headerToolbar = (
122
103
  <Toolbar id="toolbar" isFullHeight isStatic>
@@ -147,38 +128,72 @@ export default class DashboardHeader extends React.Component {
147
128
  </ToolbarItem>
148
129
  </ToolbarGroup>
149
130
  <ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
150
- <DropdownDeprecated
151
- isPlain
152
- position="right"
153
- onSelect={this.onKebabDropdownSelect}
154
- toggle={<KebabToggle onToggle={this.onKebabDropdownToggle} />}
131
+ <Dropdown
155
132
  isOpen={isKebabDropdownOpen}
156
- dropdownItems={kebabDropdownItems}
157
- />
133
+ onSelect={this.onKebabDropdownSelect}
134
+ onOpenChange={(isOpen) => this.setState({ isKebabDropdownOpen: isOpen })}
135
+ popperProps={{ position: 'right' }}
136
+ toggle={(toggleRef) => (
137
+ <MenuToggle
138
+ ref={toggleRef}
139
+ isExpanded={isKebabDropdownOpen}
140
+ onClick={this.onKebabDropdownToggle}
141
+ variant="plain"
142
+ aria-label="Settings and help"
143
+ >
144
+ <EllipsisVIcon aria-hidden="true" />
145
+ </MenuToggle>
146
+ )}
147
+ >
148
+ <DropdownList>{kebabDropdownItems}</DropdownList>
149
+ </Dropdown>
158
150
  </ToolbarItem>
159
151
  <ToolbarItem visibility={{ md: 'hidden' }}>
160
- <DropdownDeprecated
161
- isPlain
162
- position="right"
163
- onSelect={this.onFullKebabSelect}
164
- toggle={<KebabToggle onToggle={this.onFullKebabToggle} />}
152
+ <Dropdown
165
153
  isOpen={isFullKebabDropdownOpen}
166
- dropdownItems={fullKebabItems}
167
- />
154
+ onSelect={this.onFullKebabSelect}
155
+ onOpenChange={(isOpen) => this.setState({ isFullKebabDropdownOpen: isOpen })}
156
+ popperProps={{ position: 'right' }}
157
+ toggle={(toggleRef) => (
158
+ <MenuToggle
159
+ ref={toggleRef}
160
+ isExpanded={isFullKebabDropdownOpen}
161
+ onClick={this.onFullKebabToggle}
162
+ variant="plain"
163
+ aria-label="Toolbar menu"
164
+ >
165
+ <EllipsisVIcon aria-hidden="true" />
166
+ </MenuToggle>
167
+ )}
168
+ >
169
+ <DropdownGroup key="group 2" aria-label="User actions">
170
+ <DropdownList>{userDropdownItems}</DropdownList>
171
+ </DropdownGroup>
172
+ <Divider />
173
+ <DropdownList>{kebabDropdownItems}</DropdownList>
174
+ </Dropdown>
168
175
  </ToolbarItem>
169
176
  </ToolbarGroup>
170
177
  <ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
171
- <DropdownDeprecated
172
- isFullHeight
173
- onSelect={this.onDropdownSelect}
178
+ <Dropdown
174
179
  isOpen={isDropdownOpen}
175
- toggle={
176
- <DropdownToggle icon={<Avatar src={imgAvatar} alt="Avatar" />} onToggle={this.onDropdownToggle}>
180
+ onSelect={this.onDropdownSelect}
181
+ onOpenChange={(isOpen) => this.setState({ isDropdownOpen: isOpen })}
182
+ popperProps={{ position: 'right' }}
183
+ toggle={(toggleRef) => (
184
+ <MenuToggle
185
+ ref={toggleRef}
186
+ isExpanded={isDropdownOpen}
187
+ onClick={this.onDropdownToggle}
188
+ icon={<Avatar src={imgAvatar} alt="" />}
189
+ isFullHeight
190
+ >
177
191
  Ned Username
178
- </DropdownToggle>
179
- }
180
- dropdownItems={userDropdownItems}
181
- />
192
+ </MenuToggle>
193
+ )}
194
+ >
195
+ <DropdownList>{userDropdownItems}</DropdownList>
196
+ </Dropdown>
182
197
  </ToolbarItem>
183
198
  </ToolbarContent>
184
199
  </Toolbar>
@@ -42,7 +42,7 @@ export default class DashboardWrapper extends React.Component {
42
42
  activeItem: 1
43
43
  };
44
44
 
45
- this.onNavSelect = (result) => {
45
+ this.onNavSelect = (_event, result) => {
46
46
  this.setState({
47
47
  activeItem: result.itemId
48
48
  });
@@ -1,10 +1,16 @@
1
1
  import React from 'react';
2
- import { CalendarMonth, InputGroup, TextInput, Button, Popover } from '@patternfly/react-core';
3
2
  import {
4
- Dropdown as DropdownDeprecated,
5
- DropdownToggle,
6
- DropdownItem as DropdownItemDeprecated
7
- } from '@patternfly/react-core/deprecated';
3
+ CalendarMonth,
4
+ InputGroup,
5
+ TextInput,
6
+ Button,
7
+ Popover,
8
+ Dropdown,
9
+ DropdownItem,
10
+ DropdownList,
11
+ MenuToggle,
12
+ MenuToggleElement
13
+ } from '@patternfly/react-core';
8
14
  import OutlinedCalendarAltIcon from '@patternfly/react-icons/dist/esm/icons/outlined-calendar-alt-icon';
9
15
  import OutlinedClockIcon from '@patternfly/react-icons/dist/esm/icons/outlined-clock-icon';
10
16
 
@@ -23,7 +29,7 @@ export const DateTimePicker: React.FunctionComponent = () => {
23
29
  setIsTimeOpen(false);
24
30
  };
25
31
 
26
- const onToggleTime = (_event: any, _value: boolean) => {
32
+ const onToggleTime = () => {
27
33
  setIsTimeOpen(!isTimeOpen);
28
34
  setIsCalendarOpen(false);
29
35
  };
@@ -38,35 +44,32 @@ export const DateTimePicker: React.FunctionComponent = () => {
38
44
  }
39
45
  };
40
46
 
41
- const onSelectTime = (ev: React.SyntheticEvent<HTMLDivElement>) => {
42
- setValueTime(ev.currentTarget.textContent);
47
+ const onSelectTime = (ev: React.MouseEvent<Element, MouseEvent> | undefined) => {
48
+ setValueTime(ev?.currentTarget?.textContent as string);
43
49
  setIsTimeOpen(!isTimeOpen);
44
50
  };
45
51
 
46
- const timeOptions = times.map((time) => (
47
- <DropdownItemDeprecated key={time} component="button" value={`${time}:00`}>
48
- {`${time}:00`}
49
- </DropdownItemDeprecated>
50
- ));
52
+ const timeOptions = times.map((time) => <DropdownItem key={time}>{`${time}:00`}</DropdownItem>);
51
53
 
52
54
  const calendar = <CalendarMonth date={new Date(valueDate)} onChange={onSelectCalendar} />;
53
55
 
54
56
  const time = (
55
- <DropdownDeprecated
57
+ <Dropdown
56
58
  onSelect={onSelectTime}
57
- toggle={
58
- <DropdownToggle
59
- aria-label="Toggle the time picker menu"
60
- toggleIndicator={null}
61
- onToggle={onToggleTime}
62
- style={{ padding: '6px 16px' }}
63
- >
64
- <OutlinedClockIcon />
65
- </DropdownToggle>
66
- }
67
59
  isOpen={isTimeOpen}
68
- dropdownItems={timeOptions}
69
- />
60
+ onOpenChange={(isOpen: boolean) => setIsTimeOpen(isOpen)}
61
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
62
+ <MenuToggle
63
+ ref={toggleRef}
64
+ onClick={onToggleTime}
65
+ isExpanded={isTimeOpen}
66
+ aria-label="Time picker"
67
+ icon={<OutlinedClockIcon aria-hidden="true" />}
68
+ />
69
+ )}
70
+ >
71
+ <DropdownList>{timeOptions}</DropdownList>
72
+ </Dropdown>
70
73
  );
71
74
 
72
75
  const calendarButton = (