@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
@@ -3,7 +3,7 @@ id: Card
3
3
  section: components
4
4
  ---
5
5
 
6
- import { Dropdown as DropdownDeprecated, DropdownItem as DropdownItemDeprecated, KebabToggle } from '@patternfly/react-core/deprecated';
6
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
7
7
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
8
8
  import ArrowRightIcon from '@patternfly/react-icons/dist/js/icons/arrow-right-icon';
9
9
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
@@ -36,16 +36,16 @@ import {
36
36
  Flex,
37
37
  List,
38
38
  ListItem,
39
- Button
39
+ Button,
40
+ Dropdown,
41
+ DropdownList,
42
+ DropdownItem,
43
+ MenuToggle
40
44
  } from '@patternfly/react-core';
41
- import {
42
- Dropdown as DropdownDeprecated,
43
- DropdownItem as DropdownItemDeprecated,
44
- KebabToggle
45
- } from '@patternfly/react-core/deprecated';
46
45
  import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
47
46
  import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-icon';
48
47
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/esm/icons/external-link-alt-icon';
48
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
49
49
 
50
50
  class CardGridDemo extends React.Component {
51
51
  constructor(props) {
@@ -58,45 +58,51 @@ class CardGridDemo extends React.Component {
58
58
  });
59
59
  };
60
60
 
61
- this.onActionToggle = (_event, isDropdownOpen) => {
62
- this.setState({
63
- isDropdownOpen
64
- });
61
+ this.onActionToggle = () => {
62
+ this.setState((prevState) => ({
63
+ isDropdownOpen: !prevState.isDropdownOpen
64
+ }));
65
65
  };
66
66
 
67
- this.onActionSelect = (event) => {
67
+ this.onActionSelect = () => {
68
68
  this.setState({
69
- isDropdownOpen: !this.state.isDropdownOpen
69
+ isDropdownOpen: false
70
70
  });
71
71
  };
72
72
  }
73
73
 
74
74
  render() {
75
75
  const { isCardExpanded, isDropdownOpen } = this.state;
76
- const dropdownItems = [
77
- <DropdownItemDeprecated key="action1" component="button">
78
- Action 1
79
- </DropdownItemDeprecated>,
80
- <DropdownItemDeprecated key="action2" component="button">
81
- Action 2
82
- </DropdownItemDeprecated>,
83
- <DropdownItemDeprecated key="disabled action3" isDisabled component="button">
84
- Disabled Action 3
85
- </DropdownItemDeprecated>,
86
- <DropdownItemDeprecated key="action4" component="button">
87
- Action 4
88
- </DropdownItemDeprecated>
89
- ];
90
-
76
+ const dropdownItems = (
77
+ <>
78
+ <DropdownItem key="action1">Action 1</DropdownItem>
79
+ <DropdownItem key="action2">Action 2</DropdownItem>
80
+ <DropdownItem key="disabled action3" isDisabled>
81
+ Disabled Action 3
82
+ </DropdownItem>
83
+ <DropdownItem key="action4">Action 4</DropdownItem>
84
+ </>
85
+ );
91
86
  const headerActions = (
92
- <DropdownDeprecated
87
+ <Dropdown
93
88
  onSelect={this.onActionSelect}
94
- toggle={<KebabToggle onToggle={this.onActionToggle} />}
95
89
  isOpen={isDropdownOpen}
96
- isPlain
97
- dropdownItems={dropdownItems}
98
- position="right"
99
- />
90
+ popperProps={{ position: 'right' }}
91
+ onOpenChange={(isOpen) => this.setState({ isDropdownOpen: isOpen })}
92
+ toggle={(toggleRef) => (
93
+ <MenuToggle
94
+ ref={toggleRef}
95
+ isExpanded={isDropdownOpen}
96
+ onClick={this.onActionToggle}
97
+ variant="plain"
98
+ aria-label="Horizontal card grid demo kebab toggle"
99
+ >
100
+ <EllipsisVIcon aria-hidden="true" />
101
+ </MenuToggle>
102
+ )}
103
+ >
104
+ <DropdownList>{dropdownItems}</DropdownList>
105
+ </Dropdown>
100
106
  );
101
107
 
102
108
  return (
@@ -3,16 +3,10 @@ id: Data list
3
3
  section: components
4
4
  ---
5
5
 
6
- import {
7
- Dropdown as DropdownDeprecated,
8
- DropdownItem as DropdownItemDeprecated,
9
- DropdownPosition,
10
- KebabToggle
11
- } from '@patternfly/react-core/deprecated';
12
6
  import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
13
7
  import AngleDownIcon from '@patternfly/react-icons/dist/esm/icons/angle-down-icon';
14
8
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
15
-
9
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
16
10
  import { css } from '@patternfly/react-styles';
17
11
 
18
12
  ## Demos
@@ -31,6 +25,10 @@ import {
31
25
  DataListToggle,
32
26
  DataListContent,
33
27
  DataListItemCells,
28
+ Dropdown,
29
+ DropdownItem,
30
+ DropdownList,
31
+ MenuToggle,
34
32
  Toolbar,
35
33
  ToolbarGroup,
36
34
  ToolbarItem,
@@ -39,14 +37,9 @@ import {
39
37
  SearchInput,
40
38
  Tooltip
41
39
  } from '@patternfly/react-core';
42
- import {
43
- Dropdown as DropdownDeprecated,
44
- DropdownItem as DropdownItemDeprecated,
45
- DropdownPosition,
46
- KebabToggle
47
- } from '@patternfly/react-core/deprecated';
48
40
  import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
49
41
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
42
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
50
43
 
51
44
  class ExpandableDataList extends React.Component {
52
45
  constructor(props) {
@@ -78,34 +71,34 @@ class ExpandableDataList extends React.Component {
78
71
  );
79
72
  };
80
73
 
81
- this.onToggle1 = (_event, isOpen1) => {
82
- this.setState({ isOpen1 });
74
+ this.onToggle1 = () => {
75
+ this.setState((prevState) => ({ isOpen1: !prevState.isOpen1 }));
83
76
  };
84
77
 
85
- this.onToggle2 = (_event, isOpen2) => {
86
- this.setState({ isOpen2 });
78
+ this.onToggle2 = () => {
79
+ this.setState((prevState) => ({ isOpen2: !prevState.isOpen2 }));
87
80
  };
88
81
 
89
- this.onToggle3 = (_event, isOpen3) => {
90
- this.setState({ isOpen3 });
82
+ this.onToggle3 = () => {
83
+ this.setState((prevState) => ({ isOpen3: !prevState.isOpen3 }));
91
84
  };
92
85
 
93
- this.onSelect1 = (event) => {
94
- this.setState((prevState) => ({
95
- isOpen1: !prevState.isOpen1
96
- }));
86
+ this.onSelect1 = () => {
87
+ this.setState({
88
+ isOpen1: false
89
+ });
97
90
  };
98
91
 
99
- this.onSelect2 = (event) => {
100
- this.setState((prevState) => ({
101
- isOpen2: !prevState.isOpen2
102
- }));
92
+ this.onSelect2 = () => {
93
+ this.setState({
94
+ isOpen2: false
95
+ });
103
96
  };
104
97
 
105
- this.onSelect3 = (event) => {
106
- this.setState((prevState) => ({
107
- isOpen3: !prevState.isOpen3
108
- }));
98
+ this.onSelect3 = () => {
99
+ this.setState({
100
+ isOpen3: false
101
+ });
109
102
  };
110
103
  }
111
104
 
@@ -154,6 +147,7 @@ class ExpandableDataList extends React.Component {
154
147
  }
155
148
 
156
149
  render() {
150
+ const { isOpen1, isOpen2, isOpen3 } = this.state;
157
151
  const toggle = (id) => {
158
152
  const expanded = this.state.expanded;
159
153
  const index = expanded.indexOf(id);
@@ -205,22 +199,44 @@ class ExpandableDataList extends React.Component {
205
199
  aria-label="Actions"
206
200
  isPlainButtonAction
207
201
  >
208
- <DropdownDeprecated
209
- isPlain
210
- position={DropdownPosition.right}
211
- isOpen={this.state.isOpen1}
202
+ <Dropdown
203
+ isOpen={isOpen1}
212
204
  onSelect={this.onSelect1}
213
- toggle={<KebabToggle onToggle={this.onToggle1} />}
214
- dropdownItems={[
215
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
216
- <DropdownItemDeprecated key="action" component="button">
205
+ popperProps={{ position: 'right' }}
206
+ onOpenChange={(isOpen) => this.setState({ isOpen1: isOpen })}
207
+ toggle={(toggleRef) => (
208
+ <MenuToggle
209
+ ref={toggleRef}
210
+ onClick={this.onToggle1}
211
+ isExpanded={isOpen1}
212
+ variant="plain"
213
+ aria-label="Primary content kebab toggle"
214
+ >
215
+ <EllipsisVIcon aria-hidden="true" />
216
+ </MenuToggle>
217
+ )}
218
+ >
219
+ <DropdownList>
220
+ <DropdownItem itemId={0} key="action1">
217
221
  Action
218
- </DropdownItemDeprecated>,
219
- <DropdownItemDeprecated key="disabled link" isDisabled>
222
+ </DropdownItem>
223
+ <DropdownItem
224
+ itemId={1}
225
+ key="link1"
226
+ to="#default-link2"
227
+ // Prevent the default onClick functionality for example purposes
228
+ onClick={(ev) => ev.preventDefault()}
229
+ >
230
+ Link
231
+ </DropdownItem>
232
+ <DropdownItem itemId={2} isDisabled key="disabled action1">
233
+ Disabled Action
234
+ </DropdownItem>
235
+ <DropdownItem itemId={3} isDisabled key="disabled link1" to="#default-link4">
220
236
  Disabled Link
221
- </DropdownItemDeprecated>
222
- ]}
223
- />
237
+ </DropdownItem>
238
+ </DropdownList>
239
+ </Dropdown>
224
240
  </DataListAction>
225
241
  </DataListItemRow>
226
242
  <DataListContent
@@ -265,22 +281,44 @@ class ExpandableDataList extends React.Component {
265
281
  aria-label="Actions"
266
282
  isPlainButtonAction
267
283
  >
268
- <DropdownDeprecated
269
- isPlain
270
- position={DropdownPosition.right}
271
- isOpen={this.state.isOpen2}
284
+ <Dropdown
285
+ isOpen={isOpen2}
272
286
  onSelect={this.onSelect2}
273
- toggle={<KebabToggle onToggle={this.onToggle2} />}
274
- dropdownItems={[
275
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
276
- <DropdownItemDeprecated key="action" component="button">
287
+ popperProps={{ position: 'right' }}
288
+ onOpenChange={(isOpen) => this.setState({ isOpen2: isOpen })}
289
+ toggle={(toggleRef) => (
290
+ <MenuToggle
291
+ ref={toggleRef}
292
+ onClick={this.onToggle2}
293
+ isExpanded={isOpen2}
294
+ variant="plain"
295
+ aria-label="Secondary content kebab toggle"
296
+ >
297
+ <EllipsisVIcon aria-hidden="true" />
298
+ </MenuToggle>
299
+ )}
300
+ >
301
+ <DropdownList>
302
+ <DropdownItem itemId={0} key="action2">
277
303
  Action
278
- </DropdownItemDeprecated>,
279
- <DropdownItemDeprecated key="disabled link" isDisabled>
304
+ </DropdownItem>
305
+ <DropdownItem
306
+ itemId={1}
307
+ key="link2"
308
+ to="#default-link2"
309
+ // Prevent the default onClick functionality for example purposes
310
+ onClick={(ev) => ev.preventDefault()}
311
+ >
312
+ Link
313
+ </DropdownItem>
314
+ <DropdownItem itemId={2} isDisabled key="disabled action2">
315
+ Disabled Action
316
+ </DropdownItem>
317
+ <DropdownItem itemId={3} isDisabled key="disabled link2" to="#default-link4">
280
318
  Disabled Link
281
- </DropdownItemDeprecated>
282
- ]}
283
- />
319
+ </DropdownItem>
320
+ </DropdownList>
321
+ </Dropdown>
284
322
  </DataListAction>
285
323
  </DataListItemRow>
286
324
  <DataListContent
@@ -325,22 +363,44 @@ class ExpandableDataList extends React.Component {
325
363
  aria-label="Actions"
326
364
  isPlainButtonAction
327
365
  >
328
- <DropdownDeprecated
329
- isPlain
330
- position={DropdownPosition.right}
331
- isOpen={this.state.isOpen3}
366
+ <Dropdown
367
+ isOpen={isOpen3}
332
368
  onSelect={this.onSelect3}
333
- toggle={<KebabToggle onToggle={this.onToggle3} />}
334
- dropdownItems={[
335
- <DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
336
- <DropdownItemDeprecated key="action" component="button">
369
+ popperProps={{ position: 'right' }}
370
+ onOpenChange={(isOpen) => this.setState({ isOpen3: isOpen })}
371
+ toggle={(toggleRef) => (
372
+ <MenuToggle
373
+ ref={toggleRef}
374
+ onClick={this.onToggle3}
375
+ isExpanded={isOpen3}
376
+ variant="plain"
377
+ aria-label="Tertiary content kebab toggle"
378
+ >
379
+ <EllipsisVIcon aria-hidden="true" />
380
+ </MenuToggle>
381
+ )}
382
+ >
383
+ <DropdownList>
384
+ <DropdownItem itemId={0} key="action3">
337
385
  Action
338
- </DropdownItemDeprecated>,
339
- <DropdownItemDeprecated key="disabled link" isDisabled>
386
+ </DropdownItem>
387
+ <DropdownItem
388
+ itemId={1}
389
+ key="link3"
390
+ to="#default-link2"
391
+ // Prevent the default onClick functionality for example purposes
392
+ onClick={(ev) => ev.preventDefault()}
393
+ >
394
+ Link
395
+ </DropdownItem>
396
+ <DropdownItem itemId={2} isDisabled key="disabled action3">
397
+ Disabled Action
398
+ </DropdownItem>
399
+ <DropdownItem itemId={3} isDisabled key="disabled link3" to="#default-link4">
340
400
  Disabled Link
341
- </DropdownItemDeprecated>
342
- ]}
343
- />
401
+ </DropdownItem>
402
+ </DropdownList>
403
+ </Dropdown>
344
404
  </DataListAction>
345
405
  </DataListItemRow>
346
406
  <DataListContent
@@ -1,5 +1,5 @@
1
1
  ---
2
- id: Date range picker
2
+ id: Date picker
3
3
  section: components
4
4
  subsection: date-and-time
5
5
  beta: true
@@ -59,95 +59,7 @@ DateRangePicker = () => {
59
59
  };
60
60
  ```
61
61
 
62
- ### Date and time range picker
63
62
 
64
- ```js
65
- import {
66
- Flex,
67
- FlexItem,
68
- InputGroup,
69
- DatePicker,
70
- isValidDate,
71
- TimePicker,
72
- yyyyMMddFormat,
73
- updateDateTime
74
- } from '@patternfly/react-core';
75
-
76
- DateTimeRangePicker = () => {
77
- const [from, setFrom] = React.useState();
78
- const [to, setTo] = React.useState();
79
-
80
- const toValidator = (date) => {
81
- return isValidDate(from) && yyyyMMddFormat(date) >= yyyyMMddFormat(from)
82
- ? ''
83
- : 'The "to" date must be after the "from" date';
84
- };
85
-
86
- const onFromDateChange = (_event, inputDate, newFromDate) => {
87
- if (isValidDate(from) && isValidDate(newFromDate) && inputDate === yyyyMMddFormat(newFromDate)) {
88
- newFromDate.setHours(from.getHours());
89
- newFromDate.setMinutes(from.getMinutes());
90
- }
91
- if (isValidDate(newFromDate) && inputDate === yyyyMMddFormat(newFromDate)) {
92
- setFrom(new Date(newFromDate));
93
- }
94
- };
95
-
96
- const onFromTimeChange = (_event, time, hour, minute) => {
97
- if (isValidDate(from)) {
98
- const updatedFromDate = new Date(from);
99
- updatedFromDate.setHours(hour);
100
- updatedFromDate.setMinutes(minute);
101
- setFrom(updatedFromDate);
102
- }
103
- };
104
-
105
- const onToDateChange = (_event, inputDate, newToDate) => {
106
- if (isValidDate(to) && isValidDate(newToDate) && inputDate === yyyyMMddFormat(newToDate)) {
107
- newToDate.setHours(to.getHours());
108
- newToDate.setMinutes(to.getMinutes());
109
- }
110
- if (isValidDate(newToDate) && inputDate === yyyyMMddFormat(newToDate)) {
111
- setTo(newToDate);
112
- }
113
- };
114
-
115
- const onToTimeChange = (_event, time, hour, minute) => {
116
- if (isValidDate(to)) {
117
- const updatedToDate = new Date(to);
118
- updatedToDate.setHours(hour);
119
- updatedToDate.setMinutes(minute);
120
- setTo(updatedToDate);
121
- }
122
- };
123
-
124
- return (
125
- <Flex direction={{ default: 'column', lg: 'row' }}>
126
- <FlexItem>
127
- <InputGroup>
128
- <DatePicker onChange={onFromDateChange} aria-label="Start date" placeholder="YYYY-MM-DD" />
129
- <TimePicker aria-label="Start time" style={{ width: '150px' }} onChange={onFromTimeChange} />
130
- </InputGroup>
131
- </FlexItem>
132
- <FlexItem>to</FlexItem>
133
- <FlexItem>
134
- <InputGroup>
135
- <DatePicker
136
- value={isValidDate(to) ? yyyyMMddFormat(to) : to}
137
- onChange={onToDateChange}
138
- isDisabled={!isValidDate(from)}
139
- rangeStart={from}
140
- validators={[toValidator]}
141
- aria-label="End date"
142
- placeholder="YYYY-MM-DD"
143
- />
144
- <TimePicker style={{ width: '150px' }} onChange={onToTimeChange} isDisabled={!isValidDate(from)} />
145
- </InputGroup>
146
- </FlexItem>
147
- </Flex>
148
- );
149
- };
150
- ```
151
63
 
152
64
  ### Date and time pickers in modal
153
65
 
@@ -7,11 +7,6 @@ beta: true
7
7
 
8
8
  import OutlinedCalendarAltIcon from '@patternfly/react-icons/dist/esm/icons/outlined-calendar-alt-icon';
9
9
  import OutlinedClockIcon from '@patternfly/react-icons/dist/esm/icons/outlined-clock-icon';
10
- import {
11
- Dropdown as DropdownDeprecated,
12
- DropdownToggle,
13
- DropdownItem as DropdownItemDeprecated
14
- } from '@patternfly/react-core/deprecated';
15
10
 
16
11
  ## Demos
17
12
 
@@ -22,3 +17,93 @@ In this demo, learn how to use a [CalendarMonth](/components/calendar-month) com
22
17
  ```ts file="./examples/DateTimePicker/DateTimePicker.tsx"
23
18
 
24
19
  ```
20
+
21
+ ### Date and time range picker
22
+
23
+ ```js
24
+ import {
25
+ Flex,
26
+ FlexItem,
27
+ InputGroup,
28
+ DatePicker,
29
+ isValidDate,
30
+ TimePicker,
31
+ yyyyMMddFormat,
32
+ updateDateTime
33
+ } from '@patternfly/react-core';
34
+
35
+ DateTimeRangePicker = () => {
36
+ const [from, setFrom] = React.useState();
37
+ const [to, setTo] = React.useState();
38
+
39
+ const toValidator = (date) => {
40
+ return isValidDate(from) && yyyyMMddFormat(date) >= yyyyMMddFormat(from)
41
+ ? ''
42
+ : 'The "to" date must be after the "from" date';
43
+ };
44
+
45
+ const onFromDateChange = (_event, inputDate, newFromDate) => {
46
+ if (isValidDate(from) && isValidDate(newFromDate) && inputDate === yyyyMMddFormat(newFromDate)) {
47
+ newFromDate.setHours(from.getHours());
48
+ newFromDate.setMinutes(from.getMinutes());
49
+ }
50
+ if (isValidDate(newFromDate) && inputDate === yyyyMMddFormat(newFromDate)) {
51
+ setFrom(new Date(newFromDate));
52
+ }
53
+ };
54
+
55
+ const onFromTimeChange = (_event, time, hour, minute) => {
56
+ if (isValidDate(from)) {
57
+ const updatedFromDate = new Date(from);
58
+ updatedFromDate.setHours(hour);
59
+ updatedFromDate.setMinutes(minute);
60
+ setFrom(updatedFromDate);
61
+ }
62
+ };
63
+
64
+ const onToDateChange = (_event, inputDate, newToDate) => {
65
+ if (isValidDate(to) && isValidDate(newToDate) && inputDate === yyyyMMddFormat(newToDate)) {
66
+ newToDate.setHours(to.getHours());
67
+ newToDate.setMinutes(to.getMinutes());
68
+ }
69
+ if (isValidDate(newToDate) && inputDate === yyyyMMddFormat(newToDate)) {
70
+ setTo(newToDate);
71
+ }
72
+ };
73
+
74
+ const onToTimeChange = (_event, time, hour, minute) => {
75
+ if (isValidDate(to)) {
76
+ const updatedToDate = new Date(to);
77
+ updatedToDate.setHours(hour);
78
+ updatedToDate.setMinutes(minute);
79
+ setTo(updatedToDate);
80
+ }
81
+ };
82
+
83
+ return (
84
+ <Flex direction={{ default: 'column', lg: 'row' }}>
85
+ <FlexItem>
86
+ <InputGroup>
87
+ <DatePicker onChange={onFromDateChange} aria-label="Start date" placeholder="YYYY-MM-DD" />
88
+ <TimePicker aria-label="Start time" style={{ width: '150px' }} onChange={onFromTimeChange} />
89
+ </InputGroup>
90
+ </FlexItem>
91
+ <FlexItem>to</FlexItem>
92
+ <FlexItem>
93
+ <InputGroup>
94
+ <DatePicker
95
+ value={isValidDate(to) ? yyyyMMddFormat(to) : to}
96
+ onChange={onToDateChange}
97
+ isDisabled={!isValidDate(from)}
98
+ rangeStart={from}
99
+ validators={[toValidator]}
100
+ aria-label="End date"
101
+ placeholder="YYYY-MM-DD"
102
+ />
103
+ <TimePicker style={{ width: '150px' }} onChange={onToTimeChange} isDisabled={!isValidDate(from)} />
104
+ </InputGroup>
105
+ </FlexItem>
106
+ </Flex>
107
+ );
108
+ };
109
+ ```
@@ -4,19 +4,13 @@ section: components
4
4
  ---
5
5
 
6
6
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
7
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
7
8
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
8
9
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
9
10
  import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
10
11
  import ThIcon from '@patternfly/react-icons/dist/esm/icons/th-icon';
11
12
  import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
12
13
  import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
13
- import {
14
- Dropdown as DropdownDeprecated,
15
- DropdownGroup as DropdownGroupDeprecated,
16
- DropdownItem as DropdownItemDeprecated,
17
- DropdownToggle,
18
- KebabToggle
19
- } from '@patternfly/react-core/deprecated';
20
14
  import pfIcon from './Card/pf-logo-small.svg';
21
15
  import { Link } from '@reach/router';
22
16