@patternfly/react-core 5.1.1-prerelease.9 → 6.0.0-alpha.1

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 (328) hide show
  1. package/CHANGELOG.md +97 -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/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  120. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +1 -1
  121. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  122. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
  123. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  124. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  125. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
  126. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  127. package/dist/esm/components/DragDrop/Draggable.d.ts.map +1 -1
  128. package/dist/esm/components/DragDrop/Draggable.js +1 -0
  129. package/dist/esm/components/DragDrop/Draggable.js.map +1 -1
  130. package/dist/esm/components/Drawer/Drawer.d.ts +3 -3
  131. package/dist/esm/components/Drawer/Drawer.d.ts.map +1 -1
  132. package/dist/esm/components/Drawer/Drawer.js +3 -3
  133. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  134. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  135. package/dist/esm/components/Drawer/DrawerPanelContent.js +77 -26
  136. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  137. package/dist/esm/components/Dropdown/Dropdown.d.ts +3 -1
  138. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  139. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  140. package/dist/esm/components/Icon/Icon.d.ts +4 -0
  141. package/dist/esm/components/Icon/Icon.d.ts.map +1 -1
  142. package/dist/esm/components/Icon/Icon.js +2 -2
  143. package/dist/esm/components/Icon/Icon.js.map +1 -1
  144. package/dist/esm/components/Label/Label.d.ts +4 -2
  145. package/dist/esm/components/Label/Label.d.ts.map +1 -1
  146. package/dist/esm/components/Label/Label.js +19 -4
  147. package/dist/esm/components/Label/Label.js.map +1 -1
  148. package/dist/esm/components/Menu/MenuContainer.d.ts +1 -1
  149. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  150. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  151. package/dist/esm/components/Modal/ModalContent.js +3 -1
  152. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  153. package/dist/esm/components/Nav/NavItem.d.ts +1 -1
  154. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  155. package/dist/esm/components/Nav/NavList.d.ts +10 -4
  156. package/dist/esm/components/Nav/NavList.d.ts.map +1 -1
  157. package/dist/esm/components/Nav/NavList.js +29 -8
  158. package/dist/esm/components/Nav/NavList.js.map +1 -1
  159. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  160. package/dist/esm/components/SearchInput/SearchInput.js +4 -2
  161. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  162. package/dist/esm/components/Select/Select.d.ts +9 -1
  163. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  164. package/dist/esm/components/Select/Select.js.map +1 -1
  165. package/dist/esm/components/Slider/Slider.d.ts +8 -4
  166. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  167. package/dist/esm/components/Slider/Slider.js +62 -16
  168. package/dist/esm/components/Slider/Slider.js.map +1 -1
  169. package/dist/esm/components/Slider/SliderStep.d.ts.map +1 -1
  170. package/dist/esm/components/Slider/SliderStep.js +2 -1
  171. package/dist/esm/components/Slider/SliderStep.js.map +1 -1
  172. package/dist/esm/components/Tabs/Tabs.d.ts +11 -6
  173. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  174. package/dist/esm/components/Tabs/Tabs.js +35 -16
  175. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  176. package/dist/esm/components/TextInput/TextInput.d.ts +3 -1
  177. package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
  178. package/dist/esm/components/TextInput/TextInput.js +8 -7
  179. package/dist/esm/components/TextInput/TextInput.js.map +1 -1
  180. package/dist/esm/components/Timestamp/Timestamp.d.ts +4 -0
  181. package/dist/esm/components/Timestamp/Timestamp.d.ts.map +1 -1
  182. package/dist/esm/components/Timestamp/Timestamp.js +7 -4
  183. package/dist/esm/components/Timestamp/Timestamp.js.map +1 -1
  184. package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
  185. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  186. package/dist/esm/helpers/Popper/Popper.js +27 -5
  187. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  188. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  189. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +1 -1
  190. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  191. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
  192. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  193. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  194. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
  195. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  196. package/dist/js/components/DragDrop/Draggable.d.ts.map +1 -1
  197. package/dist/js/components/DragDrop/Draggable.js +1 -0
  198. package/dist/js/components/DragDrop/Draggable.js.map +1 -1
  199. package/dist/js/components/Drawer/Drawer.d.ts +3 -3
  200. package/dist/js/components/Drawer/Drawer.d.ts.map +1 -1
  201. package/dist/js/components/Drawer/Drawer.js +3 -3
  202. package/dist/js/components/Drawer/Drawer.js.map +1 -1
  203. package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  204. package/dist/js/components/Drawer/DrawerPanelContent.js +77 -26
  205. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  206. package/dist/js/components/Dropdown/Dropdown.d.ts +3 -1
  207. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  208. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  209. package/dist/js/components/Icon/Icon.d.ts +4 -0
  210. package/dist/js/components/Icon/Icon.d.ts.map +1 -1
  211. package/dist/js/components/Icon/Icon.js +2 -2
  212. package/dist/js/components/Icon/Icon.js.map +1 -1
  213. package/dist/js/components/Label/Label.d.ts +4 -2
  214. package/dist/js/components/Label/Label.d.ts.map +1 -1
  215. package/dist/js/components/Label/Label.js +19 -4
  216. package/dist/js/components/Label/Label.js.map +1 -1
  217. package/dist/js/components/Menu/MenuContainer.d.ts +1 -1
  218. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  219. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  220. package/dist/js/components/Modal/ModalContent.js +3 -1
  221. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  222. package/dist/js/components/Nav/NavItem.d.ts +1 -1
  223. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  224. package/dist/js/components/Nav/NavList.d.ts +10 -4
  225. package/dist/js/components/Nav/NavList.d.ts.map +1 -1
  226. package/dist/js/components/Nav/NavList.js +29 -8
  227. package/dist/js/components/Nav/NavList.js.map +1 -1
  228. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  229. package/dist/js/components/SearchInput/SearchInput.js +4 -2
  230. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  231. package/dist/js/components/Select/Select.d.ts +9 -1
  232. package/dist/js/components/Select/Select.d.ts.map +1 -1
  233. package/dist/js/components/Select/Select.js.map +1 -1
  234. package/dist/js/components/Slider/Slider.d.ts +8 -4
  235. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  236. package/dist/js/components/Slider/Slider.js +62 -16
  237. package/dist/js/components/Slider/Slider.js.map +1 -1
  238. package/dist/js/components/Slider/SliderStep.d.ts.map +1 -1
  239. package/dist/js/components/Slider/SliderStep.js +2 -1
  240. package/dist/js/components/Slider/SliderStep.js.map +1 -1
  241. package/dist/js/components/Tabs/Tabs.d.ts +11 -6
  242. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  243. package/dist/js/components/Tabs/Tabs.js +35 -16
  244. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  245. package/dist/js/components/TextInput/TextInput.d.ts +3 -1
  246. package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
  247. package/dist/js/components/TextInput/TextInput.js +8 -7
  248. package/dist/js/components/TextInput/TextInput.js.map +1 -1
  249. package/dist/js/components/Timestamp/Timestamp.d.ts +4 -0
  250. package/dist/js/components/Timestamp/Timestamp.d.ts.map +1 -1
  251. package/dist/js/components/Timestamp/Timestamp.js +7 -4
  252. package/dist/js/components/Timestamp/Timestamp.js.map +1 -1
  253. package/dist/js/helpers/Popper/Popper.d.ts +2 -1
  254. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  255. package/dist/js/helpers/Popper/Popper.js +29 -6
  256. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  257. package/dist/umd/react-core.min.js +3 -3
  258. package/helpers/package.json +1 -1
  259. package/layouts/package.json +1 -1
  260. package/next/package.json +1 -1
  261. package/package.json +8 -7
  262. package/src/components/BackgroundImage/__tests__/BackgroundImage.test.tsx +21 -7
  263. package/src/components/BackgroundImage/__tests__/__snapshots__/BackgroundImage.test.tsx.snap +11 -0
  264. package/src/components/Brand/__tests__/Brand.test.tsx +105 -30
  265. package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +25 -3
  266. package/src/components/Checkbox/examples/Checkbox.md +8 -2
  267. package/src/components/Checkbox/examples/CheckboxControlled.tsx +18 -16
  268. package/src/components/ClipboardCopy/ClipboardCopy.tsx +1 -0
  269. package/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +1 -1
  270. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +5 -2
  271. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyExpanded.test.tsx.snap +3 -1
  272. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +16 -12
  273. package/src/components/DragDrop/Draggable.tsx +1 -0
  274. package/src/components/Drawer/Drawer.tsx +6 -6
  275. package/src/components/Drawer/DrawerPanelContent.tsx +72 -26
  276. package/src/components/Drawer/examples/Drawer.md +12 -12
  277. package/src/components/Drawer/examples/{DrawerInlinePanelRight.tsx → DrawerInlinePanelEnd.tsx} +1 -1
  278. package/src/components/Drawer/examples/{DrawerInlinePanelLeft.tsx → DrawerInlinePanelStart.tsx} +2 -2
  279. package/src/components/Drawer/examples/{DrawerPanelLeft.tsx → DrawerPanelEnd.tsx} +2 -2
  280. package/src/components/Drawer/examples/{DrawerPanelRight.tsx → DrawerPanelStart.tsx} +2 -2
  281. package/src/components/Drawer/examples/{DrawerResizableOnRight.tsx → DrawerResizableAtEnd.tsx} +3 -3
  282. package/src/components/Drawer/examples/{DrawerResizableOnLeft.tsx → DrawerResizableAtStart.tsx} +2 -2
  283. package/src/components/Dropdown/Dropdown.tsx +3 -1
  284. package/src/components/Icon/Icon.tsx +15 -1
  285. package/src/components/Icon/__tests__/Icon.test.tsx +16 -0
  286. package/src/components/Label/Label.tsx +29 -3
  287. package/src/components/Label/__tests__/Label.test.tsx +35 -0
  288. package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +1 -0
  289. package/src/components/Label/examples/LabelFilled.tsx +220 -168
  290. package/src/components/Label/examples/LabelOutline.tsx +280 -226
  291. package/src/components/Menu/MenuContainer.tsx +1 -1
  292. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +32 -15
  293. package/src/components/Modal/ModalContent.tsx +4 -6
  294. package/src/components/Nav/NavItem.tsx +1 -1
  295. package/src/components/Nav/NavList.tsx +44 -12
  296. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +10 -10
  297. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +6 -6
  298. package/src/components/SearchInput/SearchInput.tsx +5 -2
  299. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +105 -65
  300. package/src/components/Select/Select.tsx +9 -1
  301. package/src/components/Slider/Slider.tsx +69 -20
  302. package/src/components/Slider/SliderStep.tsx +2 -1
  303. package/src/components/Slider/_tests_/Slider.test.tsx +3 -3
  304. package/src/components/Slider/examples/SliderActions.tsx +3 -3
  305. package/src/components/Tabs/Tabs.tsx +50 -26
  306. package/src/components/Tabs/examples/Tabs.md +1 -3
  307. package/src/components/TextInput/TextInput.tsx +11 -7
  308. package/src/components/TextInput/__tests__/TextInput.test.tsx +16 -1
  309. package/src/components/TextInput/__tests__/__snapshots__/TextInput.test.tsx.snap +2 -1
  310. package/src/components/TextInput/examples/TextInput.md +2 -2
  311. package/src/components/TextInput/examples/{TextInputLeftTruncated.tsx → TextInputStartTruncated.tsx} +3 -3
  312. package/src/components/Timestamp/Timestamp.tsx +12 -3
  313. package/src/components/Timestamp/__tests__/Timestamp.test.tsx +6 -0
  314. package/src/components/Timestamp/examples/Timestamp.md +8 -0
  315. package/src/components/Timestamp/examples/TimestampDefault.tsx +7 -1
  316. package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
  317. package/src/components/Toolbar/examples/Toolbar.md +0 -6
  318. package/src/demos/Card/Card.md +3 -664
  319. package/src/demos/Card/examples/CardView.tsx +575 -0
  320. package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +1 -1
  321. package/src/demos/DataListDemo.md +7 -4
  322. package/src/demos/PrimaryDetail.md +3 -4
  323. package/src/deprecated/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +42 -26
  324. package/src/helpers/Popper/Popper.tsx +43 -6
  325. package/src/components/Brand/__tests__/__snapshots__/Brand.test.tsx.snap +0 -11
  326. package/src/components/Checkbox/examples/checkbox.css +0 -3
  327. package/src/components/Toolbar/examples/Test.tsx +0 -258
  328. /package/src/demos/Card/{CardData.jsx → examples/CardData.jsx} +0 -0
@@ -3,8 +3,6 @@ id: Card view
3
3
  section: patterns
4
4
  ---
5
5
 
6
- import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
7
-
8
6
  import TrashIcon from '@patternfly/react-icons/dist/esm/icons/trash-icon';
9
7
  import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
10
8
  import pfIcon from '../assets/pf-logo-small.svg';
@@ -18,7 +16,8 @@ import swaggerIcon from '../assets/camel-swagger-java_200x150.png';
18
16
  import azureIcon from '../assets/FuseConnector_Icons_AzureServices.png';
19
17
  import restIcon from '../assets/FuseConnector_Icons_REST.png';
20
18
  import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
21
- import { data } from './CardData.jsx';
19
+ import { data } from '@patternfly/react-core/src/demos/Card/examples/CardData.jsx';
20
+ import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
22
21
 
23
22
  ## Demos
24
23
 
@@ -26,665 +25,5 @@ This demonstrates how you can assemble a full page view that contains a grid of
26
25
 
27
26
  ### Card view
28
27
 
29
- ```js isFullscreen
30
- import React from 'react';
31
- import {
32
- Badge,
33
- Bullseye,
34
- Button,
35
- Card,
36
- CardHeader,
37
- CardTitle,
38
- CardBody,
39
- Divider,
40
- Dropdown,
41
- DropdownItem,
42
- DropdownList,
43
- EmptyState,
44
- EmptyStateHeader,
45
- EmptyStateIcon,
46
- EmptyStateFooter,
47
- EmptyStateVariant,
48
- EmptyStateActions,
49
- Gallery,
50
- MenuToggle,
51
- MenuToggleCheckbox,
52
- OverflowMenu,
53
- OverflowMenuControl,
54
- OverflowMenuDropdownItem,
55
- OverflowMenuItem,
56
- PageSection,
57
- PageSectionVariants,
58
- Pagination,
59
- TextContent,
60
- Text,
61
- Toolbar,
62
- ToolbarItem,
63
- ToolbarFilter,
64
- ToolbarContent,
65
- Select,
66
- SelectList,
67
- SelectOption
68
- } from '@patternfly/react-core';
69
- import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
70
- import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
71
- import TrashIcon from '@patternfly/react-icons/dist/esm/icons/trash-icon';
72
- import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
73
- import pfIcon from '../assets/pf-logo-small.svg';
74
- import activeMQIcon from '../assets/activemq-core_200x150.png';
75
- import avroIcon from '../assets/camel-avro_200x150.png';
76
- import dropBoxIcon from '../assets/camel-dropbox_200x150.png';
77
- import infinispanIcon from '../assets/camel-infinispan_200x150.png';
78
- import saxonIcon from '../assets/camel-saxon_200x150.png';
79
- import sparkIcon from '../assets/camel-spark_200x150.png';
80
- import swaggerIcon from '../assets/camel-swagger-java_200x150.png';
81
- import azureIcon from '../assets/FuseConnector_Icons_AzureServices.png';
82
- import restIcon from '../assets/FuseConnector_Icons_REST.png';
83
- import { data } from './CardData.jsx';
84
-
85
- class CardViewBasic extends React.Component {
86
- constructor(props) {
87
- super(props);
88
-
89
- this.state = {
90
- filters: {
91
- products: []
92
- },
93
- cardData: data,
94
- isChecked: false,
95
- selectedItems: [],
96
- areAllSelected: false,
97
- isUpperToolbarDropdownOpen: false,
98
- isUpperToolbarKebabDropdownOpen: false,
99
- isLowerToolbarDropdownOpen: false,
100
- isLowerToolbarKebabDropdownOpen: false,
101
- isCardKebabDropdownOpen: false,
102
- activeItem: 0,
103
- splitButtonDropdownIsOpen: false,
104
- page: 1,
105
- perPage: 10,
106
- totalItemCount: 10
107
- };
108
-
109
- this.checkAllSelected = (selected, total) => {
110
- if (selected && selected < total) {
111
- return null;
112
- }
113
- return selected === total;
114
- };
115
-
116
- this.onToolbarDropdownToggle = () => {
117
- this.setState((prevState) => ({
118
- isLowerToolbarDropdownOpen: !prevState.isLowerToolbarDropdownOpen
119
- }));
120
- };
121
-
122
- this.onToolbarKebabDropdownToggle = () => {
123
- this.setState({
124
- isOpen: !this.state.isLowerToolbarKebabDropdownOpen
125
- });
126
- };
127
-
128
- this.onToolbarKebabDropdownSelect = (event) => {
129
- this.setState({
130
- isLowerToolbarKebabDropdownOpen: !this.state.isLowerToolbarKebabDropdownOpen
131
- });
132
- };
133
-
134
- this.onCardKebabDropdownToggle = (key, event) => {
135
- this.setState((prevState) => ({
136
- [key]: !prevState[key]
137
- }));
138
- };
139
-
140
- this.onCardKebabDropdownSelect = (key) => {
141
- this.setState({
142
- [key]: !this.state[key]
143
- });
144
- };
145
-
146
- this.deleteItem = (item) => () => {
147
- const filter = (getter) => (val) => getter(val) !== item.id;
148
- this.setState({
149
- cardData: this.state.cardData.filter(filter(({ id }) => id)),
150
- selectedItems: this.state.selectedItems.filter(filter((id) => id))
151
- });
152
- };
153
-
154
- this.onSetPage = (_event, pageNumber) => {
155
- this.setState({
156
- page: pageNumber
157
- });
158
- };
159
-
160
- this.onPerPageSelect = (_event, perPage) => {
161
- this.setState({
162
- perPage,
163
- page: 1
164
- });
165
- };
166
-
167
- this.onSplitButtonToggle = () => {
168
- this.setState((prevState) => ({
169
- splitButtonDropdownIsOpen: !prevState.splitButtonDropdownIsOpen
170
- }));
171
- };
172
-
173
- this.onSplitButtonSelect = () => {
174
- this.setState({
175
- splitButtonDropdownIsOpen: false
176
- });
177
- };
178
-
179
- this.onNameSelect = (event, selection) => {
180
- const checked = event.target.checked;
181
- this.setState((prevState) => {
182
- const prevSelections = prevState.filters.products;
183
- return {
184
- filters: {
185
- ...prevState.filters,
186
- ['products']: checked
187
- ? [...prevSelections, selection]
188
- : prevSelections.filter((value) => value !== selection)
189
- }
190
- };
191
- });
192
- };
193
-
194
- this.onDelete = (type = '', id = '') => {
195
- if (type) {
196
- this.setState((prevState) => {
197
- prevState.filters[type.toLowerCase()] = prevState.filters[type.toLowerCase()].filter((s) => s !== id);
198
- return {
199
- filters: prevState.filters
200
- };
201
- });
202
- } else {
203
- this.setState({
204
- filters: {
205
- products: []
206
- }
207
- });
208
- }
209
- };
210
-
211
- this.onClick = (productId) => {
212
- this.setState((prevState) =>
213
- prevState.selectedItems.includes(productId * 1)
214
- ? {
215
- selectedItems: [...prevState.selectedItems.filter((id) => productId * 1 != id)],
216
- areAllSelected: this.checkAllSelected(prevState.selectedItems.length - 1, prevState.totalItemCount)
217
- }
218
- : {
219
- selectedItems: [...prevState.selectedItems, productId * 1],
220
- areAllSelected: this.checkAllSelected(prevState.selectedItems.length + 1, prevState.totalItemCount)
221
- }
222
- );
223
- };
224
- }
225
-
226
- selectedItems(e) {
227
- const { value, checked } = e.target;
228
- let { selectedItems } = this.state;
229
-
230
- if (checked) {
231
- selectedItems = [...selectedItems, value];
232
- } else {
233
- selectedItems = selectedItems.filter((el) => el !== value);
234
- if (this.state.areAllSelected) {
235
- this.setState({
236
- areAllSelected: !this.state.areAllSelected
237
- });
238
- }
239
- }
240
- this.setState({ selectedItems });
241
- }
242
-
243
- splitCheckboxSelectAll(e) {
244
- const { checked } = e.target;
245
- const { isChecked } = this.state;
246
- let collection = [];
247
-
248
- if (checked) {
249
- for (let i = 0; i <= 9; i++) {
250
- collection = [...collection, i];
251
- }
252
- }
253
-
254
- this.setState(
255
- {
256
- selectedItems: collection,
257
- isChecked,
258
- areAllSelected: checked
259
- },
260
- this.updateSelected
261
- );
262
- }
263
-
264
- selectPage(e) {
265
- const { checked } = e.target;
266
- const { totalItemCount, perPage } = this.state;
267
- let collection = [];
268
-
269
- collection = this.getAllItems();
270
-
271
- this.setState(
272
- {
273
- selectedItems: collection,
274
- isChecked: checked,
275
- areAllSelected: totalItemCount === perPage ? true : false
276
- },
277
- this.updateSelected
278
- );
279
- }
280
-
281
- selectAll() {
282
-
283
- let collection = [];
284
- for (let i = 0; i <= 9; i++) {
285
- collection = [...collection, i];
286
- }
287
-
288
- this.setState(
289
- {
290
- selectedItems: collection,
291
- isChecked: true,
292
- areAllSelected: true
293
- },
294
- this.updateSelected
295
- );
296
- }
297
-
298
- selectNone() {
299
- this.setState(
300
- {
301
- selectedItems: [],
302
- isChecked: false,
303
- areAllSelected: false
304
- },
305
- this.updateSelected
306
- );
307
- }
308
-
309
- getAllItems() {
310
- const { cardData } = this.state;
311
- const collection = [];
312
- for (const items of cardData) {
313
- collection.push(items.id);
314
- }
315
-
316
- return collection;
317
- }
318
-
319
- updateSelected() {
320
- const { cardData, selectedItems } = this.state;
321
- const rows = cardData.map((post) => {
322
- post.selected = selectedItems.includes(post.id);
323
- return post;
324
- });
325
-
326
- this.setState({
327
- cardData: rows
328
- });
329
- }
330
-
331
- renderPagination() {
332
- const { page, perPage, totalItemCount } = this.state;
333
-
334
- const defaultPerPageOptions = [
335
- {
336
- title: '1',
337
- value: 1
338
- },
339
- {
340
- title: '5',
341
- value: 5
342
- },
343
- {
344
- title: '10',
345
- value: 10
346
- }
347
- ];
348
-
349
- return (
350
- <Pagination
351
- itemCount={totalItemCount}
352
- page={page}
353
- perPage={perPage}
354
- perPageOptions={defaultPerPageOptions}
355
- onSetPage={this.onSetPage}
356
- onPerPageSelect={this.onPerPageSelect}
357
- variant="top"
358
- isCompact
359
- />
360
- );
361
- }
362
-
363
- buildSelectDropdown() {
364
- const { splitButtonDropdownIsOpen, selectedItems, areAllSelected } = this.state;
365
- const numSelected = selectedItems.length;
366
- const allSelected = areAllSelected;
367
- const anySelected = numSelected > 0;
368
- const someChecked = anySelected ? null : false;
369
- const isChecked = allSelected ? true : someChecked;
370
- const splitButtonDropdownItems = (
371
- <>
372
- <DropdownItem key="item-1" onClick={this.selectNone.bind(this)}>
373
- Select none (0 items)
374
- </DropdownItem>
375
- <DropdownItem key="item-2" onClick={this.selectPage.bind(this)}>
376
- Select page ({this.state.perPage} items)
377
- </DropdownItem>
378
- <DropdownItem key="item-3" onClick={this.selectAll.bind(this)}>
379
- Select all ({this.state.totalItemCount} items)
380
- </DropdownItem>
381
- </>
382
- );
383
- return (
384
- <Dropdown
385
- onSelect={this.onSplitButtonSelect}
386
- isOpen={splitButtonDropdownIsOpen}
387
- onOpenChange={(isOpen) => this.setState({ splitButtonDropdownIsOpen: isOpen })}
388
- toggle={(toggleRef) => (
389
- <MenuToggle
390
- ref={toggleRef}
391
- isExpanded={splitButtonDropdownIsOpen}
392
- onClick={this.onSplitButtonToggle}
393
- aria-label="Select cards"
394
- splitButtonOptions={{
395
- items: [
396
- <MenuToggleCheckbox
397
- id="split-dropdown-checkbox"
398
- key="split-dropdown-checkbox"
399
- aria-label={anySelected ? 'Deselect all cards' : 'Select all cards'}
400
- isChecked={areAllSelected}
401
- onClick={this.splitCheckboxSelectAll.bind(this)}
402
- >
403
- {numSelected !== 0 && `${numSelected} selected`}
404
- </MenuToggleCheckbox>
405
- ]
406
- }}
407
- ></MenuToggle>
408
- )}
409
- >
410
- <DropdownList>{splitButtonDropdownItems}</DropdownList>
411
- </Dropdown>
412
- );
413
- }
414
-
415
- buildFilterDropdown() {
416
- const { isLowerToolbarDropdownOpen, filters } = this.state;
417
-
418
- const filterDropdownItems = (
419
- <SelectList>
420
- <SelectOption
421
- hasCheckbox
422
- key="patternfly"
423
- value="PatternFly"
424
- isSelected={filters.products.includes('PatternFly')}
425
- >
426
- PatternFly
427
- </SelectOption>
428
- <SelectOption hasCheckbox key="activemq" value="ActiveMQ" isSelected={filters.products.includes('ActiveMQ')}>
429
- ActiveMQ
430
- </SelectOption>
431
- <SelectOption
432
- hasCheckbox
433
- key="apachespark"
434
- value="Apache Spark"
435
- isSelected={filters.products.includes('Apache Spark')}
436
- >
437
- Apache Spark
438
- </SelectOption>
439
- <SelectOption hasCheckbox key="avro" value="Avro" isSelected={filters.products.includes('Avro')}>
440
- Avro
441
- </SelectOption>
442
- <SelectOption
443
- hasCheckbox
444
- key="azureservices"
445
- value="Azure Services"
446
- isSelected={filters.products.includes('Azure Services')}
447
- >
448
- Azure Services
449
- </SelectOption>
450
- <SelectOption hasCheckbox key="crypto" value="Crypto" isSelected={filters.products.includes('Crypto')}>
451
- Crypto
452
- </SelectOption>
453
- <SelectOption hasCheckbox key="dropbox" value="DropBox" isSelected={filters.products.includes('DropBox')}>
454
- DropBox
455
- </SelectOption>
456
- <SelectOption
457
- hasCheckbox
458
- key="jbossdatagrid"
459
- value="JBoss Data Grid"
460
- isSelected={filters.products.includes('JBoss Data Grid')}
461
- >
462
- JBoss Data Grid
463
- </SelectOption>
464
- <SelectOption hasCheckbox key="rest" value="REST" isSelected={filters.products.includes('REST')}>
465
- REST
466
- </SelectOption>
467
- <SelectOption hasCheckbox key="swagger" value="SWAGGER" isSelected={filters.products.includes('SWAGGER')}>
468
- SWAGGER
469
- </SelectOption>
470
- </SelectList>
471
- );
472
-
473
- return (
474
- <ToolbarFilter categoryName="Products" chips={filters.products} deleteChip={this.onDelete}>
475
- <Select
476
- aria-label="Products"
477
- role="menu"
478
- toggle={(toggleRef) => (
479
- <MenuToggle ref={toggleRef} onClick={this.onToolbarDropdownToggle} isExpanded={isLowerToolbarDropdownOpen}>
480
- Filter by creator name
481
- {filters.products.length > 0 && <Badge isRead>{filters.products.length}</Badge>}
482
- </MenuToggle>
483
- )}
484
- onSelect={this.onNameSelect}
485
- onOpenChange={(isOpen) => {
486
- this.setState(() => ({
487
- isLowerToolbarDropdownOpen: isOpen
488
- }));
489
- }}
490
- selected={filters.products}
491
- isOpen={isLowerToolbarDropdownOpen}
492
- >
493
- {filterDropdownItems}
494
- </Select>
495
- </ToolbarFilter>
496
- );
497
- }
498
-
499
- render() {
500
- const {
501
- isLowerToolbarKebabDropdownOpen,
502
- filters,
503
- cardData,
504
- selectedItems,
505
- totalItemCount,
506
- onPerPageSelect,
507
- onSetPage,
508
- page,
509
- perPage
510
- } = this.state;
511
-
512
- const toolbarKebabDropdownItems = [
513
- <OverflowMenuDropdownItem itemId={0} key="link">
514
- Link
515
- </OverflowMenuDropdownItem>,
516
- <OverflowMenuDropdownItem itemId={1} key="action" component="button">
517
- Action
518
- </OverflowMenuDropdownItem>,
519
- <OverflowMenuDropdownItem itemId={2} key="disabled link" isDisabled>
520
- Disabled Link
521
- </OverflowMenuDropdownItem>,
522
- <OverflowMenuDropdownItem itemId={3} key="disabled action" isDisabled component="button">
523
- Disabled Action
524
- </OverflowMenuDropdownItem>,
525
- <Divider key="separator" />,
526
- <OverflowMenuDropdownItem itemId={5} key="separated link">
527
- Separated Link
528
- </OverflowMenuDropdownItem>,
529
- <OverflowMenuDropdownItem itemId={6} key="separated action" component="button">
530
- Separated Action
531
- </OverflowMenuDropdownItem>
532
- ];
533
-
534
- const toolbarItems = (
535
- <React.Fragment>
536
- <ToolbarItem variant="bulk-select">{this.buildSelectDropdown()}</ToolbarItem>
537
- <ToolbarItem breakpoint="xl">{this.buildFilterDropdown()}</ToolbarItem>
538
- <ToolbarItem variant="overflow-menu">
539
- <OverflowMenu breakpoint="md">
540
- <OverflowMenuItem>
541
- <Button variant="primary">Create a project</Button>
542
- </OverflowMenuItem>
543
- <OverflowMenuControl hasAdditionalOptions>
544
- <Dropdown
545
- onSelect={this.onToolbarKebabDropdownSelect}
546
- toggle={(toggleRef) => (
547
- <MenuToggle
548
- ref={toggleRef}
549
- aria-label="Toolbar kebab overflow menu"
550
- variant="plain"
551
- onClick={this.onToolbarKebabDropdownToggle}
552
- isExpanded={isLowerToolbarKebabDropdownOpen}
553
- >
554
- <EllipsisVIcon />
555
- </MenuToggle>
556
- )}
557
- isOpen={isLowerToolbarKebabDropdownOpen}
558
- onOpenChange={(isOpen) => this.setState({ isLowerToolbarKebabDropdownOpen: isOpen })}
559
- >
560
- <DropdownList>{toolbarKebabDropdownItems}</DropdownList>
561
- </Dropdown>
562
- </OverflowMenuControl>
563
- </OverflowMenu>
564
- </ToolbarItem>
565
- <ToolbarItem variant="pagination" align={{ default: 'alignRight' }}>
566
- {this.renderPagination()}
567
- </ToolbarItem>
568
- </React.Fragment>
569
- );
570
-
571
- const icons = {
572
- pfIcon,
573
- activeMQIcon,
574
- sparkIcon,
575
- avroIcon,
576
- azureIcon,
577
- saxonIcon,
578
- dropBoxIcon,
579
- infinispanIcon,
580
- restIcon,
581
- swaggerIcon
582
- };
583
-
584
- const filtered =
585
- filters.products.length > 0
586
- ? data.filter((card) => filters.products.length === 0 || filters.products.includes(card.name))
587
- : cardData.slice((page - 1) * perPage, perPage === 1 ? page * perPage : page * perPage - 1);
588
-
589
- return (
590
- <React.Fragment>
591
- <DashboardWrapper mainContainerId="main-content-card-view-default-nav" breadcrumb={null}>
592
- <PageSection variant={PageSectionVariants.light}>
593
- <TextContent>
594
- <Text component="h1">Projects</Text>
595
- <Text component="p">This is a demo that showcases PatternFly cards.</Text>
596
- </TextContent>
597
- <Toolbar id="toolbar-group-types" clearAllFilters={this.onDelete}>
598
- <ToolbarContent>{toolbarItems}</ToolbarContent>
599
- </Toolbar>
600
- </PageSection>
601
- <PageSection isFilled>
602
- <Gallery hasGutter aria-label="Selectable card container">
603
- <Card isCompact>
604
- <Bullseye>
605
- <EmptyState variant={EmptyStateVariant.xs}>
606
- <EmptyStateHeader
607
- headingLevel="h2"
608
- titleText="Add a new card to your page"
609
- icon={<EmptyStateIcon icon={PlusCircleIcon} />}
610
- />
611
- <EmptyStateFooter>
612
- <EmptyStateActions>
613
- <Button variant="link">Add card</Button>
614
- </EmptyStateActions>
615
- </EmptyStateFooter>
616
- </EmptyState>
617
- </Bullseye>
618
- </Card>
619
- {filtered.map((product, key) => (
620
- <Card
621
- isCompact
622
- isClickable
623
- isSelectable
624
- key={product.name}
625
- id={product.name.replace(/ /g, '-')}
626
- >
627
- <CardHeader
628
- selectableActions={{
629
- isChecked: selectedItems.includes(product.id),
630
- selectableActionId: `selectable-actions-item-${product.id}`,
631
- selectableActionAriaLabelledby: product.name.replace(/ /g, '-'),
632
- name: `check-${product.id}`,
633
- onChange: () => this.onClick(product.id)
634
- }}
635
- actions={{
636
- actions: (
637
- <>
638
- <Dropdown
639
- isOpen={this.state[key] ?? false}
640
- onOpenChange={(isOpen) => this.setState({ [key]: isOpen })}
641
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
642
- <MenuToggle
643
- ref={toggleRef}
644
- aria-label={`${product.name} actions`}
645
- variant="plain"
646
- onClick={(e) => {
647
- this.onCardKebabDropdownToggle(key, e);
648
- }}
649
- isExpanded={this.state[key]}
650
- >
651
- <EllipsisVIcon />
652
- </MenuToggle>
653
- )}
654
- popperProps={{ position: 'right' }}
655
- >
656
- <DropdownList>
657
- <DropdownItem key="trash" onClick={this.deleteItem(product)}>
658
- <TrashIcon />
659
- Delete
660
- </DropdownItem>
661
- </DropdownList>
662
- </Dropdown>
663
- </>
664
- )
665
- }}
666
- >
667
- <img src={icons[product.icon]} alt={`${product.name} icon`} style={{ maxWidth: '60px' }} />
668
- </CardHeader>
669
- <CardTitle>{product.name}</CardTitle>
670
- <CardBody>{product.description}</CardBody>
671
- </Card>
672
- ))}
673
- </Gallery>
674
- </PageSection>
675
- <PageSection isFilled={false} sticky="bottom" padding={{ default: 'noPadding' }} variant="light">
676
- <Pagination
677
- itemCount={totalItemCount}
678
- page={page}
679
- perPage={perPage}
680
- onPerPageSelect={onPerPageSelect}
681
- onSetPage={onSetPage}
682
- variant="bottom"
683
- />
684
- </PageSection>
685
- </DashboardWrapper>
686
- </React.Fragment>
687
- );
688
- }
689
- }
28
+ ```js file="./examples/CardView.tsx" isFullscreen
690
29
  ```