@patternfly/react-core 5.0.0-alpha.87 → 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 (299) hide show
  1. package/CHANGELOG.md +4 -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/Toolbar/examples/Toolbar.md +0 -9
  276. package/src/components/Toolbar/examples/ToolbarStacked.tsx +75 -58
  277. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +57 -88
  278. package/src/components/TreeView/examples/TreeView.md +42 -30
  279. package/src/demos/AlertGroup.md +1 -6
  280. package/src/demos/Card/Card.md +75 -80
  281. package/src/demos/CardDemos.md +40 -34
  282. package/src/demos/DataListDemo.md +130 -70
  283. package/src/demos/DatePicker/DatePicker.md +1 -89
  284. package/src/demos/DateTimePicker.md +90 -5
  285. package/src/demos/Masthead.md +1 -7
  286. package/src/demos/Nav.md +213 -155
  287. package/src/demos/NotificationDrawer/NotificationDrawer.md +485 -355
  288. package/src/demos/Page.md +1 -7
  289. package/src/demos/PrimaryDetail.md +193 -211
  290. package/src/demos/Tabs.md +0 -1
  291. package/src/demos/Toolbar.md +169 -190
  292. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +61 -49
  293. package/src/demos/examples/DashboardHeader.js +96 -81
  294. package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +29 -26
  295. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +84 -69
  296. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +90 -74
  297. package/src/demos/examples/Page/PageStickySectionGroup.tsx +90 -74
  298. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +90 -74
  299. package/src/demos/examples/Tabs/TabsAndTable.tsx +12 -6
@@ -1,11 +1,17 @@
1
1
  import React from 'react';
2
- import { Card, CardHeader, CardTitle, CardBody } from '@patternfly/react-core';
3
2
  import {
4
- Dropdown as DropdownDeprecated,
5
- DropdownItem as DropdownItemDeprecated,
6
- DropdownSeparator,
7
- KebabToggle
8
- } from '@patternfly/react-core/deprecated';
3
+ Card,
4
+ CardHeader,
5
+ CardTitle,
6
+ CardBody,
7
+ Dropdown,
8
+ DropdownList,
9
+ DropdownItem,
10
+ MenuToggle,
11
+ MenuToggleElement,
12
+ Divider
13
+ } from '@patternfly/react-core';
14
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
9
15
 
10
16
  export const CardLegacySelectable: React.FunctionComponent = () => {
11
17
  const [selected, setSelected] = React.useState<string>('');
@@ -32,44 +38,57 @@ export const CardLegacySelectable: React.FunctionComponent = () => {
32
38
  setSelected(newSelected);
33
39
  };
34
40
 
35
- const onToggle = (event: any, isOpen: boolean) => {
36
- event.stopPropagation();
37
- setIsKebabOpen(isOpen);
41
+ const onToggle = (event: React.MouseEvent) => {
42
+ event?.stopPropagation();
43
+ setIsKebabOpen(!isKebabOpen);
38
44
  };
39
45
 
40
- const onSelect = (event: React.SyntheticEvent<HTMLDivElement> | undefined) => {
46
+ const onSelect = (event: React.MouseEvent | undefined) => {
41
47
  event?.stopPropagation();
42
48
  setIsKebabOpen(!isKebabOpen);
43
49
  };
44
50
 
45
- const dropdownItems = [
46
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
47
- <DropdownItemDeprecated key="action" component="button">
48
- Action
49
- </DropdownItemDeprecated>,
50
- <DropdownItemDeprecated key="disabled link" isDisabled>
51
- Disabled Link
52
- </DropdownItemDeprecated>,
53
- <DropdownItemDeprecated key="disabled action" isDisabled component="button">
54
- Disabled Action
55
- </DropdownItemDeprecated>,
56
- <DropdownSeparator key="separator" />,
57
- <DropdownItemDeprecated key="separated link">Separated Link</DropdownItemDeprecated>,
58
- <DropdownItemDeprecated key="separated action" component="button">
59
- Separated Action
60
- </DropdownItemDeprecated>
61
- ];
51
+ const dropdownItems = (
52
+ <>
53
+ <DropdownItem key="action">Action</DropdownItem>
54
+ {/* Prevent default onClick functionality for example purposes */}
55
+ <DropdownItem key="link" to="#" onClick={(event: any) => event.preventDefault()}>
56
+ Link
57
+ </DropdownItem>
58
+ <DropdownItem key="disabled action" isDisabled>
59
+ Disabled Action
60
+ </DropdownItem>
61
+ <DropdownItem key="disabled link" isDisabled to="#" onClick={(event: any) => event.preventDefault()}>
62
+ Disabled Link
63
+ </DropdownItem>
64
+ <Divider component="li" key="separator" />
65
+ <DropdownItem key="separated action">Separated Action</DropdownItem>
66
+ <DropdownItem key="separated link" to="#" onClick={(event: any) => event.preventDefault()}>
67
+ Separated Link
68
+ </DropdownItem>
69
+ </>
70
+ );
62
71
 
63
72
  const headerActions = (
64
73
  <>
65
- <DropdownDeprecated
74
+ <Dropdown
66
75
  onSelect={onSelect}
67
- toggle={<KebabToggle onToggle={onToggle} />}
76
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
77
+ <MenuToggle
78
+ ref={toggleRef}
79
+ isExpanded={isKebabOpen}
80
+ onClick={onToggle}
81
+ variant="plain"
82
+ aria-label="Card legacy selectable example kebab toggle"
83
+ >
84
+ <EllipsisVIcon aria-hidden="true" />
85
+ </MenuToggle>
86
+ )}
68
87
  isOpen={isKebabOpen}
69
- isPlain
70
- dropdownItems={dropdownItems}
71
- position={'right'}
72
- />
88
+ onOpenChange={(isOpen: boolean) => setIsKebabOpen(isOpen)}
89
+ >
90
+ <DropdownList>{dropdownItems}</DropdownList>
91
+ </Dropdown>
73
92
  </>
74
93
  );
75
94
 
@@ -1,11 +1,17 @@
1
1
  import React from 'react';
2
- import { Checkbox, Card, CardHeader, CardBody } from '@patternfly/react-core';
3
2
  import {
4
- Dropdown as DropdownDeprecated,
5
- DropdownItem as DropdownItemDeprecated,
6
- DropdownSeparator,
7
- KebabToggle
8
- } from '@patternfly/react-core/deprecated';
3
+ Checkbox,
4
+ Card,
5
+ CardHeader,
6
+ CardBody,
7
+ Dropdown,
8
+ DropdownList,
9
+ DropdownItem,
10
+ MenuToggle,
11
+ MenuToggleElement,
12
+ Divider
13
+ } from '@patternfly/react-core';
14
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
9
15
 
10
16
  export const CardOnlyActionsInCardHead: React.FunctionComponent = () => {
11
17
  const [isOpen, setIsOpen] = React.useState<boolean>(false);
@@ -18,34 +24,47 @@ export const CardOnlyActionsInCardHead: React.FunctionComponent = () => {
18
24
  setIsChecked(checked);
19
25
  };
20
26
 
21
- const dropdownItems = [
22
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
23
- <DropdownItemDeprecated key="action" component="button">
24
- Action
25
- </DropdownItemDeprecated>,
26
- <DropdownItemDeprecated key="disabled link" isDisabled>
27
- Disabled Link
28
- </DropdownItemDeprecated>,
29
- <DropdownItemDeprecated key="disabled action" isDisabled component="button">
30
- Disabled Action
31
- </DropdownItemDeprecated>,
32
- <DropdownSeparator key="separator" />,
33
- <DropdownItemDeprecated key="separated link">Separated Link</DropdownItemDeprecated>,
34
- <DropdownItemDeprecated key="separated action" component="button">
35
- Separated Action
36
- </DropdownItemDeprecated>
37
- ];
27
+ const dropdownItems = (
28
+ <>
29
+ <DropdownItem key="action">Action</DropdownItem>
30
+ {/* Prevent default onClick functionality for example purposes */}
31
+ <DropdownItem key="link" to="#" onClick={(event: any) => event.preventDefault()}>
32
+ Link
33
+ </DropdownItem>
34
+ <DropdownItem key="disabled action" isDisabled>
35
+ Disabled Action
36
+ </DropdownItem>
37
+ <DropdownItem key="disabled link" isDisabled to="#" onClick={(event: any) => event.preventDefault()}>
38
+ Disabled Link
39
+ </DropdownItem>
40
+ <Divider component="li" key="separator" />
41
+ <DropdownItem key="separated action">Separated Action</DropdownItem>
42
+ <DropdownItem key="separated link" to="#" onClick={(event: any) => event.preventDefault()}>
43
+ Separated Link
44
+ </DropdownItem>
45
+ </>
46
+ );
38
47
 
39
48
  const headerActions = (
40
49
  <>
41
- <DropdownDeprecated
50
+ <Dropdown
42
51
  onSelect={onSelect}
43
- toggle={<KebabToggle onToggle={(_event: any, isOpen: boolean) => setIsOpen(isOpen)} />}
52
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
53
+ <MenuToggle
54
+ ref={toggleRef}
55
+ isExpanded={isOpen}
56
+ onClick={() => setIsOpen(!isOpen)}
57
+ variant="plain"
58
+ aria-label="Card header without title example kebab toggle"
59
+ >
60
+ <EllipsisVIcon aria-hidden="true" />
61
+ </MenuToggle>
62
+ )}
44
63
  isOpen={isOpen}
45
- isPlain
46
- dropdownItems={dropdownItems}
47
- position={'right'}
48
- />
64
+ onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
65
+ >
66
+ <DropdownList>{dropdownItems}</DropdownList>
67
+ </Dropdown>
49
68
  <Checkbox
50
69
  isChecked={isChecked}
51
70
  onChange={(_event, checked) => onClick(checked)}
@@ -1,11 +1,17 @@
1
1
  import React from 'react';
2
- import { Card, CardHeader, CardTitle, CardBody } from '@patternfly/react-core';
3
2
  import {
4
- Dropdown as DropdownDeprecated,
5
- DropdownItem as DropdownItemDeprecated,
6
- DropdownSeparator,
7
- KebabToggle
8
- } from '@patternfly/react-core/deprecated';
3
+ Card,
4
+ CardHeader,
5
+ CardTitle,
6
+ CardBody,
7
+ Dropdown,
8
+ DropdownList,
9
+ DropdownItem,
10
+ MenuToggle,
11
+ MenuToggleElement,
12
+ Divider
13
+ } from '@patternfly/react-core';
14
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
9
15
 
10
16
  export const CardSelectable: React.FunctionComponent = () => {
11
17
  const [selected, setSelected] = React.useState<string>('');
@@ -32,47 +38,57 @@ export const CardSelectable: React.FunctionComponent = () => {
32
38
  setSelected(newSelected);
33
39
  };
34
40
 
35
- const onToggle = (
36
- event: MouseEvent | TouchEvent | KeyboardEvent | React.KeyboardEvent<any> | React.MouseEvent<HTMLButtonElement>,
37
- isOpen: boolean
38
- ) => {
39
- event.stopPropagation();
40
- setIsKebabOpen(isOpen);
41
+ const onToggle = (event: React.MouseEvent | undefined) => {
42
+ event?.stopPropagation();
43
+ setIsKebabOpen(!isKebabOpen);
41
44
  };
42
45
 
43
- const onSelect = (event: React.SyntheticEvent<HTMLDivElement> | undefined) => {
46
+ const onSelect = (event: React.MouseEvent | undefined) => {
44
47
  event?.stopPropagation();
45
48
  setIsKebabOpen(false);
46
49
  };
47
50
 
48
- const dropdownItems = [
49
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
50
- <DropdownItemDeprecated key="action" component="button">
51
- Action
52
- </DropdownItemDeprecated>,
53
- <DropdownItemDeprecated key="disabled link" isDisabled>
54
- Disabled Link
55
- </DropdownItemDeprecated>,
56
- <DropdownItemDeprecated key="disabled action" isDisabled component="button">
57
- Disabled Action
58
- </DropdownItemDeprecated>,
59
- <DropdownSeparator key="separator" />,
60
- <DropdownItemDeprecated key="separated link">Separated Link</DropdownItemDeprecated>,
61
- <DropdownItemDeprecated key="separated action" component="button">
62
- Separated Action
63
- </DropdownItemDeprecated>
64
- ];
51
+ const dropdownItems = (
52
+ <>
53
+ <DropdownItem key="action">Action</DropdownItem>
54
+ {/* Prevent default onClick functionality for example purposes */}
55
+ <DropdownItem key="link" to="#" onClick={(event: any) => event.preventDefault()}>
56
+ Link
57
+ </DropdownItem>
58
+ <DropdownItem key="disabled action" isDisabled>
59
+ Disabled Action
60
+ </DropdownItem>
61
+ <DropdownItem key="disabled link" isDisabled to="#" onClick={(event: any) => event.preventDefault()}>
62
+ Disabled Link
63
+ </DropdownItem>
64
+ <Divider component="li" key="separator" />
65
+ <DropdownItem key="separated action">Separated Action</DropdownItem>
66
+ <DropdownItem key="separated link" to="#" onClick={(event: any) => event.preventDefault()}>
67
+ Separated Link
68
+ </DropdownItem>
69
+ </>
70
+ );
65
71
 
66
72
  const headerActions = (
67
73
  <>
68
- <DropdownDeprecated
74
+ <Dropdown
69
75
  onSelect={onSelect}
70
- toggle={<KebabToggle onToggle={onToggle} />}
76
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
77
+ <MenuToggle
78
+ ref={toggleRef}
79
+ isExpanded={isKebabOpen}
80
+ onClick={onToggle}
81
+ variant="plain"
82
+ aria-label="Card selectable example kebab toggle"
83
+ >
84
+ <EllipsisVIcon aria-hidden="true" />
85
+ </MenuToggle>
86
+ )}
71
87
  isOpen={isKebabOpen}
72
- isPlain
73
- dropdownItems={dropdownItems}
74
- position={'right'}
75
- />
88
+ onOpenChange={(isOpen: boolean) => setIsKebabOpen(isOpen)}
89
+ >
90
+ <DropdownList>{dropdownItems}</DropdownList>
91
+ </Dropdown>
76
92
  </>
77
93
  );
78
94
 
@@ -1,11 +1,20 @@
1
1
  import React from 'react';
2
- import { Brand, Card, CardHeader, CardTitle, CardBody, CardFooter, Checkbox } from '@patternfly/react-core';
3
2
  import {
4
- Dropdown as DropdownDeprecated,
5
- DropdownItem as DropdownItemDeprecated,
6
- DropdownSeparator,
7
- KebabToggle
8
- } from '@patternfly/react-core/deprecated';
3
+ Brand,
4
+ Card,
5
+ CardHeader,
6
+ CardTitle,
7
+ CardBody,
8
+ CardFooter,
9
+ Checkbox,
10
+ Dropdown,
11
+ DropdownList,
12
+ DropdownItem,
13
+ MenuToggle,
14
+ MenuToggleElement,
15
+ Divider
16
+ } from '@patternfly/react-core';
17
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
9
18
  import pfLogo from './pfLogo.svg';
10
19
 
11
20
  export const CardWithImageAndActions: React.FunctionComponent = () => {
@@ -23,34 +32,47 @@ export const CardWithImageAndActions: React.FunctionComponent = () => {
23
32
  setHasNoOffset(checked);
24
33
  };
25
34
 
26
- const dropdownItems = [
27
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
28
- <DropdownItemDeprecated key="action" component="button">
29
- Action
30
- </DropdownItemDeprecated>,
31
- <DropdownItemDeprecated key="disabled link" isDisabled>
32
- Disabled Link
33
- </DropdownItemDeprecated>,
34
- <DropdownItemDeprecated key="disabled action" isDisabled component="button">
35
- Disabled Action
36
- </DropdownItemDeprecated>,
37
- <DropdownSeparator key="separator" />,
38
- <DropdownItemDeprecated key="separated link">Separated Link</DropdownItemDeprecated>,
39
- <DropdownItemDeprecated key="separated action" component="button">
40
- Separated Action
41
- </DropdownItemDeprecated>
42
- ];
35
+ const dropdownItems = (
36
+ <>
37
+ <DropdownItem key="action">Action</DropdownItem>
38
+ {/* Prevent default onClick functionality for example purposes */}
39
+ <DropdownItem key="link" to="#" onClick={(event: any) => event.preventDefault()}>
40
+ Link
41
+ </DropdownItem>
42
+ <DropdownItem key="disabled action" isDisabled>
43
+ Disabled Action
44
+ </DropdownItem>
45
+ <DropdownItem key="disabled link" isDisabled to="#" onClick={(event: any) => event.preventDefault()}>
46
+ Disabled Link
47
+ </DropdownItem>
48
+ <Divider component="li" key="separator" />
49
+ <DropdownItem key="separated action">Separated Action</DropdownItem>
50
+ <DropdownItem key="separated link" to="#" onClick={(event: any) => event.preventDefault()}>
51
+ Separated Link
52
+ </DropdownItem>
53
+ </>
54
+ );
43
55
 
44
56
  const headerActions = (
45
57
  <>
46
- <DropdownDeprecated
58
+ <Dropdown
47
59
  onSelect={onSelect}
48
- toggle={<KebabToggle onToggle={(_event: any, isOpen: boolean) => setIsOpen(isOpen)} />}
60
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
61
+ <MenuToggle
62
+ ref={toggleRef}
63
+ isExpanded={isOpen}
64
+ onClick={() => setIsOpen(!isOpen)}
65
+ variant="plain"
66
+ aria-label="Card header images and actions example kebab toggle"
67
+ >
68
+ <EllipsisVIcon aria-hidden="true" />
69
+ </MenuToggle>
70
+ )}
49
71
  isOpen={isOpen}
50
- isPlain
51
- dropdownItems={dropdownItems}
52
- position={'right'}
53
- />
72
+ onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
73
+ >
74
+ <DropdownList>{dropdownItems}</DropdownList>
75
+ </Dropdown>
54
76
  <Checkbox
55
77
  isChecked={isChecked}
56
78
  onChange={(_event, checked) => onClick(checked)}
@@ -12,7 +12,8 @@ import { DataListItemCells } from '../DataListItemCells';
12
12
  import { DataListItemRow } from '../DataListItemRow';
13
13
  import { DataListContent } from '../DataListContent';
14
14
  import { Button } from '../../Button';
15
- import { DropdownItem, Dropdown, KebabToggle, DropdownPosition } from '../../../deprecated/components/Dropdown';
15
+ import { Dropdown, DropdownList, DropdownItem } from '../../Dropdown';
16
+ import { MenuToggle } from '../../MenuToggle';
16
17
 
17
18
  describe('DataList', () => {
18
19
  test('List default', () => {
@@ -276,19 +277,17 @@ describe('DataList', () => {
276
277
  test('DataListAction dropdown', () => {
277
278
  const { asFragment } = render(
278
279
  <DataListAction aria-label="Actions" aria-labelledby="ex-action" id="ex-action" isPlainButtonAction>
279
- <Dropdown
280
- isPlain
281
- position={DropdownPosition.right}
282
- toggle={<KebabToggle />}
283
- dropdownItems={[
284
- <DropdownItem component="button" onClick={jest.fn()} key="action-1">
280
+ <Dropdown toggle={(toggleRef) => <MenuToggle ref={toggleRef} />}>
281
+ <DropdownList>
282
+ <DropdownItem onClick={jest.fn()} key="action-1">
285
283
  action-1
286
- </DropdownItem>,
287
- <DropdownItem component="button" onClick={jest.fn()} key="action-2">
284
+ </DropdownItem>
285
+ ,
286
+ <DropdownItem onClick={jest.fn()} key="action-2">
288
287
  action-2
289
288
  </DropdownItem>
290
- ]}
291
- />
289
+ </DropdownList>
290
+ </Dropdown>
292
291
  </DataListAction>
293
292
  );
294
293
  expect(asFragment()).toMatchSnapshot();
@@ -129,32 +129,99 @@ exports[`DataList DataListAction dropdown 1`] = `
129
129
  <div
130
130
  class="pf-c-data-list__action"
131
131
  >
132
+ <button
133
+ aria-expanded="false"
134
+ class="pf-c-menu-toggle"
135
+ type="button"
136
+ >
137
+ <span
138
+ class="pf-c-menu-toggle__text"
139
+ />
140
+ <span
141
+ class="pf-c-menu-toggle__controls"
142
+ >
143
+ <span
144
+ class="pf-c-menu-toggle__toggle-icon"
145
+ >
146
+ <svg
147
+ aria-hidden="true"
148
+ class="pf-svg"
149
+ fill="currentColor"
150
+ role="img"
151
+ viewBox="0 0 320 512"
152
+ >
153
+ <path
154
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
155
+ />
156
+ </svg>
157
+ </span>
158
+ </span>
159
+ </button>
132
160
  <div
133
- class="pf-c-dropdown pf-m-align-right"
161
+ class="pf-c-menu"
134
162
  data-ouia-component-id="OUIA-Generated-Dropdown-1"
135
163
  data-ouia-component-type="PF4/Dropdown"
136
164
  data-ouia-safe="true"
165
+ style="position: absolute; left: 0px; top: 0px; z-index: 9999;"
137
166
  >
138
- <button
139
- aria-expanded="false"
140
- aria-haspopup="true"
141
- aria-label="Actions"
142
- class="pf-c-dropdown__toggle pf-m-plain"
143
- id="pf-dropdown-toggle-id-0"
144
- type="button"
167
+ <div
168
+ class="pf-c-menu__content"
145
169
  >
146
- <svg
147
- aria-hidden="true"
148
- class="pf-svg"
149
- fill="currentColor"
150
- role="img"
151
- viewBox="0 0 192 512"
170
+ <ul
171
+ class="pf-c-menu__list"
172
+ role="menu"
152
173
  >
153
- <path
154
- d="M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"
155
- />
156
- </svg>
157
- </button>
174
+ <li
175
+ class="pf-c-menu__list-item"
176
+ data-ouia-component-id="OUIA-Generated-DropdownItem-1"
177
+ data-ouia-component-type="PF4/DropdownItem"
178
+ data-ouia-safe="true"
179
+ role="none"
180
+ >
181
+ <button
182
+ class="pf-c-menu__item"
183
+ role="menuitem"
184
+ tabindex="0"
185
+ type="button"
186
+ >
187
+ <span
188
+ class="pf-c-menu__item-main"
189
+ >
190
+ <span
191
+ class="pf-c-menu__item-text"
192
+ >
193
+ action-1
194
+ </span>
195
+ </span>
196
+ </button>
197
+ </li>
198
+ ,
199
+ <li
200
+ class="pf-c-menu__list-item"
201
+ data-ouia-component-id="OUIA-Generated-DropdownItem-2"
202
+ data-ouia-component-type="PF4/DropdownItem"
203
+ data-ouia-safe="true"
204
+ role="none"
205
+ >
206
+ <button
207
+ class="pf-c-menu__item"
208
+ role="menuitem"
209
+ tabindex="-1"
210
+ type="button"
211
+ >
212
+ <span
213
+ class="pf-c-menu__item-main"
214
+ >
215
+ <span
216
+ class="pf-c-menu__item-text"
217
+ >
218
+ action-2
219
+ </span>
220
+ </span>
221
+ </button>
222
+ </li>
223
+ </ul>
224
+ </div>
158
225
  </div>
159
226
  </div>
160
227
  </div>
@@ -18,15 +18,10 @@ propComponents:
18
18
  ]
19
19
  ---
20
20
 
21
- import {
22
- Dropdown as DropdownDeprecated,
23
- DropdownItem as DropdownItemDeprecated,
24
- DropdownPosition,
25
- KebabToggle
26
- } from '@patternfly/react-core/deprecated';
27
21
  import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
28
22
  import AngleDownIcon from '@patternfly/react-icons/dist/esm/icons/angle-down-icon';
29
23
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
24
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
30
25
  import { css } from '@patternfly/react-styles';
31
26
 
32
27
  ## Examples