@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
@@ -13,6 +13,7 @@ propComponents:
13
13
  DrawerActions,
14
14
  DrawerCloseButton,
15
15
  DrawerColorVariant,
16
+ DrawerPanelFocusTrapObject
16
17
  ]
17
18
  section: components
18
19
  ---
@@ -22,56 +23,67 @@ section: components
22
23
  ### Basic
23
24
 
24
25
  ```ts file="./DrawerBasic.tsx"
26
+
25
27
  ```
26
28
 
27
- ### Panel on right
29
+ ### Panel at end
30
+
31
+ ```ts file="./DrawerPanelEnd.tsx"
28
32
 
29
- ```ts file="./DrawerPanelRight.tsx"
30
33
  ```
31
34
 
32
- ### Panel on left
35
+ ### Panel at start
36
+
37
+ ```ts file="./DrawerPanelStart.tsx"
33
38
 
34
- ```ts file="./DrawerPanelLeft.tsx"
35
39
  ```
36
40
 
37
41
  ### Panel on bottom
38
42
 
39
43
  ```ts file="./DrawerPanelBottom.tsx"
44
+
40
45
  ```
41
46
 
42
47
  ### Basic inline
43
48
 
44
49
  ```ts file="./DrawerBasicInline.tsx"
50
+
45
51
  ```
46
52
 
47
- ### Inline panel on right
53
+ ### Inline panel at end
54
+
55
+ ```ts file="./DrawerInlinePanelEnd.tsx"
48
56
 
49
- ```ts file="./DrawerInlinePanelRight.tsx"
50
57
  ```
51
58
 
52
- ### Inline panel on left
59
+ ### Inline panel at start
60
+
61
+ ```ts file="./DrawerInlinePanelStart.tsx"
53
62
 
54
- ```ts file="./DrawerInlinePanelLeft.tsx"
55
63
  ```
56
64
 
57
65
  ### Stacked content body elements
58
66
 
59
67
  ```ts file="./DrawerStackedContentBodyElements.tsx"
68
+
60
69
  ```
61
70
 
62
71
  ### Modified content padding
63
72
 
64
73
  ```ts file="DrawerModifiedContentPadding.tsx"
74
+
65
75
  ```
66
76
 
67
77
  ### Modified panel padding
68
78
 
69
79
  ```ts file="DrawerModifiedPanelPadding.tsx"
80
+
70
81
  ```
71
82
 
72
83
  ### Additional section above drawer content
73
84
 
74
85
  ```ts file="DrawerAdditionalSectionAboveContent.tsx"
86
+
75
87
  ```
76
88
 
77
89
  ### Static drawer
@@ -79,34 +91,53 @@ section: components
79
91
  **Note:** For mobile viewports, all drawer variants behave the same way. At the `md` breakpoint, or where `.pf-m-static{-on-[lg, xl, 2xl]}` is applied, the `static drawer` variant’s `close button` is automatically hidden because the drawer panel doesn’t close by design.
80
92
 
81
93
  ```ts file="DrawerStatic.tsx"
94
+
82
95
  ```
83
96
 
84
97
  ### Breakpoint
85
98
 
86
99
  ```ts file="DrawerBreakpoint.tsx"
100
+
87
101
  ```
88
102
 
89
- ### Resizable on right
103
+ ### Resizable at end
104
+
105
+ ```ts file="DrawerResizableAtEnd.tsx"
90
106
 
91
- ```ts file="DrawerResizableOnRight.tsx"
92
107
  ```
93
108
 
94
- ### Resizable on left
109
+ ### Resizable at start
110
+
111
+ ```ts file="DrawerResizableAtStart.tsx"
95
112
 
96
- ```ts file="DrawerResizableOnLeft.tsx"
97
113
  ```
98
114
 
99
115
  ### Resizable on bottom
100
116
 
101
117
  ```ts file="DrawerResizableOnBottom.tsx"
118
+
102
119
  ```
103
120
 
104
121
  ### Resizable on inline
105
122
 
106
123
  ```ts file="DrawerResizableOnInline.tsx"
124
+
107
125
  ```
108
126
 
109
127
  ### Panel with secondary background
110
128
 
111
129
  ```ts file="DrawerSecondaryBackground.tsx"
130
+
131
+ ```
132
+
133
+ ### With focus trap
134
+
135
+ When a [focus trap](/accessibility/product-development-guide#trapping-focus) is enabled on an element, a user will only be able to interact with the contents of that element until the focus trap is closed or deactivated.
136
+
137
+ To enable and customize a focus trap on a drawer panel, apply the `focusTrap` property to the `<DrawerPanelContent>` component. Enabling a focus trap with `focusTrap.enabled` will also automatically place focus on the first focusable element when the drawer panel expands, and return focus to the previously focused element when it collapses.
138
+
139
+ To customize which element receives focus when the drawer panel expands, use the `focusTrap.elementToFocusOnExpand` property.
140
+
141
+ ```ts file="./DrawerFocusTrap.tsx"
142
+
112
143
  ```
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import {
3
+ Drawer,
4
+ DrawerPanelContent,
5
+ DrawerContent,
6
+ DrawerContentBody,
7
+ DrawerHead,
8
+ DrawerActions,
9
+ DrawerCloseButton,
10
+ Button
11
+ } from '@patternfly/react-core';
12
+
13
+ export const DrawerFocusTrap: React.FunctionComponent = () => {
14
+ const [isExpanded, setIsExpanded] = React.useState(false);
15
+
16
+ const onClick = () => {
17
+ setIsExpanded(!isExpanded);
18
+ };
19
+
20
+ const onCloseClick = () => {
21
+ setIsExpanded(false);
22
+ };
23
+
24
+ // An onKeyDown property must be passed to the Drawer component to handle closing
25
+ // the drawer panel and deactivating the focus trap via the Escape key.
26
+ const onEscape = (event: React.KeyboardEvent) => {
27
+ if (event.key === 'Escape') {
28
+ setIsExpanded(false);
29
+ }
30
+ };
31
+
32
+ const panelContent = (
33
+ <DrawerPanelContent focusTrap={{ enabled: true }}>
34
+ <DrawerHead>
35
+ <span>drawer-panel</span>
36
+ <DrawerActions>
37
+ <DrawerCloseButton onClick={onCloseClick} />
38
+ </DrawerActions>
39
+ </DrawerHead>
40
+ </DrawerPanelContent>
41
+ );
42
+
43
+ const drawerContent =
44
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';
45
+
46
+ return (
47
+ <React.Fragment>
48
+ <Button aria-expanded={isExpanded} onClick={onClick}>
49
+ Toggle drawer with focus trap
50
+ </Button>
51
+ <Drawer onKeyDown={onEscape} isExpanded={isExpanded}>
52
+ <DrawerContent panelContent={panelContent}>
53
+ <DrawerContentBody>{drawerContent}</DrawerContentBody>
54
+ </DrawerContent>
55
+ </Drawer>
56
+ </React.Fragment>
57
+ );
58
+ };
@@ -10,7 +10,7 @@ import {
10
10
  Button
11
11
  } from '@patternfly/react-core';
12
12
 
13
- export const DrawerInlinePanelRight: React.FunctionComponent = () => {
13
+ export const DrawerInlinePanelEnd: React.FunctionComponent = () => {
14
14
  const [isExpanded, setIsExpanded] = React.useState(false);
15
15
  const drawerRef = React.useRef<HTMLDivElement>();
16
16
 
@@ -10,7 +10,7 @@ import {
10
10
  Button
11
11
  } from '@patternfly/react-core';
12
12
 
13
- export const DrawerInlinePanelLeft: React.FunctionComponent = () => {
13
+ export const DrawerInlinePanelStart: React.FunctionComponent = () => {
14
14
  const [isExpanded, setIsExpanded] = React.useState(false);
15
15
  const drawerRef = React.useRef<HTMLDivElement>();
16
16
 
@@ -47,7 +47,7 @@ export const DrawerInlinePanelLeft: React.FunctionComponent = () => {
47
47
  <Button aria-expanded={isExpanded} onClick={onClick}>
48
48
  Toggle drawer
49
49
  </Button>
50
- <Drawer isExpanded={isExpanded} isInline position="left" onExpand={onExpand}>
50
+ <Drawer isExpanded={isExpanded} isInline position="start" onExpand={onExpand}>
51
51
  <DrawerContent panelContent={panelContent}>
52
52
  <DrawerContentBody>{drawerContent}</DrawerContentBody>
53
53
  </DrawerContent>
@@ -10,7 +10,7 @@ import {
10
10
  Button
11
11
  } from '@patternfly/react-core';
12
12
 
13
- export const DrawerPanelLeft: React.FunctionComponent = () => {
13
+ export const DrawerPanelEnd: React.FunctionComponent = () => {
14
14
  const [isExpanded, setIsExpanded] = React.useState(false);
15
15
  const drawerRef = React.useRef<HTMLDivElement>();
16
16
 
@@ -47,7 +47,7 @@ export const DrawerPanelLeft: React.FunctionComponent = () => {
47
47
  <Button aria-expanded={isExpanded} onClick={onClick}>
48
48
  Toggle drawer
49
49
  </Button>
50
- <Drawer isExpanded={isExpanded} position="left" onExpand={onExpand}>
50
+ <Drawer isExpanded={isExpanded} position="end" onExpand={onExpand}>
51
51
  <DrawerContent panelContent={panelContent}>
52
52
  <DrawerContentBody>{drawerContent}</DrawerContentBody>
53
53
  </DrawerContent>
@@ -10,7 +10,7 @@ import {
10
10
  Button
11
11
  } from '@patternfly/react-core';
12
12
 
13
- export const DrawerPanelRight: React.FunctionComponent = () => {
13
+ export const DrawerPanelStart: React.FunctionComponent = () => {
14
14
  const [isExpanded, setIsExpanded] = React.useState(false);
15
15
  const drawerRef = React.useRef<HTMLDivElement>();
16
16
 
@@ -47,7 +47,7 @@ export const DrawerPanelRight: React.FunctionComponent = () => {
47
47
  <Button aria-expanded={isExpanded} onClick={onClick}>
48
48
  Toggle drawer
49
49
  </Button>
50
- <Drawer isExpanded={isExpanded} position="right" onExpand={onExpand}>
50
+ <Drawer isExpanded={isExpanded} position="start" onExpand={onExpand}>
51
51
  <DrawerContent panelContent={panelContent}>
52
52
  <DrawerContentBody>{drawerContent}</DrawerContentBody>
53
53
  </DrawerContent>
@@ -10,7 +10,7 @@ import {
10
10
  Button
11
11
  } from '@patternfly/react-core';
12
12
 
13
- export const DrawerResizableOnRight: React.FunctionComponent = () => {
13
+ export const DrawerResizableAtEnd: React.FunctionComponent = () => {
14
14
  const [isExpanded, setIsExpanded] = React.useState(false);
15
15
  const drawerRef = React.useRef<HTMLDivElement>();
16
16
 
@@ -32,7 +32,7 @@ export const DrawerResizableOnRight: React.FunctionComponent = () => {
32
32
  };
33
33
 
34
34
  const panelContent = (
35
- <DrawerPanelContent isResizable onResize={onResize} id="right-resize-panel" defaultSize={'500px'} minSize={'150px'}>
35
+ <DrawerPanelContent isResizable onResize={onResize} id="end-resize-panel" defaultSize={'500px'} minSize={'150px'}>
36
36
  <DrawerHead>
37
37
  <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>
38
38
  drawer-panel
@@ -52,7 +52,7 @@ export const DrawerResizableOnRight: React.FunctionComponent = () => {
52
52
  <Button aria-expanded={isExpanded} onClick={onClick}>
53
53
  Toggle drawer
54
54
  </Button>
55
- <Drawer isExpanded={isExpanded} onExpand={onExpand} position="right">
55
+ <Drawer isExpanded={isExpanded} onExpand={onExpand} position="end">
56
56
  <DrawerContent panelContent={panelContent}>
57
57
  <DrawerContentBody>{drawerContent}</DrawerContentBody>
58
58
  </DrawerContent>
@@ -10,7 +10,7 @@ import {
10
10
  Button
11
11
  } from '@patternfly/react-core';
12
12
 
13
- export const DrawerResizableOnLeft: React.FunctionComponent = () => {
13
+ export const DrawerResizableAtStart: React.FunctionComponent = () => {
14
14
  const [isExpanded, setIsExpanded] = React.useState(false);
15
15
  const drawerRef = React.useRef<HTMLDivElement>();
16
16
 
@@ -47,7 +47,7 @@ export const DrawerResizableOnLeft: React.FunctionComponent = () => {
47
47
  <Button aria-expanded={isExpanded} onClick={onClick}>
48
48
  Toggle drawer
49
49
  </Button>
50
- <Drawer isExpanded={isExpanded} onExpand={onExpand} position="left">
50
+ <Drawer isExpanded={isExpanded} onExpand={onExpand} position="start">
51
51
  <DrawerContent panelContent={panelContent}>
52
52
  <DrawerContentBody>{drawerContent}</DrawerContentBody>
53
53
  </DrawerContent>
@@ -8,7 +8,7 @@ export interface DropdownPopperProps {
8
8
  /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
9
9
  direction?: 'up' | 'down';
10
10
  /** Horizontal position of the popper */
11
- position?: 'right' | 'left' | 'center';
11
+ position?: 'right' | 'left' | 'center' | 'start' | 'end';
12
12
  /** Custom width of the popper. If the value is "trigger", it will set the width to the dropdown toggle's width */
13
13
  width?: string | 'trigger';
14
14
  /** Minimum width of the popper. If the value is "trigger", it will set the min width to the dropdown toggle's width */
@@ -17,6 +17,8 @@ export interface DropdownPopperProps {
17
17
  maxWidth?: string | 'trigger';
18
18
  /** Enable to flip the popper when it reaches the boundary */
19
19
  enableFlip?: boolean;
20
+ /** The container to append the popper to. Defaults to 'inline'. */
21
+ appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
20
22
  }
21
23
 
22
24
  export interface DropdownToggleProps {
@@ -24,6 +24,10 @@ export interface IconComponentProps extends Omit<React.HTMLProps<HTMLSpanElement
24
24
  isInProgress?: boolean;
25
25
  /** Aria-label for the default progress icon */
26
26
  defaultProgressArialabel?: string;
27
+ /** @beta Flag indicating whether the icon passed as children should be mirrored for
28
+ * right to left (RTL) languages. This will not mirror the icon passed to progressIcon.
29
+ */
30
+ shouldMirrorRTL?: boolean;
27
31
  }
28
32
 
29
33
  export const Icon: React.FunctionComponent<IconComponentProps> = ({
@@ -37,6 +41,7 @@ export const Icon: React.FunctionComponent<IconComponentProps> = ({
37
41
  isInline = false,
38
42
  isInProgress = false,
39
43
  defaultProgressArialabel = 'Loading...',
44
+ shouldMirrorRTL = false,
40
45
  ...props
41
46
  }: IconComponentProps) => {
42
47
  const _progressIcon = progressIcon ?? <Spinner diameter="1em" aria-label={defaultProgressArialabel} />;
@@ -52,7 +57,16 @@ export const Icon: React.FunctionComponent<IconComponentProps> = ({
52
57
  )}
53
58
  {...props}
54
59
  >
55
- <span className={css(styles.iconContent, styles.modifiers[iconSize], styles.modifiers[status])}>{children}</span>
60
+ <span
61
+ className={css(
62
+ styles.iconContent,
63
+ styles.modifiers[iconSize],
64
+ styles.modifiers[status],
65
+ shouldMirrorRTL && 'pf-v5-m-mirror-inline-rtl'
66
+ )}
67
+ >
68
+ {children}
69
+ </span>
56
70
  {isInProgress && (
57
71
  <span className={css(styles.iconProgress, styles.modifiers[progressIconSize], className)}>{_progressIcon}</span>
58
72
  )}
@@ -194,3 +194,19 @@ test('renders progress icon successfully', () => {
194
194
  );
195
195
  expect(asFragment()).toMatchSnapshot();
196
196
  });
197
+
198
+ test('Renders with class pf-v5-m-mirror-inline-rtl on icon passed as children when shouldMirrorRTL is true', () => {
199
+ render(<Icon shouldMirrorRTL>Icon content</Icon>);
200
+
201
+ expect(screen.getByText('Icon content')).toHaveClass('pf-v5-m-mirror-inline-rtl');
202
+ });
203
+
204
+ test('Does not render with class pf-v5-m-mirror-inline-rtl on progressIcon when shouldMirrorRTL is true', () => {
205
+ render(
206
+ <Icon shouldMirrorRTL isInProgress progressIcon="Progress icon">
207
+ Icon content
208
+ </Icon>
209
+ );
210
+
211
+ expect(screen.getByText('Progress icon')).not.toHaveClass('pf-v5-m-mirror-inline-rtl');
212
+ });
@@ -55,10 +55,12 @@ export interface LabelProps extends React.HTMLProps<HTMLSpanElement> {
55
55
  closeBtnAriaLabel?: string;
56
56
  /** Additional properties for the default close button. */
57
57
  closeBtnProps?: any;
58
- /** Href for a label that is a link. If present, the label will change to an anchor element. */
58
+ /** Href for a label that is a link. If present, the label will change to an anchor element. This should not be passed in if the onClick prop is also passed in. */
59
59
  href?: string;
60
- /** Flag indicating if the label is an overflow label */
60
+ /** Flag indicating if the label is an overflow label. */
61
61
  isOverflowLabel?: boolean;
62
+ /** Callback for when the label is clicked. This should not be passed in if the href or isEditable props are also passed in. */
63
+ onClick?: (event: React.MouseEvent) => void;
62
64
  /** Forwards the label content and className to rendered function. Use this prop for react router support.*/
63
65
  render?: ({
64
66
  className,
@@ -94,6 +96,7 @@ export const Label: React.FunctionComponent<LabelProps> = ({
94
96
  tooltipPosition,
95
97
  icon,
96
98
  onClose,
99
+ onClick: onLabelClick,
97
100
  onEditCancel,
98
101
  onEditComplete,
99
102
  closeBtn,
@@ -118,6 +121,20 @@ export const Label: React.FunctionComponent<LabelProps> = ({
118
121
  };
119
122
  });
120
123
 
124
+ React.useEffect(() => {
125
+ if (onLabelClick && href) {
126
+ // eslint-disable-next-line no-console
127
+ console.warn(
128
+ 'Link labels cannot have onClick passed, this results in invalid HTML. Please remove either the href or onClick prop.'
129
+ );
130
+ } else if (onLabelClick && isEditable) {
131
+ // eslint-disable-next-line no-console
132
+ console.warn(
133
+ 'Editable labels cannot have onClick passed, clicking starts the label edit process. Please remove either the isEditable or onClick prop.'
134
+ );
135
+ }
136
+ }, [onLabelClick, href, isEditable]);
137
+
121
138
  const onDocMouseDown = (event: MouseEvent) => {
122
139
  if (
123
140
  isEditableActive &&
@@ -235,14 +252,22 @@ export const Label: React.FunctionComponent<LabelProps> = ({
235
252
  let LabelComponentChildElement = 'span';
236
253
  if (href) {
237
254
  LabelComponentChildElement = 'a';
238
- } else if (isEditable) {
255
+ } else if (isEditable || (onLabelClick && !isOverflowLabel)) {
239
256
  LabelComponentChildElement = 'button';
240
257
  }
241
258
 
259
+ const clickableLabelProps = {
260
+ type: 'button',
261
+ onClick: onLabelClick
262
+ };
263
+
264
+ const isButton = LabelComponentChildElement === 'button';
265
+
242
266
  const labelComponentChildProps = {
243
267
  className: css(styles.labelContent),
244
268
  ...(isTooltipVisible && { tabIndex: 0 }),
245
269
  ...(href && { href }),
270
+ ...(isButton && clickableLabelProps),
246
271
  ...(isEditable && {
247
272
  ref: editableButtonRef,
248
273
  onClick: (e: React.MouseEvent) => {
@@ -289,6 +314,7 @@ export const Label: React.FunctionComponent<LabelProps> = ({
289
314
  isEditableActive && styles.modifiers.editableActive,
290
315
  className
291
316
  )}
317
+ onClick={isOverflowLabel ? onLabelClick : undefined}
292
318
  >
293
319
  {!isEditableActive && labelComponentChild}
294
320
  {!isEditableActive && onClose && button}
@@ -109,4 +109,39 @@ describe('Label', () => {
109
109
  expect(screen.queryByRole('button', { name: 'Something' })).toBeNull();
110
110
  expect(asFragment()).toMatchSnapshot();
111
111
  });
112
+
113
+ test('a button is not rendered when onClick is not passed', () => {
114
+ render(<Label>Click me</Label>);
115
+
116
+ expect(screen.queryByRole(`button`)).not.toBeInTheDocument();
117
+ });
118
+
119
+ test('a button is rendered when onClick is passed', () => {
120
+ const fn = jest.fn();
121
+
122
+ render(<Label onClick={fn}>Click me</Label>);
123
+
124
+ expect(screen.getByRole(`button`)).toBeVisible();
125
+ });
126
+
127
+ test('clickable label does not call the passed callback when it is not clicked', async () => {
128
+ const mockCallback = jest.fn();
129
+
130
+ render(<Label onClick={mockCallback}>Click me</Label>);
131
+
132
+ expect(mockCallback).not.toHaveBeenCalled();
133
+ });
134
+
135
+ test('clickable label calls passed callback on click', async () => {
136
+ const mockCallback = jest.fn();
137
+ const user = userEvent.setup();
138
+
139
+ render(<Label onClick={mockCallback}>Click me</Label>);
140
+
141
+ const label = screen.getByRole('button');
142
+
143
+ await user.click(label);
144
+
145
+ expect(mockCallback).toBeCalledTimes(1);
146
+ });
112
147
  });
@@ -7,6 +7,7 @@ exports[`Label editable label 1`] = `
7
7
  >
8
8
  <button
9
9
  class="pf-v5-c-label__content"
10
+ type="button"
10
11
  >
11
12
  <span
12
13
  class="pf-v5-c-label__text"