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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/package.json +1 -1
  119. package/dist/esm/components/BackToTop/BackToTop.js +1 -1
  120. package/dist/esm/components/BackToTop/BackToTop.js.map +1 -1
  121. package/dist/esm/components/Button/Button.d.ts +2 -2
  122. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  123. package/dist/esm/components/Button/Button.js +3 -3
  124. package/dist/esm/components/Button/Button.js.map +1 -1
  125. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  126. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +1 -1
  127. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  128. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  130. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  131. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
  132. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  133. package/dist/esm/components/Drawer/Drawer.d.ts +3 -3
  134. package/dist/esm/components/Drawer/Drawer.d.ts.map +1 -1
  135. package/dist/esm/components/Drawer/Drawer.js +3 -3
  136. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  137. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +16 -0
  138. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  139. package/dist/esm/components/Drawer/DrawerPanelContent.js +132 -41
  140. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  141. package/dist/esm/components/Dropdown/Dropdown.d.ts +3 -1
  142. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  143. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  144. package/dist/esm/components/Icon/Icon.d.ts +4 -0
  145. package/dist/esm/components/Icon/Icon.d.ts.map +1 -1
  146. package/dist/esm/components/Icon/Icon.js +2 -2
  147. package/dist/esm/components/Icon/Icon.js.map +1 -1
  148. package/dist/esm/components/Label/Label.d.ts +4 -2
  149. package/dist/esm/components/Label/Label.d.ts.map +1 -1
  150. package/dist/esm/components/Label/Label.js +19 -4
  151. package/dist/esm/components/Label/Label.js.map +1 -1
  152. package/dist/esm/components/Menu/MenuContainer.d.ts +1 -1
  153. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  154. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  155. package/dist/esm/components/Modal/ModalContent.js +3 -1
  156. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  157. package/dist/esm/components/Nav/NavItem.d.ts +1 -1
  158. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  159. package/dist/esm/components/Nav/NavList.d.ts +10 -4
  160. package/dist/esm/components/Nav/NavList.d.ts.map +1 -1
  161. package/dist/esm/components/Nav/NavList.js +29 -8
  162. package/dist/esm/components/Nav/NavList.js.map +1 -1
  163. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  164. package/dist/esm/components/SearchInput/SearchInput.js +4 -2
  165. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  166. package/dist/esm/components/Select/Select.d.ts +9 -1
  167. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  168. package/dist/esm/components/Select/Select.js.map +1 -1
  169. package/dist/esm/components/Slider/Slider.d.ts +8 -4
  170. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  171. package/dist/esm/components/Slider/Slider.js +62 -16
  172. package/dist/esm/components/Slider/Slider.js.map +1 -1
  173. package/dist/esm/components/Slider/SliderStep.d.ts.map +1 -1
  174. package/dist/esm/components/Slider/SliderStep.js +2 -1
  175. package/dist/esm/components/Slider/SliderStep.js.map +1 -1
  176. package/dist/esm/components/Tabs/Tabs.d.ts +11 -6
  177. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  178. package/dist/esm/components/Tabs/Tabs.js +35 -16
  179. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  180. package/dist/esm/components/TextInput/TextInput.d.ts +3 -1
  181. package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
  182. package/dist/esm/components/TextInput/TextInput.js +8 -7
  183. package/dist/esm/components/TextInput/TextInput.js.map +1 -1
  184. package/dist/esm/components/Timestamp/Timestamp.d.ts +4 -0
  185. package/dist/esm/components/Timestamp/Timestamp.d.ts.map +1 -1
  186. package/dist/esm/components/Timestamp/Timestamp.js +7 -4
  187. package/dist/esm/components/Timestamp/Timestamp.js.map +1 -1
  188. package/dist/esm/components/Toolbar/ToolbarContent.d.ts.map +1 -1
  189. package/dist/esm/components/Toolbar/ToolbarContent.js +8 -6
  190. package/dist/esm/components/Toolbar/ToolbarContent.js.map +1 -1
  191. package/dist/esm/components/Toolbar/ToolbarExpandableContent.d.ts.map +1 -1
  192. package/dist/esm/components/Toolbar/ToolbarExpandableContent.js +3 -5
  193. package/dist/esm/components/Toolbar/ToolbarExpandableContent.js.map +1 -1
  194. package/dist/esm/components/Toolbar/ToolbarFilter.d.ts +4 -0
  195. package/dist/esm/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
  196. package/dist/esm/components/Toolbar/ToolbarFilter.js +8 -4
  197. package/dist/esm/components/Toolbar/ToolbarFilter.js.map +1 -1
  198. package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts +14 -0
  199. package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
  200. package/dist/esm/components/Toolbar/ToolbarToggleGroup.js +21 -20
  201. package/dist/esm/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
  202. package/dist/esm/components/Toolbar/ToolbarUtils.d.ts +4 -0
  203. package/dist/esm/components/Toolbar/ToolbarUtils.d.ts.map +1 -1
  204. package/dist/esm/components/Toolbar/ToolbarUtils.js +2 -1
  205. package/dist/esm/components/Toolbar/ToolbarUtils.js.map +1 -1
  206. package/dist/esm/components/Toolbar/index.d.ts +1 -0
  207. package/dist/esm/components/Toolbar/index.d.ts.map +1 -1
  208. package/dist/esm/components/Toolbar/index.js +1 -0
  209. package/dist/esm/components/Toolbar/index.js.map +1 -1
  210. package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
  211. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  212. package/dist/esm/helpers/Popper/Popper.js +27 -5
  213. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  214. package/dist/js/components/BackToTop/BackToTop.js +1 -1
  215. package/dist/js/components/BackToTop/BackToTop.js.map +1 -1
  216. package/dist/js/components/Button/Button.d.ts +2 -2
  217. package/dist/js/components/Button/Button.d.ts.map +1 -1
  218. package/dist/js/components/Button/Button.js +3 -3
  219. package/dist/js/components/Button/Button.js.map +1 -1
  220. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  221. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +1 -1
  222. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  223. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
  224. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  225. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  226. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
  227. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  228. package/dist/js/components/Drawer/Drawer.d.ts +3 -3
  229. package/dist/js/components/Drawer/Drawer.d.ts.map +1 -1
  230. package/dist/js/components/Drawer/Drawer.js +3 -3
  231. package/dist/js/components/Drawer/Drawer.js.map +1 -1
  232. package/dist/js/components/Drawer/DrawerPanelContent.d.ts +16 -0
  233. package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  234. package/dist/js/components/Drawer/DrawerPanelContent.js +132 -41
  235. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  236. package/dist/js/components/Dropdown/Dropdown.d.ts +3 -1
  237. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  238. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  239. package/dist/js/components/Icon/Icon.d.ts +4 -0
  240. package/dist/js/components/Icon/Icon.d.ts.map +1 -1
  241. package/dist/js/components/Icon/Icon.js +2 -2
  242. package/dist/js/components/Icon/Icon.js.map +1 -1
  243. package/dist/js/components/Label/Label.d.ts +4 -2
  244. package/dist/js/components/Label/Label.d.ts.map +1 -1
  245. package/dist/js/components/Label/Label.js +19 -4
  246. package/dist/js/components/Label/Label.js.map +1 -1
  247. package/dist/js/components/Menu/MenuContainer.d.ts +1 -1
  248. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  249. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  250. package/dist/js/components/Modal/ModalContent.js +3 -1
  251. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  252. package/dist/js/components/Nav/NavItem.d.ts +1 -1
  253. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  254. package/dist/js/components/Nav/NavList.d.ts +10 -4
  255. package/dist/js/components/Nav/NavList.d.ts.map +1 -1
  256. package/dist/js/components/Nav/NavList.js +29 -8
  257. package/dist/js/components/Nav/NavList.js.map +1 -1
  258. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  259. package/dist/js/components/SearchInput/SearchInput.js +4 -2
  260. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  261. package/dist/js/components/Select/Select.d.ts +9 -1
  262. package/dist/js/components/Select/Select.d.ts.map +1 -1
  263. package/dist/js/components/Select/Select.js.map +1 -1
  264. package/dist/js/components/Slider/Slider.d.ts +8 -4
  265. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  266. package/dist/js/components/Slider/Slider.js +62 -16
  267. package/dist/js/components/Slider/Slider.js.map +1 -1
  268. package/dist/js/components/Slider/SliderStep.d.ts.map +1 -1
  269. package/dist/js/components/Slider/SliderStep.js +2 -1
  270. package/dist/js/components/Slider/SliderStep.js.map +1 -1
  271. package/dist/js/components/Tabs/Tabs.d.ts +11 -6
  272. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  273. package/dist/js/components/Tabs/Tabs.js +35 -16
  274. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  275. package/dist/js/components/TextInput/TextInput.d.ts +3 -1
  276. package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
  277. package/dist/js/components/TextInput/TextInput.js +8 -7
  278. package/dist/js/components/TextInput/TextInput.js.map +1 -1
  279. package/dist/js/components/Timestamp/Timestamp.d.ts +4 -0
  280. package/dist/js/components/Timestamp/Timestamp.d.ts.map +1 -1
  281. package/dist/js/components/Timestamp/Timestamp.js +7 -4
  282. package/dist/js/components/Timestamp/Timestamp.js.map +1 -1
  283. package/dist/js/components/Toolbar/ToolbarContent.d.ts.map +1 -1
  284. package/dist/js/components/Toolbar/ToolbarContent.js +8 -6
  285. package/dist/js/components/Toolbar/ToolbarContent.js.map +1 -1
  286. package/dist/js/components/Toolbar/ToolbarExpandableContent.d.ts.map +1 -1
  287. package/dist/js/components/Toolbar/ToolbarExpandableContent.js +3 -5
  288. package/dist/js/components/Toolbar/ToolbarExpandableContent.js.map +1 -1
  289. package/dist/js/components/Toolbar/ToolbarFilter.d.ts +4 -0
  290. package/dist/js/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
  291. package/dist/js/components/Toolbar/ToolbarFilter.js +8 -4
  292. package/dist/js/components/Toolbar/ToolbarFilter.js.map +1 -1
  293. package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts +14 -0
  294. package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
  295. package/dist/js/components/Toolbar/ToolbarToggleGroup.js +21 -20
  296. package/dist/js/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
  297. package/dist/js/components/Toolbar/ToolbarUtils.d.ts +4 -0
  298. package/dist/js/components/Toolbar/ToolbarUtils.d.ts.map +1 -1
  299. package/dist/js/components/Toolbar/ToolbarUtils.js +2 -1
  300. package/dist/js/components/Toolbar/ToolbarUtils.js.map +1 -1
  301. package/dist/js/components/Toolbar/index.d.ts +1 -0
  302. package/dist/js/components/Toolbar/index.d.ts.map +1 -1
  303. package/dist/js/components/Toolbar/index.js +1 -0
  304. package/dist/js/components/Toolbar/index.js.map +1 -1
  305. package/dist/js/helpers/Popper/Popper.d.ts +2 -1
  306. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  307. package/dist/js/helpers/Popper/Popper.js +29 -6
  308. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  309. package/dist/styles/base-no-reset.css +3 -4
  310. package/dist/styles/base.css +3 -4
  311. package/dist/umd/react-core.min.js +3 -3
  312. package/helpers/package.json +1 -1
  313. package/layouts/package.json +1 -1
  314. package/next/package.json +1 -1
  315. package/package.json +6 -6
  316. package/src/components/Alert/__tests__/AlertGroup.test.tsx +77 -73
  317. package/src/components/BackToTop/BackToTop.tsx +1 -1
  318. package/src/components/BackToTop/__tests__/BackToTop.test.tsx +1 -1
  319. package/src/components/BackToTop/__tests__/__snapshots__/BackToTop.test.tsx.snap +1 -1
  320. package/src/components/BackgroundImage/__tests__/BackgroundImage.test.tsx +21 -7
  321. package/src/components/BackgroundImage/__tests__/__snapshots__/BackgroundImage.test.tsx.snap +11 -0
  322. package/src/components/Brand/__tests__/Brand.test.tsx +105 -30
  323. package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +25 -3
  324. package/src/components/Button/Button.tsx +5 -5
  325. package/src/components/Button/examples/ButtonVariations.tsx +1 -1
  326. package/src/components/Checkbox/examples/Checkbox.md +8 -2
  327. package/src/components/Checkbox/examples/CheckboxControlled.tsx +18 -16
  328. package/src/components/ClipboardCopy/ClipboardCopy.tsx +1 -0
  329. package/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +1 -1
  330. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +5 -2
  331. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyExpanded.test.tsx.snap +3 -1
  332. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +16 -12
  333. package/src/components/Drawer/Drawer.tsx +6 -6
  334. package/src/components/Drawer/DrawerPanelContent.tsx +192 -81
  335. package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +89 -0
  336. package/src/components/Drawer/examples/Drawer.md +43 -12
  337. package/src/components/Drawer/examples/DrawerFocusTrap.tsx +58 -0
  338. package/src/components/Drawer/examples/{DrawerInlinePanelRight.tsx → DrawerInlinePanelEnd.tsx} +1 -1
  339. package/src/components/Drawer/examples/{DrawerInlinePanelLeft.tsx → DrawerInlinePanelStart.tsx} +2 -2
  340. package/src/components/Drawer/examples/{DrawerPanelLeft.tsx → DrawerPanelEnd.tsx} +2 -2
  341. package/src/components/Drawer/examples/{DrawerPanelRight.tsx → DrawerPanelStart.tsx} +2 -2
  342. package/src/components/Drawer/examples/{DrawerResizableOnRight.tsx → DrawerResizableAtEnd.tsx} +3 -3
  343. package/src/components/Drawer/examples/{DrawerResizableOnLeft.tsx → DrawerResizableAtStart.tsx} +2 -2
  344. package/src/components/Dropdown/Dropdown.tsx +3 -1
  345. package/src/components/Icon/Icon.tsx +15 -1
  346. package/src/components/Icon/__tests__/Icon.test.tsx +16 -0
  347. package/src/components/Label/Label.tsx +29 -3
  348. package/src/components/Label/__tests__/Label.test.tsx +35 -0
  349. package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +1 -0
  350. package/src/components/Label/examples/LabelFilled.tsx +220 -168
  351. package/src/components/Label/examples/LabelOutline.tsx +280 -226
  352. package/src/components/Menu/MenuContainer.tsx +1 -1
  353. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +32 -15
  354. package/src/components/Modal/ModalContent.tsx +4 -6
  355. package/src/components/Nav/NavItem.tsx +1 -1
  356. package/src/components/Nav/NavList.tsx +44 -12
  357. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +10 -10
  358. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +6 -6
  359. package/src/components/SearchInput/SearchInput.tsx +5 -2
  360. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +105 -65
  361. package/src/components/SearchInput/examples/SearchInputAdvanced.tsx +1 -1
  362. package/src/components/Select/Select.tsx +9 -1
  363. package/src/components/Slider/Slider.tsx +69 -20
  364. package/src/components/Slider/SliderStep.tsx +2 -1
  365. package/src/components/Slider/_tests_/Slider.test.tsx +3 -3
  366. package/src/components/Slider/examples/SliderActions.tsx +3 -3
  367. package/src/components/Tabs/Tabs.tsx +50 -26
  368. package/src/components/Tabs/examples/Tabs.md +1 -3
  369. package/src/components/TextInput/TextInput.tsx +11 -7
  370. package/src/components/TextInput/__tests__/TextInput.test.tsx +16 -1
  371. package/src/components/TextInput/__tests__/__snapshots__/TextInput.test.tsx.snap +2 -1
  372. package/src/components/TextInput/examples/TextInput.md +2 -2
  373. package/src/components/TextInput/examples/{TextInputLeftTruncated.tsx → TextInputStartTruncated.tsx} +3 -3
  374. package/src/components/Tile/examples/Tile.md +14 -10
  375. package/src/components/Timestamp/Timestamp.tsx +12 -3
  376. package/src/components/Timestamp/__tests__/Timestamp.test.tsx +6 -0
  377. package/src/components/Timestamp/examples/Timestamp.md +8 -0
  378. package/src/components/Timestamp/examples/TimestampDefault.tsx +7 -1
  379. package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
  380. package/src/components/Toolbar/ToolbarContent.tsx +7 -11
  381. package/src/components/Toolbar/ToolbarExpandableContent.tsx +7 -3
  382. package/src/components/Toolbar/ToolbarFilter.tsx +12 -2
  383. package/src/components/Toolbar/ToolbarToggleGroup.tsx +92 -47
  384. package/src/components/Toolbar/ToolbarUtils.tsx +6 -1
  385. package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarContent.test.tsx.snap +0 -8
  386. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +3 -4
  387. package/src/components/Toolbar/__tests__/ToolbarToggleGroup.test.tsx +13 -10
  388. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +0 -59
  389. package/src/components/Toolbar/examples/Toolbar.md +6 -6
  390. package/src/components/Toolbar/index.ts +1 -0
  391. package/src/demos/Card/Card.md +3 -664
  392. package/src/demos/Card/examples/CardView.tsx +575 -0
  393. package/src/demos/CardDemos.md +4 -4
  394. package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +1 -1
  395. package/src/demos/DataListDemo.md +7 -4
  396. package/src/demos/NotificationDrawer/NotificationDrawer.md +2 -1435
  397. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +557 -0
  398. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +796 -0
  399. package/src/demos/PrimaryDetail.md +4 -5
  400. package/src/deprecated/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +42 -26
  401. package/src/helpers/Popper/Popper.tsx +43 -6
  402. package/src/components/Alert/__tests__/__snapshots__/AlertGroup.test.tsx.snap +0 -10
  403. package/src/components/Brand/__tests__/__snapshots__/Brand.test.tsx.snap +0 -11
  404. package/src/components/Checkbox/examples/checkbox.css +0 -3
  405. /package/src/demos/Card/{CardData.jsx → examples/CardData.jsx} +0 -0
@@ -0,0 +1,575 @@
1
+ import React from 'react';
2
+ import {
3
+ Badge,
4
+ Bullseye,
5
+ Button,
6
+ Card,
7
+ CardHeader,
8
+ CardTitle,
9
+ CardBody,
10
+ Divider,
11
+ Dropdown,
12
+ DropdownItem,
13
+ DropdownList,
14
+ EmptyState,
15
+ EmptyStateHeader,
16
+ EmptyStateIcon,
17
+ EmptyStateFooter,
18
+ EmptyStateVariant,
19
+ EmptyStateActions,
20
+ Gallery,
21
+ MenuToggle,
22
+ MenuToggleCheckbox,
23
+ OverflowMenu,
24
+ OverflowMenuControl,
25
+ OverflowMenuDropdownItem,
26
+ OverflowMenuItem,
27
+ PageSection,
28
+ PageSectionVariants,
29
+ Pagination,
30
+ TextContent,
31
+ Text,
32
+ Toolbar,
33
+ ToolbarItem,
34
+ ToolbarFilter,
35
+ ToolbarContent,
36
+ Select,
37
+ SelectList,
38
+ SelectOption,
39
+ MenuToggleElement
40
+ } from '@patternfly/react-core';
41
+ import TrashIcon from '@patternfly/react-icons/dist/esm/icons/trash-icon';
42
+ import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
43
+ import pfIcon from './assets/pf-logo-small.svg';
44
+ import activeMQIcon from './assets/activemq-core_200x150.png';
45
+ import avroIcon from './assets/camel-avro_200x150.png';
46
+ import dropBoxIcon from './assets/camel-dropbox_200x150.png';
47
+ import infinispanIcon from './assets/camel-infinispan_200x150.png';
48
+ import saxonIcon from './assets/camel-saxon_200x150.png';
49
+ import sparkIcon from './assets/camel-spark_200x150.png';
50
+ import swaggerIcon from './assets/camel-swagger-java_200x150.png';
51
+ import azureIcon from './assets/FuseConnector_Icons_AzureServices.png';
52
+ import restIcon from './assets/FuseConnector_Icons_REST.png';
53
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
54
+ import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
55
+ import { data } from '@patternfly/react-core/src/demos/Card/examples/CardData.jsx';
56
+
57
+ export const CardViewBasic: React.FunctionComponent = () => {
58
+ const totalItemCount = 10;
59
+
60
+ const [cardData, setCardData] = React.useState(data);
61
+ const [isChecked, setIsChecked] = React.useState(false);
62
+ const [selectedItems, setSelectedItems] = React.useState<number[]>([]);
63
+ const [areAllSelected, setAreAllSelected] = React.useState<boolean>(false);
64
+ const [splitButtonDropdownIsOpen, setSplitButtonDropdownIsOpen] = React.useState(false);
65
+ const [isLowerToolbarDropdownOpen, setIsLowerToolbarDropdownOpen] = React.useState(false);
66
+ const [isLowerToolbarKebabDropdownOpen, setIsLowerToolbarKebabDropdownOpen] = React.useState(false);
67
+ const [page, setPage] = React.useState(1);
68
+ const [perPage, setPerPage] = React.useState(10);
69
+ const [filters, setFilters] = React.useState<Record<string, string[]>>({ products: [] });
70
+ const [state, setState] = React.useState({});
71
+
72
+ interface ProductType {
73
+ id: number;
74
+ name: string;
75
+ icon: string;
76
+ description: string;
77
+ }
78
+ const checkAllSelected = (selected: number, total: number) => {
79
+ if (selected && selected < total) {
80
+ return null;
81
+ }
82
+ return selected === total;
83
+ };
84
+
85
+ const onToolbarDropdownToggle = () => {
86
+ setIsLowerToolbarDropdownOpen(!isLowerToolbarDropdownOpen);
87
+ };
88
+
89
+ const onToolbarKebabDropdownToggle = () => {
90
+ setIsLowerToolbarKebabDropdownOpen(!isLowerToolbarKebabDropdownOpen);
91
+ };
92
+
93
+ const onToolbarKebabDropdownSelect = () => {
94
+ setIsLowerToolbarKebabDropdownOpen(!isLowerToolbarKebabDropdownOpen);
95
+ };
96
+
97
+ const onCardKebabDropdownToggle = (
98
+ event: React.MouseEvent<HTMLButtonElement, MouseEvent> | React.MouseEvent<HTMLDivElement, MouseEvent>,
99
+ key: string
100
+ ) => {
101
+ setState({
102
+ [key]: !state[key as keyof Object]
103
+ });
104
+ };
105
+
106
+ const deleteItem = (item: ProductType) => {
107
+ const filter = (getter) => (val) => getter(val) !== item.id;
108
+
109
+ setCardData(cardData.filter(filter(({ id }) => id)));
110
+
111
+ setSelectedItems(selectedItems.filter(filter((id) => id)));
112
+ };
113
+
114
+ const onSetPage = (_event: any, pageNumber: number) => {
115
+ setPage(pageNumber);
116
+ };
117
+
118
+ const onPerPageSelect = (_event: any, perPage: number) => {
119
+ setPerPage(perPage);
120
+ setPage(1);
121
+ };
122
+
123
+ const onSplitButtonToggle = () => {
124
+ setSplitButtonDropdownIsOpen(!splitButtonDropdownIsOpen);
125
+ };
126
+
127
+ const onSplitButtonSelect = () => {
128
+ setSplitButtonDropdownIsOpen(false);
129
+ };
130
+
131
+ const onNameSelect = (event: any, selection = '') => {
132
+ const checked = event.target.checked;
133
+ const prevSelections = filters.products;
134
+
135
+ setFilters({
136
+ ...filters,
137
+ products: checked ? [...prevSelections, selection] : prevSelections.filter((value) => value !== selection)
138
+ });
139
+ };
140
+
141
+ const onDelete = (type = '', _id = '') => {
142
+ if (type) {
143
+ setFilters(filters);
144
+ } else {
145
+ setFilters({ products: [] });
146
+ }
147
+ };
148
+
149
+ const onChange = (event: React.FormEvent<HTMLInputElement>) => {
150
+ const name = event.currentTarget.name;
151
+ const productId = Number(name.charAt(name.length - 1));
152
+
153
+ if (selectedItems.includes(productId * 1)) {
154
+ setSelectedItems(selectedItems.filter((id) => productId * 1 !== id));
155
+
156
+ const checkAll = checkAllSelected(selectedItems.length - 1, totalItemCount);
157
+ setAreAllSelected(!!checkAll);
158
+ } else {
159
+ setSelectedItems([...selectedItems, productId * 1]);
160
+ const checkAll = checkAllSelected(selectedItems.length + 1, totalItemCount);
161
+ setAreAllSelected(!!checkAll);
162
+ }
163
+ };
164
+
165
+ const updateSelected = () => {
166
+ const rows = cardData.map((post) => {
167
+ post.selected = selectedItems.includes(post.id);
168
+ return post;
169
+ });
170
+
171
+ setCardData(rows);
172
+ };
173
+
174
+ const getAllItems = () => {
175
+ const collection: number[] = [];
176
+ for (const items of cardData) {
177
+ collection.push(items.id);
178
+ }
179
+
180
+ return collection;
181
+ };
182
+
183
+ const splitCheckboxSelectAll = (e: any) => {
184
+ let collection: number[] = [];
185
+
186
+ if (e.target.checked) {
187
+ for (let i = 0; i <= 9; i++) {
188
+ collection = [...collection, i];
189
+ }
190
+ }
191
+
192
+ setSelectedItems(collection);
193
+ setIsChecked(isChecked);
194
+ setAreAllSelected(e.target.checked);
195
+
196
+ updateSelected();
197
+ };
198
+
199
+ const selectPage = (e: { target: { checked: any } }) => {
200
+ const { checked } = e.target;
201
+ let collection: number[] = [];
202
+
203
+ collection = getAllItems();
204
+
205
+ setSelectedItems(collection);
206
+ setIsChecked(checked);
207
+ setAreAllSelected(totalItemCount === perPage ? true : false);
208
+
209
+ updateSelected();
210
+ };
211
+
212
+ const selectAll = () => {
213
+ let collection: number[] = [];
214
+ for (let i = 0; i <= 9; i++) {
215
+ collection = [...collection, i];
216
+ }
217
+
218
+ setSelectedItems(collection);
219
+ setIsChecked(true);
220
+ setAreAllSelected(true);
221
+
222
+ updateSelected();
223
+ };
224
+
225
+ const selectNone = () => {
226
+ setSelectedItems([]);
227
+ setIsChecked(false);
228
+ setAreAllSelected(false);
229
+
230
+ updateSelected();
231
+ };
232
+
233
+ const renderPagination = () => {
234
+ const defaultPerPageOptions = [
235
+ {
236
+ title: '1',
237
+ value: 1
238
+ },
239
+ {
240
+ title: '5',
241
+ value: 5
242
+ },
243
+ {
244
+ title: '10',
245
+ value: 10
246
+ }
247
+ ];
248
+
249
+ return (
250
+ <Pagination
251
+ itemCount={totalItemCount}
252
+ page={page}
253
+ perPage={perPage}
254
+ perPageOptions={defaultPerPageOptions}
255
+ onSetPage={onSetPage}
256
+ onPerPageSelect={onPerPageSelect}
257
+ variant="top"
258
+ isCompact
259
+ />
260
+ );
261
+ };
262
+
263
+ const buildSelectDropdown = () => {
264
+ const numSelected = selectedItems.length;
265
+ const anySelected = numSelected > 0;
266
+ const splitButtonDropdownItems = (
267
+ <>
268
+ <DropdownItem key="item-1" onClick={selectNone}>
269
+ Select none (0 items)
270
+ </DropdownItem>
271
+ <DropdownItem key="item-2" onClick={selectPage}>
272
+ Select page ({perPage} items)
273
+ </DropdownItem>
274
+ <DropdownItem key="item-3" onClick={selectAll}>
275
+ Select all ({totalItemCount} items)
276
+ </DropdownItem>
277
+ </>
278
+ );
279
+ return (
280
+ <Dropdown
281
+ onSelect={onSplitButtonSelect}
282
+ isOpen={splitButtonDropdownIsOpen}
283
+ onOpenChange={(isOpen) => setSplitButtonDropdownIsOpen(isOpen)}
284
+ toggle={(toggleRef) => (
285
+ <MenuToggle
286
+ ref={toggleRef}
287
+ isExpanded={splitButtonDropdownIsOpen}
288
+ onClick={onSplitButtonToggle}
289
+ aria-label="Select cards"
290
+ splitButtonOptions={{
291
+ items: [
292
+ <MenuToggleCheckbox
293
+ id="split-dropdown-checkbox"
294
+ key="split-dropdown-checkbox"
295
+ aria-label={anySelected ? 'Deselect all cards' : 'Select all cards'}
296
+ isChecked={areAllSelected}
297
+ onClick={(e) => splitCheckboxSelectAll(e)}
298
+ >
299
+ {numSelected !== 0 && `${numSelected} selected`}
300
+ </MenuToggleCheckbox>
301
+ ]
302
+ }}
303
+ ></MenuToggle>
304
+ )}
305
+ >
306
+ <DropdownList>{splitButtonDropdownItems}</DropdownList>
307
+ </Dropdown>
308
+ );
309
+ };
310
+
311
+ const buildFilterDropdown = () => {
312
+ const filterDropdownItems = (
313
+ <SelectList>
314
+ <SelectOption
315
+ hasCheckbox
316
+ key="patternfly"
317
+ value="PatternFly"
318
+ isSelected={filters.products.includes('PatternFly')}
319
+ >
320
+ PatternFly
321
+ </SelectOption>
322
+ <SelectOption hasCheckbox key="activemq" value="ActiveMQ" isSelected={filters.products.includes('ActiveMQ')}>
323
+ ActiveMQ
324
+ </SelectOption>
325
+ <SelectOption
326
+ hasCheckbox
327
+ key="apachespark"
328
+ value="Apache Spark"
329
+ isSelected={filters.products.includes('Apache Spark')}
330
+ >
331
+ Apache Spark
332
+ </SelectOption>
333
+ <SelectOption hasCheckbox key="avro" value="Avro" isSelected={filters.products.includes('Avro')}>
334
+ Avro
335
+ </SelectOption>
336
+ <SelectOption
337
+ hasCheckbox
338
+ key="azureservices"
339
+ value="Azure Services"
340
+ isSelected={filters.products.includes('Azure Services')}
341
+ >
342
+ Azure Services
343
+ </SelectOption>
344
+ <SelectOption hasCheckbox key="crypto" value="Crypto" isSelected={filters.products.includes('Crypto')}>
345
+ Crypto
346
+ </SelectOption>
347
+ <SelectOption hasCheckbox key="dropbox" value="DropBox" isSelected={filters.products.includes('DropBox')}>
348
+ DropBox
349
+ </SelectOption>
350
+ <SelectOption
351
+ hasCheckbox
352
+ key="jbossdatagrid"
353
+ value="JBoss Data Grid"
354
+ isSelected={filters.products.includes('JBoss Data Grid')}
355
+ >
356
+ JBoss Data Grid
357
+ </SelectOption>
358
+ <SelectOption hasCheckbox key="rest" value="REST" isSelected={filters.products.includes('REST')}>
359
+ REST
360
+ </SelectOption>
361
+ <SelectOption hasCheckbox key="swagger" value="SWAGGER" isSelected={filters.products.includes('SWAGGER')}>
362
+ SWAGGER
363
+ </SelectOption>
364
+ </SelectList>
365
+ );
366
+
367
+ return (
368
+ <ToolbarFilter
369
+ categoryName="Products"
370
+ chips={filters.products}
371
+ deleteChip={(type, id) => onDelete(type as string, id as string)}
372
+ >
373
+ <Select
374
+ aria-label="Products"
375
+ role="menu"
376
+ toggle={(toggleRef) => (
377
+ <MenuToggle ref={toggleRef} onClick={onToolbarDropdownToggle} isExpanded={isLowerToolbarDropdownOpen}>
378
+ Filter by creator name
379
+ {filters.products.length > 0 && <Badge isRead>{filters.products.length}</Badge>}
380
+ </MenuToggle>
381
+ )}
382
+ onSelect={(event, selection) => onNameSelect(event, selection.toString())}
383
+ onOpenChange={(isOpen) => {
384
+ setIsLowerToolbarDropdownOpen(isOpen);
385
+ }}
386
+ selected={filters.products}
387
+ isOpen={isLowerToolbarDropdownOpen}
388
+ >
389
+ {filterDropdownItems}
390
+ </Select>
391
+ </ToolbarFilter>
392
+ );
393
+ };
394
+
395
+ const toolbarKebabDropdownItems = [
396
+ <OverflowMenuDropdownItem itemId={0} key="link">
397
+ Link
398
+ </OverflowMenuDropdownItem>,
399
+ <OverflowMenuDropdownItem itemId={1} key="action" component="button">
400
+ Action
401
+ </OverflowMenuDropdownItem>,
402
+ <OverflowMenuDropdownItem itemId={2} key="disabled link" isDisabled>
403
+ Disabled Link
404
+ </OverflowMenuDropdownItem>,
405
+ <OverflowMenuDropdownItem itemId={3} key="disabled action" isDisabled component="button">
406
+ Disabled Action
407
+ </OverflowMenuDropdownItem>,
408
+ <Divider key="separator" />,
409
+ <OverflowMenuDropdownItem itemId={5} key="separated link">
410
+ Separated Link
411
+ </OverflowMenuDropdownItem>,
412
+ <OverflowMenuDropdownItem itemId={6} key="separated action" component="button">
413
+ Separated Action
414
+ </OverflowMenuDropdownItem>
415
+ ];
416
+
417
+ const toolbarItems = (
418
+ <React.Fragment>
419
+ <ToolbarItem variant="bulk-select">{buildSelectDropdown()}</ToolbarItem>
420
+ <ToolbarItem>{buildFilterDropdown()}</ToolbarItem>
421
+ <ToolbarItem variant="overflow-menu">
422
+ <OverflowMenu breakpoint="md">
423
+ <OverflowMenuItem>
424
+ <Button variant="primary">Create a project</Button>
425
+ </OverflowMenuItem>
426
+ <OverflowMenuControl hasAdditionalOptions>
427
+ <Dropdown
428
+ onSelect={onToolbarKebabDropdownSelect}
429
+ toggle={(toggleRef) => (
430
+ <MenuToggle
431
+ ref={toggleRef}
432
+ aria-label="Toolbar kebab overflow menu"
433
+ variant="plain"
434
+ onClick={onToolbarKebabDropdownToggle}
435
+ isExpanded={isLowerToolbarKebabDropdownOpen}
436
+ >
437
+ <EllipsisVIcon />
438
+ </MenuToggle>
439
+ )}
440
+ isOpen={isLowerToolbarKebabDropdownOpen}
441
+ onOpenChange={(isOpen) => setIsLowerToolbarDropdownOpen(isOpen)}
442
+ >
443
+ <DropdownList>{toolbarKebabDropdownItems}</DropdownList>
444
+ </Dropdown>
445
+ </OverflowMenuControl>
446
+ </OverflowMenu>
447
+ </ToolbarItem>
448
+ <ToolbarItem variant="pagination" align={{ default: 'alignRight' }}>
449
+ {renderPagination()}
450
+ </ToolbarItem>
451
+ </React.Fragment>
452
+ );
453
+
454
+ const icons = {
455
+ pfIcon,
456
+ activeMQIcon,
457
+ sparkIcon,
458
+ avroIcon,
459
+ azureIcon,
460
+ saxonIcon,
461
+ dropBoxIcon,
462
+ infinispanIcon,
463
+ restIcon,
464
+ swaggerIcon
465
+ };
466
+
467
+ const filtered =
468
+ filters.products.length > 0
469
+ ? data.filter((card: { name: string }) => filters.products.length === 0 || filters.products.includes(card.name))
470
+ : cardData.slice((page - 1) * perPage, perPage === 1 ? page * perPage : page * perPage - 1);
471
+
472
+ return (
473
+ <React.Fragment>
474
+ <DashboardWrapper mainContainerId="main-content-card-view-default-nav" breadcrumb={null}>
475
+ <PageSection variant={PageSectionVariants.light}>
476
+ <TextContent>
477
+ <Text component="h1">Projects</Text>
478
+ <Text component="p">This is a demo that showcases PatternFly cards.</Text>
479
+ </TextContent>
480
+ <Toolbar id="toolbar-group-types" clearAllFilters={onDelete}>
481
+ <ToolbarContent>{toolbarItems}</ToolbarContent>
482
+ </Toolbar>
483
+ </PageSection>
484
+ <PageSection isFilled>
485
+ <Gallery hasGutter aria-label="Selectable card container">
486
+ <Card isCompact>
487
+ <Bullseye>
488
+ <EmptyState variant={EmptyStateVariant.xs}>
489
+ <EmptyStateHeader
490
+ headingLevel="h2"
491
+ titleText="Add a new card to your page"
492
+ icon={<EmptyStateIcon icon={PlusCircleIcon} />}
493
+ />
494
+ <EmptyStateFooter>
495
+ <EmptyStateActions>
496
+ <Button variant="link">Add card</Button>
497
+ </EmptyStateActions>
498
+ </EmptyStateFooter>
499
+ </EmptyState>
500
+ </Bullseye>
501
+ </Card>
502
+ {filtered.map((product, key) => (
503
+ <Card isCompact isClickable isSelectable key={product.name} id={product.name.replace(/ /g, '-')}>
504
+ <CardHeader
505
+ selectableActions={{
506
+ isChecked: selectedItems.includes(product.id),
507
+ selectableActionId: `selectable-actions-item-${product.id}`,
508
+ selectableActionAriaLabelledby: product.name.replace(/ /g, '-'),
509
+ name: `check-${product.id}`,
510
+ onChange
511
+ }}
512
+ actions={{
513
+ actions: (
514
+ <>
515
+ <Dropdown
516
+ isOpen={!!state[key] ?? false}
517
+ onOpenChange={(isOpen) => setState({ [key]: isOpen })}
518
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
519
+ <MenuToggle
520
+ ref={toggleRef}
521
+ aria-label={`${product.name} actions`}
522
+ variant="plain"
523
+ onClick={(e) => {
524
+ onCardKebabDropdownToggle(e, key.toString());
525
+ }}
526
+ isExpanded={!!state[key]}
527
+ >
528
+ <EllipsisVIcon />
529
+ </MenuToggle>
530
+ )}
531
+ popperProps={{ position: 'right' }}
532
+ >
533
+ <DropdownList>
534
+ <DropdownItem
535
+ key="trash"
536
+ onClick={() => {
537
+ deleteItem(product);
538
+ }}
539
+ >
540
+ <TrashIcon />
541
+ Delete
542
+ </DropdownItem>
543
+ </DropdownList>
544
+ </Dropdown>
545
+ </>
546
+ )
547
+ }}
548
+ >
549
+ <img src={icons[product.icon]} alt={`${product.name} icon`} style={{ maxWidth: '60px' }} />
550
+ </CardHeader>
551
+ <CardTitle>{product.name}</CardTitle>
552
+ <CardBody>{product.description}</CardBody>
553
+ </Card>
554
+ ))}
555
+ </Gallery>
556
+ </PageSection>
557
+ <PageSection
558
+ isFilled={false}
559
+ stickyOnBreakpoint={{ default: 'bottom' }}
560
+ padding={{ default: 'noPadding' }}
561
+ variant="light"
562
+ >
563
+ <Pagination
564
+ itemCount={totalItemCount}
565
+ page={page}
566
+ perPage={perPage}
567
+ onPerPageSelect={onPerPageSelect}
568
+ onSetPage={onSetPage}
569
+ variant="bottom"
570
+ />
571
+ </PageSection>
572
+ </DashboardWrapper>
573
+ </React.Fragment>
574
+ );
575
+ };
@@ -168,7 +168,7 @@ class CardGridDemo extends React.Component {
168
168
  </ListItem>
169
169
  </List>
170
170
  </Flex>
171
- <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="right">
171
+ <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="end">
172
172
  View all set up cluster steps
173
173
  </Button>
174
174
  </Flex>
@@ -196,7 +196,7 @@ class CardGridDemo extends React.Component {
196
196
  </ListItem>
197
197
  </List>
198
198
  </Flex>
199
- <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="right">
199
+ <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="end">
200
200
  View all guided tours
201
201
  </Button>
202
202
  </Flex>
@@ -227,7 +227,7 @@ class CardGridDemo extends React.Component {
227
227
  </ListItem>
228
228
  </List>
229
229
  </Flex>
230
- <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="right">
230
+ <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="end">
231
231
  View all quick starts
232
232
  </Button>
233
233
  </Flex>
@@ -261,7 +261,7 @@ class CardGridDemo extends React.Component {
261
261
  </ListItem>
262
262
  </List>
263
263
  </Flex>
264
- <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="right">
264
+ <Button href="#" component="a" variant="link" isInline icon={<ArrowRightIcon />} iconPosition="end">
265
265
  View all learning resources
266
266
  </Button>
267
267
  </Flex>
@@ -12,7 +12,7 @@ import {
12
12
  DropdownItem
13
13
  } from '@patternfly/react-core';
14
14
  import ThIcon from '@patternfly/react-icons/dist/js/icons/th-icon';
15
- import pfIcon from 'pf-logo-small.svg';
15
+ import pfIcon from '@patternfly/react-core/src/demos/Card/pf-logo-small.svg';
16
16
 
17
17
  const MockLink: React.FunctionComponent = ({ to, ...props }: any) => <a href={to} {...props}></a>;
18
18
 
@@ -35,7 +35,8 @@ import {
35
35
  ToolbarExpandIconWrapper,
36
36
  ToolbarContent,
37
37
  SearchInput,
38
- Tooltip
38
+ Tooltip,
39
+ Icon
39
40
  } from '@patternfly/react-core';
40
41
  import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';
41
42
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
@@ -123,9 +124,11 @@ class ExpandableDataList extends React.Component {
123
124
  variant="plain"
124
125
  aria-label={this.state.allExpanded ? 'Collapse all rows' : 'Expand all rows'}
125
126
  >
126
- <ToolbarExpandIconWrapper>
127
- <AngleRightIcon />
128
- </ToolbarExpandIconWrapper>
127
+ <Icon shouldMirrorRTL>
128
+ <ToolbarExpandIconWrapper>
129
+ <AngleRightIcon />
130
+ </ToolbarExpandIconWrapper>
131
+ </Icon>
129
132
  </Button>
130
133
  </Tooltip>
131
134
  </ToolbarItem>