@patternfly/react-core 5.0.0-alpha.86 → 5.0.0-alpha.88

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 (301) hide show
  1. package/CHANGELOG.md +8 -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/package.json +1 -1
  56. package/dist/esm/components/NotificationBadge/package.json +1 -1
  57. package/dist/esm/components/NotificationDrawer/package.json +1 -1
  58. package/dist/esm/components/NumberInput/package.json +1 -1
  59. package/dist/esm/components/OverflowMenu/package.json +1 -1
  60. package/dist/esm/components/Page/package.json +1 -1
  61. package/dist/esm/components/Pagination/package.json +1 -1
  62. package/dist/esm/components/Panel/package.json +1 -1
  63. package/dist/esm/components/Popover/package.json +1 -1
  64. package/dist/esm/components/Progress/package.json +1 -1
  65. package/dist/esm/components/ProgressStepper/package.json +1 -1
  66. package/dist/esm/components/Radio/package.json +1 -1
  67. package/dist/esm/components/SearchInput/package.json +1 -1
  68. package/dist/esm/components/Select/package.json +1 -1
  69. package/dist/esm/components/Sidebar/package.json +1 -1
  70. package/dist/esm/components/SimpleList/package.json +1 -1
  71. package/dist/esm/components/Skeleton/package.json +1 -1
  72. package/dist/esm/components/SkipToContent/package.json +1 -1
  73. package/dist/esm/components/Slider/package.json +1 -1
  74. package/dist/esm/components/Spinner/package.json +1 -1
  75. package/dist/esm/components/Switch/package.json +1 -1
  76. package/dist/esm/components/Tabs/package.json +1 -1
  77. package/dist/esm/components/Text/package.json +1 -1
  78. package/dist/esm/components/TextArea/package.json +1 -1
  79. package/dist/esm/components/TextInput/package.json +1 -1
  80. package/dist/esm/components/TextInputGroup/package.json +1 -1
  81. package/dist/esm/components/Tile/package.json +1 -1
  82. package/dist/esm/components/TimePicker/package.json +1 -1
  83. package/dist/esm/components/Timestamp/package.json +1 -1
  84. package/dist/esm/components/Title/package.json +1 -1
  85. package/dist/esm/components/ToggleGroup/package.json +1 -1
  86. package/dist/esm/components/Toolbar/package.json +1 -1
  87. package/dist/esm/components/Tooltip/package.json +1 -1
  88. package/dist/esm/components/TreeView/package.json +1 -1
  89. package/dist/esm/components/Truncate/package.json +1 -1
  90. package/dist/esm/components/Wizard/hooks/package.json +1 -1
  91. package/dist/esm/components/Wizard/package.json +1 -1
  92. package/dist/esm/components/package.json +1 -1
  93. package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
  94. package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
  95. package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
  96. package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
  97. package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
  98. package/dist/esm/deprecated/components/Select/package.json +1 -1
  99. package/dist/esm/deprecated/components/Wizard/package.json +1 -1
  100. package/dist/esm/deprecated/components/package.json +1 -1
  101. package/dist/esm/deprecated/package.json +1 -1
  102. package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  103. package/dist/esm/helpers/package.json +1 -1
  104. package/dist/esm/layouts/Bullseye/package.json +1 -1
  105. package/dist/esm/layouts/Flex/package.json +1 -1
  106. package/dist/esm/layouts/Gallery/package.json +1 -1
  107. package/dist/esm/layouts/Grid/package.json +1 -1
  108. package/dist/esm/layouts/Level/package.json +1 -1
  109. package/dist/esm/layouts/Split/package.json +1 -1
  110. package/dist/esm/layouts/Stack/package.json +1 -1
  111. package/dist/esm/layouts/package.json +1 -1
  112. package/dist/esm/next/components/package.json +1 -1
  113. package/dist/esm/next/package.json +1 -1
  114. package/dist/esm/package.json +1 -1
  115. package/dist/js/components/AboutModal/package.json +1 -1
  116. package/dist/js/components/Accordion/package.json +1 -1
  117. package/dist/js/components/ActionList/package.json +1 -1
  118. package/dist/js/components/Alert/package.json +1 -1
  119. package/dist/js/components/Avatar/package.json +1 -1
  120. package/dist/js/components/BackToTop/package.json +1 -1
  121. package/dist/js/components/Backdrop/package.json +1 -1
  122. package/dist/js/components/BackgroundImage/package.json +1 -1
  123. package/dist/js/components/Badge/package.json +1 -1
  124. package/dist/js/components/Banner/package.json +1 -1
  125. package/dist/js/components/Brand/package.json +1 -1
  126. package/dist/js/components/Breadcrumb/package.json +1 -1
  127. package/dist/js/components/Button/package.json +1 -1
  128. package/dist/js/components/CalendarMonth/package.json +1 -1
  129. package/dist/js/components/Card/package.json +1 -1
  130. package/dist/js/components/Checkbox/package.json +1 -1
  131. package/dist/js/components/Chip/package.json +1 -1
  132. package/dist/js/components/ClipboardCopy/package.json +1 -1
  133. package/dist/js/components/CodeBlock/package.json +1 -1
  134. package/dist/js/components/DataList/package.json +1 -1
  135. package/dist/js/components/DatePicker/package.json +1 -1
  136. package/dist/js/components/DescriptionList/package.json +1 -1
  137. package/dist/js/components/Divider/package.json +1 -1
  138. package/dist/js/components/DragDrop/package.json +1 -1
  139. package/dist/js/components/Drawer/package.json +1 -1
  140. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  141. package/dist/js/components/Dropdown/Dropdown.js +2 -4
  142. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  143. package/dist/js/components/Dropdown/package.json +1 -1
  144. package/dist/js/components/DualListSelector/package.json +1 -1
  145. package/dist/js/components/EmptyState/package.json +1 -1
  146. package/dist/js/components/ExpandableSection/package.json +1 -1
  147. package/dist/js/components/FileUpload/package.json +1 -1
  148. package/dist/js/components/Form/package.json +1 -1
  149. package/dist/js/components/FormSelect/package.json +1 -1
  150. package/dist/js/components/HelperText/package.json +1 -1
  151. package/dist/js/components/Hint/package.json +1 -1
  152. package/dist/js/components/Icon/package.json +1 -1
  153. package/dist/js/components/InputGroup/package.json +1 -1
  154. package/dist/js/components/JumpLinks/package.json +1 -1
  155. package/dist/js/components/Label/package.json +1 -1
  156. package/dist/js/components/LabelGroup/package.json +1 -1
  157. package/dist/js/components/List/package.json +1 -1
  158. package/dist/js/components/LoginPage/package.json +1 -1
  159. package/dist/js/components/Masthead/package.json +1 -1
  160. package/dist/js/components/Menu/package.json +1 -1
  161. package/dist/js/components/MenuToggle/MenuToggle.d.ts +3 -1
  162. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  163. package/dist/js/components/MenuToggle/MenuToggle.js +1 -3
  164. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  165. package/dist/js/components/MenuToggle/package.json +1 -1
  166. package/dist/js/components/Modal/package.json +1 -1
  167. package/dist/js/components/MultipleFileUpload/package.json +1 -1
  168. package/dist/js/components/Nav/package.json +1 -1
  169. package/dist/js/components/NotificationBadge/package.json +1 -1
  170. package/dist/js/components/NotificationDrawer/package.json +1 -1
  171. package/dist/js/components/NumberInput/package.json +1 -1
  172. package/dist/js/components/OverflowMenu/package.json +1 -1
  173. package/dist/js/components/Page/package.json +1 -1
  174. package/dist/js/components/Pagination/package.json +1 -1
  175. package/dist/js/components/Panel/package.json +1 -1
  176. package/dist/js/components/Popover/package.json +1 -1
  177. package/dist/js/components/Progress/package.json +1 -1
  178. package/dist/js/components/ProgressStepper/package.json +1 -1
  179. package/dist/js/components/Radio/package.json +1 -1
  180. package/dist/js/components/SearchInput/package.json +1 -1
  181. package/dist/js/components/Select/package.json +1 -1
  182. package/dist/js/components/Sidebar/package.json +1 -1
  183. package/dist/js/components/SimpleList/package.json +1 -1
  184. package/dist/js/components/Skeleton/package.json +1 -1
  185. package/dist/js/components/SkipToContent/package.json +1 -1
  186. package/dist/js/components/Slider/package.json +1 -1
  187. package/dist/js/components/Spinner/package.json +1 -1
  188. package/dist/js/components/Switch/package.json +1 -1
  189. package/dist/js/components/Tabs/package.json +1 -1
  190. package/dist/js/components/Text/package.json +1 -1
  191. package/dist/js/components/TextArea/package.json +1 -1
  192. package/dist/js/components/TextInput/package.json +1 -1
  193. package/dist/js/components/TextInputGroup/package.json +1 -1
  194. package/dist/js/components/Tile/package.json +1 -1
  195. package/dist/js/components/TimePicker/package.json +1 -1
  196. package/dist/js/components/Timestamp/package.json +1 -1
  197. package/dist/js/components/Title/package.json +1 -1
  198. package/dist/js/components/ToggleGroup/package.json +1 -1
  199. package/dist/js/components/Toolbar/package.json +1 -1
  200. package/dist/js/components/Tooltip/package.json +1 -1
  201. package/dist/js/components/TreeView/package.json +1 -1
  202. package/dist/js/components/Truncate/package.json +1 -1
  203. package/dist/js/components/Wizard/hooks/package.json +1 -1
  204. package/dist/js/components/Wizard/package.json +1 -1
  205. package/dist/js/components/package.json +1 -1
  206. package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
  207. package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
  208. package/dist/js/deprecated/components/Dropdown/package.json +1 -1
  209. package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
  210. package/dist/js/deprecated/components/PageHeader/package.json +1 -1
  211. package/dist/js/deprecated/components/Select/package.json +1 -1
  212. package/dist/js/deprecated/components/Wizard/package.json +1 -1
  213. package/dist/js/deprecated/components/package.json +1 -1
  214. package/dist/js/deprecated/package.json +1 -1
  215. package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  216. package/dist/js/helpers/package.json +1 -1
  217. package/dist/js/layouts/Bullseye/package.json +1 -1
  218. package/dist/js/layouts/Flex/package.json +1 -1
  219. package/dist/js/layouts/Gallery/package.json +1 -1
  220. package/dist/js/layouts/Grid/package.json +1 -1
  221. package/dist/js/layouts/Level/package.json +1 -1
  222. package/dist/js/layouts/Split/package.json +1 -1
  223. package/dist/js/layouts/Stack/package.json +1 -1
  224. package/dist/js/layouts/package.json +1 -1
  225. package/dist/js/next/components/package.json +1 -1
  226. package/dist/js/next/package.json +1 -1
  227. package/dist/js/package.json +1 -1
  228. package/dist/umd/react-core.min.js +1 -1
  229. package/package.json +2 -2
  230. package/src/components/ActionList/examples/ActionList.md +1 -6
  231. package/src/components/ActionList/examples/ActionListSingleGroup.tsx +50 -38
  232. package/src/components/Breadcrumb/examples/Breadcrumb.md +1 -5
  233. package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +34 -21
  234. package/src/components/Card/examples/Card.md +9 -14
  235. package/src/components/Card/examples/CardExpandable.tsx +44 -31
  236. package/src/components/Card/examples/CardExpandableWithIcon.tsx +50 -29
  237. package/src/components/Card/examples/CardHeaderInCardHead.tsx +50 -29
  238. package/src/components/Card/examples/CardLegacySelectable.tsx +52 -33
  239. package/src/components/Card/examples/CardOnlyActionsInCardHead.tsx +48 -29
  240. package/src/components/Card/examples/CardSelectable.tsx +52 -36
  241. package/src/components/Card/examples/CardWithImageAndActions.tsx +51 -29
  242. package/src/components/DataList/__tests__/DataList.test.tsx +10 -11
  243. package/src/components/DataList/__tests__/__snapshots__/DataList.test.tsx.snap +86 -19
  244. package/src/components/DataList/examples/DataList.md +1 -6
  245. package/src/components/DataList/examples/DataListActions.tsx +39 -23
  246. package/src/components/DataList/examples/DataListCheckboxes.tsx +106 -61
  247. package/src/components/DataList/examples/DataListExpandable.tsx +103 -55
  248. package/src/components/DataList/examples/DataListMixedExpandable.tsx +105 -57
  249. package/src/components/DataList/examples/DataListSelectableRows.tsx +71 -39
  250. package/src/components/DataList/examples/DataListWidthModifiers.tsx +81 -39
  251. package/src/components/Dropdown/Dropdown.tsx +10 -13
  252. package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +29 -32
  253. package/src/components/Dropdown/examples/Dropdown.md +0 -1
  254. package/src/components/Dropdown/examples/DropdownBasic.tsx +22 -16
  255. package/src/components/Dropdown/examples/DropdownWithDescriptions.tsx +13 -18
  256. package/src/components/Dropdown/examples/DropdownWithGroups.tsx +30 -16
  257. package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +22 -16
  258. package/src/components/DualListSelector/examples/DualListSelector.md +1 -5
  259. package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +60 -36
  260. package/src/components/Hint/examples/Hint.md +1 -6
  261. package/src/components/Hint/examples/HintBasicWithTitle.tsx +58 -32
  262. package/src/components/Hint/examples/HintBasicWithoutTitle.tsx +57 -32
  263. package/src/components/InputGroup/examples/InputGroup.md +0 -5
  264. package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +32 -24
  265. package/src/components/Menu/examples/Menu.md +1 -5
  266. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +120 -89
  267. package/src/components/MenuToggle/MenuToggle.tsx +4 -3
  268. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +10 -18
  269. package/src/components/MenuToggle/examples/MenuToggle.md +35 -5
  270. package/src/components/Modal/examples/Modal.md +0 -5
  271. package/src/components/Modal/examples/ModalWithDropdown.tsx +40 -34
  272. package/src/components/NotificationDrawer/examples/NotificationDrawer.md +1 -8
  273. package/src/components/NotificationDrawer/examples/NotificationDrawerBasic.tsx +145 -72
  274. package/src/components/NotificationDrawer/examples/NotificationDrawerGroups.tsx +187 -131
  275. package/src/components/Tabs/examples/Tabs.md +120 -44
  276. package/src/components/Toolbar/examples/Toolbar.md +41 -28
  277. package/src/components/Toolbar/examples/ToolbarItems.tsx +1 -1
  278. package/src/components/Toolbar/examples/ToolbarStacked.tsx +75 -58
  279. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +57 -88
  280. package/src/components/TreeView/examples/TreeView.md +42 -30
  281. package/src/demos/AlertGroup.md +1 -6
  282. package/src/demos/Card/Card.md +75 -80
  283. package/src/demos/CardDemos.md +40 -34
  284. package/src/demos/DataListDemo.md +130 -70
  285. package/src/demos/DatePicker/DatePicker.md +1 -89
  286. package/src/demos/DateTimePicker.md +90 -5
  287. package/src/demos/Masthead.md +1 -7
  288. package/src/demos/Nav.md +213 -155
  289. package/src/demos/NotificationDrawer/NotificationDrawer.md +485 -355
  290. package/src/demos/Page.md +1 -7
  291. package/src/demos/PrimaryDetail.md +193 -211
  292. package/src/demos/Tabs.md +0 -1
  293. package/src/demos/Toolbar.md +169 -190
  294. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +61 -49
  295. package/src/demos/examples/DashboardHeader.js +96 -81
  296. package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +29 -26
  297. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +84 -69
  298. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +90 -74
  299. package/src/demos/examples/Page/PageStickySectionGroup.tsx +90 -74
  300. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +90 -74
  301. package/src/demos/examples/Tabs/TabsAndTable.tsx +12 -6
@@ -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>
@@ -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 = (
@@ -9,6 +9,10 @@ import {
9
9
  Card,
10
10
  CardBody,
11
11
  Divider,
12
+ Dropdown,
13
+ DropdownGroup,
14
+ DropdownItem,
15
+ DropdownList,
12
16
  Gallery,
13
17
  GalleryItem,
14
18
  Masthead,
@@ -21,6 +25,7 @@ import {
21
25
  MenuList,
22
26
  MenuItem,
23
27
  MenuToggle,
28
+ MenuToggleElement,
24
29
  Nav,
25
30
  NavItem,
26
31
  NavList,
@@ -43,15 +48,9 @@ import {
43
48
  SearchInput,
44
49
  Tooltip
45
50
  } from '@patternfly/react-core';
46
- import {
47
- Dropdown as DropdownDeprecated,
48
- DropdownGroup as DropdownGroupDeprecated,
49
- DropdownItem as DropdownItemDeprecated,
50
- DropdownToggle,
51
- KebabToggle
52
- } from '@patternfly/react-core/deprecated';
53
51
  import { Link } from '@reach/router';
54
52
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
53
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
55
54
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
56
55
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
57
56
  import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
@@ -84,24 +83,24 @@ export const MastheadWithUtilitiesAndUserDropdownMenu: React.FunctionComponent =
84
83
  typeof selectedItem.itemId === 'number' && setActiveItem(selectedItem.itemId);
85
84
  };
86
85
 
87
- const onDropdownToggle = (_event: any, isOpen: boolean) => {
88
- setIsDropdownOpen(isOpen);
86
+ const onDropdownToggle = () => {
87
+ setIsDropdownOpen(!isDropdownOpen);
89
88
  };
90
89
 
91
90
  const onDropdownSelect = () => {
92
91
  setIsDropdownOpen(!isDropdownOpen);
93
92
  };
94
93
 
95
- const onKebabDropdownToggle = (_event: any, isOpen: boolean) => {
96
- setIsKebabDropdownOpen(isOpen);
94
+ const onKebabDropdownToggle = () => {
95
+ setIsKebabDropdownOpen(!isKebabDropdownOpen);
97
96
  };
98
97
 
99
98
  const onKebabDropdownSelect = () => {
100
99
  setIsKebabDropdownOpen(!isKebabDropdownOpen);
101
100
  };
102
101
 
103
- const onFullKebabDropdownToggle = (_event: any, isOpen: boolean) => {
104
- setIsFullKebabDropdownOpen(isOpen);
102
+ const onFullKebabDropdownToggle = () => {
103
+ setIsFullKebabDropdownOpen(!isFullKebabDropdownOpen);
105
104
  };
106
105
 
107
106
  const onFullKebabDropdownSelect = () => {
@@ -361,40 +360,22 @@ export const MastheadWithUtilitiesAndUserDropdownMenu: React.FunctionComponent =
361
360
  </Breadcrumb>
362
361
  );
363
362
 
364
- const kebabDropdownItems = [
365
- <DropdownItemDeprecated key="settings">
366
- <CogIcon /> Settings
367
- </DropdownItemDeprecated>,
368
- <DropdownItemDeprecated key="help">
369
- <HelpIcon /> Help
370
- </DropdownItemDeprecated>
371
- ];
372
-
373
- const fullKebabDropdownItems = [
374
- <DropdownGroupDeprecated key="group 2">
375
- <DropdownItemDeprecated key="group 2 profile">My profile</DropdownItemDeprecated>
376
- <DropdownItemDeprecated key="group 2 user" component="button">
377
- User management
378
- </DropdownItemDeprecated>
379
- <DropdownItemDeprecated key="group 2 logout">Logout</DropdownItemDeprecated>
380
- </DropdownGroupDeprecated>,
381
- <Divider key="divider" />,
382
- <DropdownItemDeprecated key="settings">
383
- <CogIcon /> Settings
384
- </DropdownItemDeprecated>,
385
- <DropdownItemDeprecated key="help">
386
- <HelpIcon /> Help
387
- </DropdownItemDeprecated>
388
- ];
389
-
363
+ const kebabDropdownItems = (
364
+ <>
365
+ <DropdownItem key="settings">
366
+ <CogIcon /> Settings
367
+ </DropdownItem>
368
+ <DropdownItem key="help">
369
+ <HelpIcon /> Help
370
+ </DropdownItem>
371
+ </>
372
+ );
390
373
  const userDropdownItems = [
391
- <DropdownGroupDeprecated key="group 2">
392
- <DropdownItemDeprecated key="group 2 profile">My profile</DropdownItemDeprecated>
393
- <DropdownItemDeprecated key="group 2 user" component="button">
394
- User management
395
- </DropdownItemDeprecated>
396
- <DropdownItemDeprecated key="group 2 logout">Logout</DropdownItemDeprecated>
397
- </DropdownGroupDeprecated>
374
+ <>
375
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
376
+ <DropdownItem key="group 2 user">User management</DropdownItem>
377
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
378
+ </>
398
379
  ];
399
380
 
400
381
  const headerToolbar = (
@@ -420,38 +401,72 @@ export const MastheadWithUtilitiesAndUserDropdownMenu: React.FunctionComponent =
420
401
  </ToolbarItem>
421
402
  </ToolbarGroup>
422
403
  <ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
423
- <DropdownDeprecated
424
- isPlain
425
- position="right"
426
- onSelect={onKebabDropdownSelect}
427
- toggle={<KebabToggle onToggle={onKebabDropdownToggle} />}
404
+ <Dropdown
428
405
  isOpen={isKebabDropdownOpen}
429
- dropdownItems={kebabDropdownItems}
430
- />
406
+ onSelect={onKebabDropdownSelect}
407
+ onOpenChange={(isOpen: boolean) => setIsKebabDropdownOpen(isOpen)}
408
+ popperProps={{ position: 'right' }}
409
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
410
+ <MenuToggle
411
+ ref={toggleRef}
412
+ onClick={onKebabDropdownToggle}
413
+ isExpanded={isKebabDropdownOpen}
414
+ variant="plain"
415
+ aria-label="Settings and help"
416
+ >
417
+ <EllipsisVIcon aria-hidden="true" />
418
+ </MenuToggle>
419
+ )}
420
+ >
421
+ <DropdownList>{kebabDropdownItems}</DropdownList>
422
+ </Dropdown>
431
423
  </ToolbarItem>
432
424
  <ToolbarItem visibility={{ md: 'hidden' }}>
433
- <DropdownDeprecated
434
- isPlain
435
- position="right"
436
- onSelect={onFullKebabDropdownSelect}
437
- toggle={<KebabToggle onToggle={onFullKebabDropdownToggle} />}
425
+ <Dropdown
438
426
  isOpen={isFullKebabDropdownOpen}
439
- dropdownItems={fullKebabDropdownItems}
440
- />
427
+ onSelect={onFullKebabDropdownSelect}
428
+ onOpenChange={(isOpen: boolean) => setIsFullKebabDropdownOpen(isOpen)}
429
+ popperProps={{ position: 'right' }}
430
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
431
+ <MenuToggle
432
+ ref={toggleRef}
433
+ onClick={onFullKebabDropdownToggle}
434
+ isExpanded={isFullKebabDropdownOpen}
435
+ variant="plain"
436
+ aria-label="Toolbar menu"
437
+ >
438
+ <EllipsisVIcon aria-hidden="true" />
439
+ </MenuToggle>
440
+ )}
441
+ >
442
+ <DropdownGroup key="group 2" aria-label="User actions">
443
+ <DropdownList>{userDropdownItems}</DropdownList>
444
+ </DropdownGroup>
445
+ <Divider />
446
+ <DropdownList>{kebabDropdownItems}</DropdownList>
447
+ </Dropdown>
441
448
  </ToolbarItem>
442
449
  </ToolbarGroup>
443
450
  <ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
444
- <DropdownDeprecated
445
- isFullHeight
446
- onSelect={onDropdownSelect}
451
+ <Dropdown
447
452
  isOpen={isDropdownOpen}
448
- toggle={
449
- <DropdownToggle icon={<Avatar src={imgAvatar} alt="Avatar" />} onToggle={onDropdownToggle}>
453
+ onSelect={onDropdownSelect}
454
+ onOpenChange={(isOpen: boolean) => setIsDropdownOpen(isOpen)}
455
+ popperProps={{ position: 'right' }}
456
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
457
+ <MenuToggle
458
+ ref={toggleRef}
459
+ onClick={onDropdownToggle}
460
+ isFullHeight
461
+ isExpanded={isDropdownOpen}
462
+ icon={<Avatar src={imgAvatar} alt="" />}
463
+ >
450
464
  Ned Username
451
- </DropdownToggle>
452
- }
453
- dropdownItems={userDropdownItems}
454
- />
465
+ </MenuToggle>
466
+ )}
467
+ >
468
+ <DropdownList>{userDropdownItems}</DropdownList>
469
+ </Dropdown>
455
470
  </ToolbarItem>
456
471
  </ToolbarContent>
457
472
  </Toolbar>