@patternfly/react-core 6.3.0-prerelease.8 → 6.3.0

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 (510) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/CONTRIBUTING.md +3 -5
  3. package/components/package.json +1 -1
  4. package/deprecated/package.json +1 -1
  5. package/dist/dynamic/components/AboutModal/package.json +1 -1
  6. package/dist/dynamic/components/Accordion/package.json +1 -1
  7. package/dist/dynamic/components/ActionList/package.json +1 -1
  8. package/dist/dynamic/components/Alert/package.json +1 -1
  9. package/dist/dynamic/components/Avatar/package.json +1 -1
  10. package/dist/dynamic/components/BackToTop/package.json +1 -1
  11. package/dist/dynamic/components/Backdrop/package.json +1 -1
  12. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  13. package/dist/dynamic/components/Badge/package.json +1 -1
  14. package/dist/dynamic/components/Banner/package.json +1 -1
  15. package/dist/dynamic/components/Brand/package.json +1 -1
  16. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  17. package/dist/dynamic/components/Button/package.json +1 -1
  18. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  19. package/dist/dynamic/components/Card/package.json +1 -1
  20. package/dist/dynamic/components/Checkbox/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/Content/package.json +1 -1
  24. package/dist/dynamic/components/DataList/package.json +1 -1
  25. package/dist/dynamic/components/DatePicker/package.json +1 -1
  26. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  27. package/dist/dynamic/components/Divider/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/TextArea/package.json +1 -1
  72. package/dist/dynamic/components/TextInput/package.json +1 -1
  73. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  74. package/dist/dynamic/components/TimePicker/package.json +1 -1
  75. package/dist/dynamic/components/Timestamp/package.json +1 -1
  76. package/dist/dynamic/components/Title/package.json +1 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  78. package/dist/dynamic/components/Toolbar/package.json +1 -1
  79. package/dist/dynamic/components/Tooltip/package.json +1 -1
  80. package/dist/dynamic/components/TreeView/package.json +1 -1
  81. package/dist/dynamic/components/Truncate/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/package.json +1 -1
  91. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  92. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  93. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  94. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  95. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  96. package/dist/dynamic/helpers/constants/package.json +1 -1
  97. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  99. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  100. package/dist/dynamic/helpers/package.json +1 -1
  101. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  102. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  104. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  105. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  106. package/dist/dynamic/helpers/util/package.json +1 -1
  107. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  108. package/dist/dynamic/layouts/Flex/package.json +1 -1
  109. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  110. package/dist/dynamic/layouts/Grid/package.json +1 -1
  111. package/dist/dynamic/layouts/Level/package.json +1 -1
  112. package/dist/dynamic/layouts/Split/package.json +1 -1
  113. package/dist/dynamic/layouts/Stack/package.json +1 -1
  114. package/dist/dynamic/styles/package.json +1 -1
  115. package/dist/dynamic-modules.json +2 -0
  116. package/dist/esm/components/Alert/AlertGroupInline.d.ts.map +1 -1
  117. package/dist/esm/components/Alert/AlertGroupInline.js +7 -1
  118. package/dist/esm/components/Alert/AlertGroupInline.js.map +1 -1
  119. package/dist/esm/components/Button/Button.d.ts +12 -0
  120. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  121. package/dist/esm/components/Button/Button.js +33 -3
  122. package/dist/esm/components/Button/Button.js.map +1 -1
  123. package/dist/esm/components/Button/hamburgerIcon.d.ts +2 -0
  124. package/dist/esm/components/Button/hamburgerIcon.d.ts.map +1 -0
  125. package/dist/esm/components/Button/hamburgerIcon.js +7 -0
  126. package/dist/esm/components/Button/hamburgerIcon.js.map +1 -0
  127. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  128. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +2 -2
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  130. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  131. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  132. package/dist/esm/components/DualListSelector/DualListSelector.d.ts +5 -0
  133. package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  134. package/dist/esm/components/DualListSelector/DualListSelector.js +4 -3
  135. package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
  136. package/dist/esm/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
  137. package/dist/esm/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
  138. package/dist/esm/components/DualListSelector/DualListSelectorContext.js +1 -1
  139. package/dist/esm/components/DualListSelector/DualListSelectorContext.js.map +1 -1
  140. package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
  141. package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.js +1 -1
  142. package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
  143. package/dist/esm/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
  144. package/dist/esm/components/DualListSelector/DualListSelectorTree.js +4 -1
  145. package/dist/esm/components/DualListSelector/DualListSelectorTree.js.map +1 -1
  146. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts +5 -0
  147. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
  148. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.js +8 -4
  149. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
  150. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +5 -1
  151. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  152. package/dist/esm/components/ExpandableSection/ExpandableSection.js +6 -2
  153. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  154. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +2 -0
  155. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  156. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js +4 -3
  157. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  158. package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts +5 -0
  159. package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
  160. package/dist/esm/components/Form/FormFieldGroupExpandable.js +2 -2
  161. package/dist/esm/components/Form/FormFieldGroupExpandable.js.map +1 -1
  162. package/dist/esm/components/Form/InternalFormFieldGroup.d.ts +5 -0
  163. package/dist/esm/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
  164. package/dist/esm/components/Form/InternalFormFieldGroup.js +2 -2
  165. package/dist/esm/components/Form/InternalFormFieldGroup.js.map +1 -1
  166. package/dist/esm/components/Label/Label.js +57 -57
  167. package/dist/esm/components/Label/Label.js.map +1 -1
  168. package/dist/esm/components/Menu/Menu.js +3 -3
  169. package/dist/esm/components/Menu/Menu.js.map +1 -1
  170. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +2 -0
  171. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  172. package/dist/esm/components/MenuToggle/MenuToggle.js +4 -3
  173. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  174. package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
  175. package/dist/esm/components/Nav/NavExpandable.js +1 -1
  176. package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
  177. package/dist/esm/components/Page/PageToggleButton.d.ts +4 -0
  178. package/dist/esm/components/Page/PageToggleButton.d.ts.map +1 -1
  179. package/dist/esm/components/Page/PageToggleButton.js +2 -2
  180. package/dist/esm/components/Page/PageToggleButton.js.map +1 -1
  181. package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
  182. package/dist/esm/components/Popover/Popover.js +11 -1
  183. package/dist/esm/components/Popover/Popover.js.map +1 -1
  184. package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  185. package/dist/esm/components/SearchInput/AdvancedSearchMenu.js +13 -19
  186. package/dist/esm/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  187. package/dist/esm/components/SearchInput/SearchInput.d.ts +4 -0
  188. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  189. package/dist/esm/components/SearchInput/SearchInput.js +37 -13
  190. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  191. package/dist/esm/components/Tabs/OverflowTab.d.ts +26 -0
  192. package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
  193. package/dist/esm/components/Tabs/OverflowTab.js +2 -2
  194. package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
  195. package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
  196. package/dist/esm/components/Tabs/Tab.js +5 -2
  197. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  198. package/dist/esm/components/Tabs/Tabs.d.ts +10 -0
  199. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  200. package/dist/esm/components/Tabs/Tabs.js +46 -12
  201. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  202. package/dist/esm/components/Tabs/TabsContext.d.ts +1 -0
  203. package/dist/esm/components/Tabs/TabsContext.d.ts.map +1 -1
  204. package/dist/esm/components/Tabs/TabsContext.js +1 -0
  205. package/dist/esm/components/Tabs/TabsContext.js.map +1 -1
  206. package/dist/esm/components/TreeView/TreeView.d.ts +5 -0
  207. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  208. package/dist/esm/components/TreeView/TreeView.js +5 -5
  209. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  210. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +5 -0
  211. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  212. package/dist/esm/components/TreeView/TreeViewListItem.js +8 -4
  213. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  214. package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  215. package/dist/esm/components/TreeView/TreeViewRoot.js +2 -2
  216. package/dist/esm/components/TreeView/TreeViewRoot.js.map +1 -1
  217. package/dist/esm/components/Truncate/Truncate.d.ts +11 -8
  218. package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
  219. package/dist/esm/components/Truncate/Truncate.js +16 -9
  220. package/dist/esm/components/Truncate/Truncate.js.map +1 -1
  221. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -1
  222. package/dist/esm/demos/DashboardHeader.js +1 -2
  223. package/dist/esm/demos/DashboardHeader.js.map +1 -1
  224. package/dist/esm/demos/sampleData.d.ts.map +1 -1
  225. package/dist/esm/demos/sampleData.js +225 -226
  226. package/dist/esm/demos/sampleData.js.map +1 -1
  227. package/dist/esm/demos/sampleDataRTL.d.ts +7 -0
  228. package/dist/esm/demos/sampleDataRTL.d.ts.map +1 -0
  229. package/dist/esm/demos/sampleDataRTL.js +128 -0
  230. package/dist/esm/demos/sampleDataRTL.js.map +1 -0
  231. package/dist/esm/helpers/KeyboardHandler.js +3 -2
  232. package/dist/esm/helpers/KeyboardHandler.js.map +1 -1
  233. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  234. package/dist/esm/helpers/Popper/Popper.js +1 -0
  235. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  236. package/dist/esm/helpers/util.d.ts +17 -0
  237. package/dist/esm/helpers/util.d.ts.map +1 -1
  238. package/dist/esm/helpers/util.js +36 -0
  239. package/dist/esm/helpers/util.js.map +1 -1
  240. package/dist/js/components/Alert/AlertGroupInline.d.ts.map +1 -1
  241. package/dist/js/components/Alert/AlertGroupInline.js +6 -0
  242. package/dist/js/components/Alert/AlertGroupInline.js.map +1 -1
  243. package/dist/js/components/Button/Button.d.ts +12 -0
  244. package/dist/js/components/Button/Button.d.ts.map +1 -1
  245. package/dist/js/components/Button/Button.js +33 -3
  246. package/dist/js/components/Button/Button.js.map +1 -1
  247. package/dist/js/components/Button/hamburgerIcon.d.ts +2 -0
  248. package/dist/js/components/Button/hamburgerIcon.d.ts.map +1 -0
  249. package/dist/js/components/Button/hamburgerIcon.js +11 -0
  250. package/dist/js/components/Button/hamburgerIcon.js.map +1 -0
  251. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  252. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +2 -2
  253. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  254. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  255. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  256. package/dist/js/components/DualListSelector/DualListSelector.d.ts +5 -0
  257. package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  258. package/dist/js/components/DualListSelector/DualListSelector.js +4 -3
  259. package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
  260. package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
  261. package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
  262. package/dist/js/components/DualListSelector/DualListSelectorContext.js +1 -1
  263. package/dist/js/components/DualListSelector/DualListSelectorContext.js.map +1 -1
  264. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
  265. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js +1 -1
  266. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
  267. package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
  268. package/dist/js/components/DualListSelector/DualListSelectorTree.js +4 -1
  269. package/dist/js/components/DualListSelector/DualListSelectorTree.js.map +1 -1
  270. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts +5 -0
  271. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
  272. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js +7 -3
  273. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
  274. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +5 -1
  275. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  276. package/dist/js/components/ExpandableSection/ExpandableSection.js +6 -2
  277. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  278. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +2 -0
  279. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  280. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +4 -3
  281. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  282. package/dist/js/components/Form/FormFieldGroupExpandable.d.ts +5 -0
  283. package/dist/js/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
  284. package/dist/js/components/Form/FormFieldGroupExpandable.js +2 -2
  285. package/dist/js/components/Form/FormFieldGroupExpandable.js.map +1 -1
  286. package/dist/js/components/Form/InternalFormFieldGroup.d.ts +5 -0
  287. package/dist/js/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
  288. package/dist/js/components/Form/InternalFormFieldGroup.js +2 -2
  289. package/dist/js/components/Form/InternalFormFieldGroup.js.map +1 -1
  290. package/dist/js/components/Label/Label.js +57 -57
  291. package/dist/js/components/Label/Label.js.map +1 -1
  292. package/dist/js/components/Menu/Menu.js +3 -3
  293. package/dist/js/components/Menu/Menu.js.map +1 -1
  294. package/dist/js/components/MenuToggle/MenuToggle.d.ts +2 -0
  295. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  296. package/dist/js/components/MenuToggle/MenuToggle.js +4 -3
  297. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  298. package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
  299. package/dist/js/components/Nav/NavExpandable.js +1 -1
  300. package/dist/js/components/Nav/NavExpandable.js.map +1 -1
  301. package/dist/js/components/Page/PageToggleButton.d.ts +4 -0
  302. package/dist/js/components/Page/PageToggleButton.d.ts.map +1 -1
  303. package/dist/js/components/Page/PageToggleButton.js +2 -2
  304. package/dist/js/components/Page/PageToggleButton.js.map +1 -1
  305. package/dist/js/components/Popover/Popover.d.ts.map +1 -1
  306. package/dist/js/components/Popover/Popover.js +11 -1
  307. package/dist/js/components/Popover/Popover.js.map +1 -1
  308. package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  309. package/dist/js/components/SearchInput/AdvancedSearchMenu.js +12 -18
  310. package/dist/js/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  311. package/dist/js/components/SearchInput/SearchInput.d.ts +4 -0
  312. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  313. package/dist/js/components/SearchInput/SearchInput.js +36 -12
  314. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  315. package/dist/js/components/Tabs/OverflowTab.d.ts +26 -0
  316. package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
  317. package/dist/js/components/Tabs/OverflowTab.js +2 -2
  318. package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
  319. package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
  320. package/dist/js/components/Tabs/Tab.js +4 -1
  321. package/dist/js/components/Tabs/Tab.js.map +1 -1
  322. package/dist/js/components/Tabs/Tabs.d.ts +10 -0
  323. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  324. package/dist/js/components/Tabs/Tabs.js +45 -11
  325. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  326. package/dist/js/components/Tabs/TabsContext.d.ts +1 -0
  327. package/dist/js/components/Tabs/TabsContext.d.ts.map +1 -1
  328. package/dist/js/components/Tabs/TabsContext.js +1 -0
  329. package/dist/js/components/Tabs/TabsContext.js.map +1 -1
  330. package/dist/js/components/TreeView/TreeView.d.ts +5 -0
  331. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  332. package/dist/js/components/TreeView/TreeView.js +5 -5
  333. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  334. package/dist/js/components/TreeView/TreeViewListItem.d.ts +5 -0
  335. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  336. package/dist/js/components/TreeView/TreeViewListItem.js +7 -3
  337. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  338. package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  339. package/dist/js/components/TreeView/TreeViewRoot.js +2 -2
  340. package/dist/js/components/TreeView/TreeViewRoot.js.map +1 -1
  341. package/dist/js/components/Truncate/Truncate.d.ts +11 -8
  342. package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
  343. package/dist/js/components/Truncate/Truncate.js +15 -9
  344. package/dist/js/components/Truncate/Truncate.js.map +1 -1
  345. package/dist/js/demos/DashboardHeader.d.ts.map +1 -1
  346. package/dist/js/demos/DashboardHeader.js +1 -2
  347. package/dist/js/demos/DashboardHeader.js.map +1 -1
  348. package/dist/js/demos/sampleData.d.ts.map +1 -1
  349. package/dist/js/demos/sampleData.js +225 -226
  350. package/dist/js/demos/sampleData.js.map +1 -1
  351. package/dist/js/demos/sampleDataRTL.d.ts +7 -0
  352. package/dist/js/demos/sampleDataRTL.d.ts.map +1 -0
  353. package/dist/js/demos/sampleDataRTL.js +131 -0
  354. package/dist/js/demos/sampleDataRTL.js.map +1 -0
  355. package/dist/js/helpers/KeyboardHandler.js +3 -2
  356. package/dist/js/helpers/KeyboardHandler.js.map +1 -1
  357. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  358. package/dist/js/helpers/Popper/Popper.js +1 -0
  359. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  360. package/dist/js/helpers/util.d.ts +17 -0
  361. package/dist/js/helpers/util.d.ts.map +1 -1
  362. package/dist/js/helpers/util.js +39 -1
  363. package/dist/js/helpers/util.js.map +1 -1
  364. package/dist/styles/assets/images/icon-help.hbs +3 -0
  365. package/dist/styles/assets/images/icon-outlined-star.hbs +3 -0
  366. package/dist/styles/assets/images/icon-star.hbs +3 -0
  367. package/dist/styles/base-no-reset.css +52 -11
  368. package/dist/styles/base.css +52 -11
  369. package/dist/umd/assets/{output-B5tbNQwm.css → output-BvTy70LD.css} +15500 -14758
  370. package/dist/umd/react-core.min.js +3 -3
  371. package/helpers/package.json +1 -1
  372. package/layouts/package.json +1 -1
  373. package/next/package.json +1 -1
  374. package/package.json +6 -6
  375. package/src/components/Alert/AlertGroupInline.tsx +13 -2
  376. package/src/components/Button/Button.tsx +78 -5
  377. package/src/components/Button/__tests__/Button.test.tsx +380 -74
  378. package/src/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +1 -1
  379. package/src/components/Button/examples/Button.md +57 -14
  380. package/src/components/Button/examples/ButtonFavorite.tsx +18 -0
  381. package/src/components/Button/examples/ButtonHamburger.tsx +9 -0
  382. package/src/components/Button/examples/ButtonSettings.tsx +10 -0
  383. package/src/components/Button/hamburgerIcon.tsx +13 -0
  384. package/src/components/Card/examples/Card.md +1 -1
  385. package/src/components/Card/examples/CardSelectable.tsx +73 -60
  386. package/src/components/Card/examples/CardSingleSelectable.tsx +65 -48
  387. package/src/components/ClipboardCopy/ClipboardCopy.tsx +2 -1
  388. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +1 -1
  389. package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +7 -1
  390. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +0 -1
  391. package/src/components/DualListSelector/DualListSelector.tsx +18 -4
  392. package/src/components/DualListSelector/DualListSelectorContext.ts +2 -1
  393. package/src/components/DualListSelector/DualListSelectorListWrapper.tsx +8 -5
  394. package/src/components/DualListSelector/DualListSelectorTree.tsx +4 -0
  395. package/src/components/DualListSelector/DualListSelectorTreeItem.tsx +17 -2
  396. package/src/components/DualListSelector/__tests__/DualListSelector.test.tsx +32 -1
  397. package/src/components/DualListSelector/__tests__/DualListSelectorTreeItem.test.tsx +55 -0
  398. package/src/components/DualListSelector/examples/DualListSelectorTree.tsx +1 -1
  399. package/src/components/ExpandableSection/ExpandableSection.tsx +13 -1
  400. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +5 -1
  401. package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +85 -23
  402. package/src/components/ExpandableSection/__tests__/ExpandableSectionToggle.test.tsx +32 -0
  403. package/src/components/ExpandableSection/__tests__/__snapshots__/ExpandableSection.test.tsx.snap +1 -63
  404. package/src/components/ExpandableSection/examples/ExpandableSection.md +2 -0
  405. package/src/components/ExpandableSection/examples/ExpandableSectionDetached.tsx +1 -1
  406. package/src/components/Form/FormFieldGroupExpandable.tsx +7 -0
  407. package/src/components/Form/InternalFormFieldGroup.tsx +19 -3
  408. package/src/components/Form/__tests__/FormFieldGroupExpandable.test.tsx +55 -0
  409. package/src/components/Form/examples/FormFieldGroups.tsx +7 -1
  410. package/src/components/Label/Label.tsx +63 -63
  411. package/src/components/Masthead/examples/MastheadBasic.tsx +1 -2
  412. package/src/components/Masthead/examples/MastheadBasicMixedContent.tsx +1 -2
  413. package/src/components/Masthead/examples/MastheadDisplayInline.tsx +1 -2
  414. package/src/components/Masthead/examples/MastheadDisplayStack.tsx +1 -2
  415. package/src/components/Masthead/examples/MastheadDisplayStackInlineResponsive.tsx +1 -2
  416. package/src/components/Masthead/examples/MastheadInsets.tsx +1 -2
  417. package/src/components/Masthead/examples/MastheadLogoCustomComponent.tsx +1 -2
  418. package/src/components/Menu/Menu.tsx +3 -3
  419. package/src/components/MenuToggle/MenuToggle.tsx +6 -1
  420. package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +59 -45
  421. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +9 -9
  422. package/src/components/MenuToggle/examples/MenuToggle.md +14 -30
  423. package/src/components/MenuToggle/examples/MenuToggleCustomIcon.tsx +17 -0
  424. package/src/components/MenuToggle/examples/MenuToggleSettings.tsx +8 -0
  425. package/src/components/Nav/NavExpandable.tsx +6 -1
  426. package/src/components/Nav/__tests__/Generated/__snapshots__/NavExpandable.test.tsx.snap +1 -0
  427. package/src/components/Nav/__tests__/NavExpandable.test.tsx +15 -0
  428. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +3 -0
  429. package/src/components/Page/PageToggleButton.tsx +9 -2
  430. package/src/components/Page/examples/Page.md +1 -1
  431. package/src/components/Page/examples/PageCenteredSection.tsx +4 -8
  432. package/src/components/Page/examples/PageGroupSection.tsx +2 -5
  433. package/src/components/Page/examples/PageMainSectionPadding.tsx +2 -5
  434. package/src/components/Page/examples/PageMainSectionVariations.tsx +2 -5
  435. package/src/components/Page/examples/PageMultipleSidebarBody.tsx +2 -5
  436. package/src/components/Page/examples/PageUncontrolledNav.tsx +1 -4
  437. package/src/components/Page/examples/PageVerticalNav.tsx +2 -5
  438. package/src/components/Page/examples/PageWithOrWithoutFill.tsx +2 -5
  439. package/src/components/Popover/Popover.tsx +13 -1
  440. package/src/components/SearchInput/AdvancedSearchMenu.tsx +15 -23
  441. package/src/components/SearchInput/SearchInput.tsx +111 -15
  442. package/src/components/SearchInput/__tests__/SearchInput.test.tsx +84 -0
  443. package/src/components/SearchInput/examples/SearchInput.md +11 -2
  444. package/src/components/SearchInput/examples/SearchInputWithExpandable.tsx +6 -1
  445. package/src/components/Skeleton/examples/SkeletonText.tsx +0 -1
  446. package/src/components/Tabs/OverflowTab.tsx +29 -0
  447. package/src/components/Tabs/Tab.tsx +6 -2
  448. package/src/components/Tabs/Tabs.tsx +76 -11
  449. package/src/components/Tabs/TabsContext.ts +2 -0
  450. package/src/components/Tabs/__tests__/Tabs.test.tsx +65 -1
  451. package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +39 -26
  452. package/src/components/Tabs/examples/Tabs.md +1 -1
  453. package/src/components/Timestamp/examples/TimestampBasicFormats.tsx +1 -1
  454. package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
  455. package/src/components/TreeView/TreeView.tsx +9 -0
  456. package/src/components/TreeView/TreeViewListItem.tsx +18 -5
  457. package/src/components/TreeView/TreeViewRoot.tsx +4 -2
  458. package/src/components/TreeView/__tests__/TreeView.test.tsx +8 -1
  459. package/src/components/TreeView/__tests__/TreeViewList.test.tsx +39 -0
  460. package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +17 -3
  461. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +3 -0
  462. package/src/components/TreeView/examples/TreeViewCompact.tsx +1 -1
  463. package/src/components/TreeView/examples/TreeViewCompactNoBackground.tsx +8 -1
  464. package/src/components/TreeView/examples/TreeViewGuides.tsx +1 -1
  465. package/src/components/TreeView/examples/TreeViewMultiselectable.tsx +1 -0
  466. package/src/components/TreeView/examples/TreeViewSelectionExpansion.tsx +1 -0
  467. package/src/components/TreeView/examples/TreeViewSingleSelectable.tsx +1 -0
  468. package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +1 -0
  469. package/src/components/TreeView/examples/TreeViewWithBadges.tsx +1 -0
  470. package/src/components/TreeView/examples/TreeViewWithCheckboxes.tsx +9 -1
  471. package/src/components/TreeView/examples/TreeViewWithCustomBadges.tsx +1 -0
  472. package/src/components/TreeView/examples/TreeViewWithIconPerItem.tsx +1 -0
  473. package/src/components/TreeView/examples/TreeViewWithIcons.tsx +1 -0
  474. package/src/components/TreeView/examples/TreeViewWithMemoization.tsx +1 -0
  475. package/src/components/TreeView/examples/TreeViewWithSearch.tsx +1 -0
  476. package/src/components/Truncate/Truncate.tsx +40 -19
  477. package/src/components/Truncate/__tests__/Truncate.test.tsx +24 -0
  478. package/src/components/Truncate/examples/Truncate.md +8 -0
  479. package/src/components/Truncate/examples/TruncateLinks.tsx +22 -0
  480. package/src/demos/CardDemos.md +1 -1
  481. package/src/demos/DashboardHeader.tsx +2 -5
  482. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +2 -5
  483. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +2 -5
  484. package/src/demos/RTL/RTL.md +1 -0
  485. package/src/demos/RTL/examples/PaginatedTable.tsx +18 -53
  486. package/src/demos/examples/Card/CardAggregateStatus.tsx +2 -6
  487. package/src/demos/examples/Card/CardDetails.tsx +2 -3
  488. package/src/demos/examples/Card/CardEventsView.tsx +2 -3
  489. package/src/demos/examples/Card/CardLogView.tsx +2 -3
  490. package/src/demos/examples/Card/CardStatus.tsx +0 -1
  491. package/src/demos/examples/Card/CardUtilizationDemo3.tsx +0 -1
  492. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +1 -1
  493. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +2 -5
  494. package/src/demos/examples/Nav/NavFlyout.tsx +3 -6
  495. package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
  496. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +2 -5
  497. package/src/demos/examples/Nav/NavManual.tsx +3 -6
  498. package/src/demos/examples/Page/PageContextSelector.tsx +3 -6
  499. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +2 -5
  500. package/src/demos/examples/Page/PageStickySectionGroup.tsx +2 -5
  501. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +2 -5
  502. package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +2 -3
  503. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +1 -4
  504. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +1 -4
  505. package/src/demos/sampleData.tsx +225 -227
  506. package/src/demos/sampleDataRTL.tsx +133 -0
  507. package/src/helpers/KeyboardHandler.tsx +2 -2
  508. package/src/helpers/Popper/Popper.tsx +1 -0
  509. package/src/helpers/util.ts +45 -0
  510. package/src/demos/RTL/examples/PaginatedTable.jsx +0 -504
@@ -23,25 +23,27 @@ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-
23
23
  PatternFly supports several button styling variants to be used in different scenarios as needed. The following button variants can be assigned using the `variant` property.
24
24
 
25
25
  ```ts file="./ButtonVariations.tsx"
26
+
26
27
  ```
27
28
 
28
- | Variant | Description|
29
- | --- | ---|
30
- | Primary | Primary buttons are the most visually prominent variant. Use for the most important call to action.|
31
- | Secondary | Secondary buttons are less visually prominant than primary buttons. Use for general actions on a page that require less emphasis than primary buttons. |
32
- | Tertiary | Tertiary buttons are the least visually prominent variant. Use to retain a classic button format with less emphasis than primary or secondary buttons. |
33
- | Danger | Danger buttons may be used for actions that are potentially destructive or difficult/impossible to undo. Danger is an independent variant, but all button variants may use the the `isDanger` property to apply similar styling. |
34
- | Warning | Warning buttons may be used for actions that change an important setting or behavior, but not in a destructive or irreversible way. |
35
- | Link | Links are labeled, but have no background or border. Use for actions that require less emphasis, actions that navigate users to another page within the same window, and/or actions that navigate to external pages in a new window. Links may be placed inline with text using the `isInline` property.|
36
- | Plain | Plain buttons have no styling and are intended to be labeled with icons. |
37
- | Control | Control buttons can be labeled with text or icons. Primarily intended to be paired with other controls in an [input group](/components/input-group). |
38
- | Stateful | Stateful buttons are ideal for displaying the state of notifications. They have 3 states: `read`, `unread` and `attention`.
29
+ | Variant | Description |
30
+ | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
31
+ | Primary | Primary buttons are the most visually prominent variant. Use for the most important call to action. |
32
+ | Secondary | Secondary buttons are less visually prominant than primary buttons. Use for general actions on a page that require less emphasis than primary buttons. |
33
+ | Tertiary | Tertiary buttons are the least visually prominent variant. Use to retain a classic button format with less emphasis than primary or secondary buttons. |
34
+ | Danger | Danger buttons may be used for actions that are potentially destructive or difficult/impossible to undo. Danger is an independent variant, but all button variants may use the the `isDanger` property to apply similar styling. |
35
+ | Warning | Warning buttons may be used for actions that change an important setting or behavior, but not in a destructive or irreversible way. |
36
+ | Link | Links are labeled, but have no background or border. Use for actions that require less emphasis, actions that navigate users to another page within the same window, and/or actions that navigate to external pages in a new window. Links may be placed inline with text using the `isInline` property. |
37
+ | Plain | Plain buttons have no styling and are intended to be labeled with icons. |
38
+ | Control | Control buttons can be labeled with text or icons. Primarily intended to be paired with other controls in an [input group](/components/input-group). |
39
+ | Stateful | Stateful buttons are ideal for displaying the state of notifications. They have 3 states: `read`, `unread` and `attention`. |
39
40
 
40
41
  ### Disabled buttons
41
42
 
42
43
  To indicate that an action is currently unavailable, all button variations can be disabled using the `isDisabled` property.
43
44
 
44
45
  ```ts file="./ButtonDisabled.tsx"
46
+
45
47
  ```
46
48
 
47
49
  ### Small buttons
@@ -49,13 +51,15 @@ To indicate that an action is currently unavailable, all button variations can b
49
51
  To fit into tight spaces, primary, secondary, tertiary, danger, and warning button variations can be made smaller using the `"sm"` value for the `size` property.
50
52
 
51
53
  ```ts file="./ButtonSmall.tsx"
54
+
52
55
  ```
53
56
 
54
57
  ### Call to action (CTA) buttons
55
58
 
56
- CTA buttons and links direct users to complete an action. Primary, secondary, tertiary, and link button variants can be styled as CTAs using the `"lg"` value for the `size` property.
59
+ CTA buttons and links direct users to complete an action. Primary, secondary, tertiary, and link button variants can be styled as CTAs using the `"lg"` value for the `size` property.
57
60
 
58
61
  ```ts file="./ButtonCallToAction.tsx"
62
+
59
63
  ```
60
64
 
61
65
  ### Block level buttons
@@ -63,13 +67,15 @@ CTA buttons and links direct users to complete an action. Primary, secondary, te
63
67
  Block level buttons span the full width of the parent element and can be enabled using the `isBlock` property.
64
68
 
65
69
  ```ts file="./ButtonBlock.tsx"
70
+
66
71
  ```
67
72
 
68
73
  ### Progress indicators
69
74
 
70
- Progress indicators can be added to buttons to identify that an action is in progress after a click.
75
+ Progress indicators can be added to buttons to identify that an action is in progress after a click.
71
76
 
72
77
  ```ts file="./ButtonProgress.tsx"
78
+
73
79
  ```
74
80
 
75
81
  ### Links as buttons
@@ -77,6 +83,7 @@ Progress indicators can be added to buttons to identify that an action is in pro
77
83
  Buttons that link to another resource may take the form of primary, secondary, tertiary, or link variants. Use `component="a"` and an `href` property to designate the button's target link.
78
84
 
79
85
  ```ts file="./ButtonLinks.tsx"
86
+
80
87
  ```
81
88
 
82
89
  ### Inline link as span
@@ -84,6 +91,7 @@ Buttons that link to another resource may take the form of primary, secondary, t
84
91
  Inline links should use `component="span"` and the `isInline` property to wrap inline with surrounding text.
85
92
 
86
93
  ```ts file="./ButtonInlineSpanLink.tsx"
94
+
87
95
  ```
88
96
 
89
97
  ### Custom component
@@ -91,6 +99,7 @@ Inline links should use `component="span"` and the `isInline` property to wrap i
91
99
  In addition to being able to pass a string to the `component` property, you can provide more fine-tuned customization by passing a callback that returns a component.
92
100
 
93
101
  ```ts file="./ButtonCustomComponent.tsx"
102
+
94
103
  ```
95
104
 
96
105
  ### Aria-disabled examples
@@ -102,6 +111,7 @@ Buttons that are aria-disabled are similar to normal disabled buttons, except th
102
111
  Unlike normal disabled buttons, aria-disabled buttons can support tooltips. Furthermore, aria-disabled buttons can operate as links, which also support tooltips.
103
112
 
104
113
  ```ts file="./ButtonAriaDisabled.tsx"
114
+
105
115
  ```
106
116
 
107
117
  ### Button with count
@@ -109,6 +119,7 @@ Unlike normal disabled buttons, aria-disabled buttons can support tooltips. Furt
109
119
  Buttons can display a `count` in the form of a badge to indicate some value or number by passing in the `countOptions` prop as a `BadgeCountObject` object. The `BadgeCountObject` object will handle `count`, `isRead`, and `className` props for the badge count.
110
120
 
111
121
  ```ts file="./ButtonWithCount.tsx"
122
+
112
123
  ```
113
124
 
114
125
  ### Plain with no padding
@@ -116,6 +127,7 @@ Buttons can display a `count` in the form of a badge to indicate some value or n
116
127
  To display a plain/icon button inline with text, use `noPadding` prop in addition to `variant="plain"`.
117
128
 
118
129
  ```ts file="./ButtonPlainHasNoPadding.tsx"
130
+
119
131
  ```
120
132
 
121
133
  ### Stateful
@@ -123,6 +135,37 @@ To display a plain/icon button inline with text, use `noPadding` prop in additio
123
135
  Stateful buttons are ideal for displaying the state of notifications. Use `variant="stateful"` alongside with the `state` property, which can have these 3 values: `read`, `unread` (used as default) and `attention` (which means unread and requires attention).
124
136
 
125
137
  ```ts file="./ButtonStateful.tsx"
138
+
139
+ ```
140
+
141
+ ## Animated examples
142
+
143
+ The following `<Button>` implementations have animations built into them. When using one of the following implementations, the `icon` property will be overridden due to the animations needing specific icons internally.
144
+
145
+ ### Favorite
146
+
147
+ You can pass both the `isFavorite` and `variant="plain"` properties into the `<Button>` to create a favorite button. Passing the `isFavorited` property will determine the current favorited state and update styling accordingly.
148
+
149
+ ```ts file = "./ButtonFavorite.tsx"
150
+
151
+ ```
152
+
153
+ ### Settings
154
+
155
+ For a "settings" button with animations on hover and focus, you can pass the `isSettings` property into either a `variant="plain"` or `variant="control"` button.
156
+
157
+ ```ts file="./ButtonSettings.tsx"
158
+
159
+ ```
160
+
161
+ ### Hamburger
162
+
163
+ For a "hamburger" button (`fa-bars`) that will animate based on the `hamburgerVariant` property, you can pass the `isHamburger` property. This will render the default icon for a hamburger button, and updating the `hamburgerVariant` property with a value of either "expand" or "collapse" will change the icon accordingly with an animation on hover and focus.
164
+
165
+ When used within a PatternFly `<Masthead>`, the animations and icon updates will occur automatically. See one of our [full screen page demos](/components/page/react-demos) to see this in action.
166
+
167
+ ```ts file="./ButtonHamburger.tsx"
168
+
126
169
  ```
127
170
 
128
171
  ## Using router links
@@ -133,4 +176,4 @@ Router links can be used for in-app linking in React environments to prevent pag
133
176
  <Button variant="link" component={(props: any) => <Link {...props} to="#" />}>
134
177
  Router link
135
178
  </Button>
136
- ```
179
+ ```
@@ -0,0 +1,18 @@
1
+ import { useState } from 'react';
2
+ import { Button } from '@patternfly/react-core';
3
+
4
+ export const ButtonFavorite: React.FunctionComponent = () => {
5
+ const [isFavorited, setIsFavorited] = useState(false);
6
+ const toggleFavorite = () => {
7
+ setIsFavorited(!isFavorited);
8
+ };
9
+ return (
10
+ <Button
11
+ variant="plain"
12
+ aria-label={isFavorited ? 'Favorite example favorited' : 'Favorite example not favorited'}
13
+ isFavorite
14
+ isFavorited={isFavorited}
15
+ onClick={toggleFavorite}
16
+ />
17
+ );
18
+ };
@@ -0,0 +1,9 @@
1
+ import { Button, Flex } from '@patternfly/react-core';
2
+
3
+ export const ButtonHamburger: React.FunctionComponent = () => (
4
+ <Flex>
5
+ <Button variant="plain" isExpanded={false} aria-label="Hamburger example" isHamburger />
6
+ <Button variant="plain" isExpanded={false} aria-label="Hamburger example" isHamburger hamburgerVariant="expand" />
7
+ <Button variant="plain" isExpanded={true} aria-label="Hamburger example" isHamburger hamburgerVariant="collapse" />
8
+ </Flex>
9
+ );
@@ -0,0 +1,10 @@
1
+ import { Button, Flex } from '@patternfly/react-core';
2
+
3
+ export const ButtonSettings: React.FunctionComponent = () => (
4
+ <Flex>
5
+ <Button isSettings variant="plain" aria-label="Settings" />
6
+ <Button isSettings variant="control">
7
+ Settings
8
+ </Button>
9
+ </Flex>
10
+ );
@@ -0,0 +1,13 @@
1
+ import styles from '@patternfly/react-styles/css/components/Button/button';
2
+ import { css } from '@patternfly/react-styles';
3
+
4
+ // Because this is such a specific icon that requires being wrapped in a pf-v[current version]-c-button element,
5
+ // we don't want to export this to consumers nor include it in the react-icons package as a custom icon.
6
+ export const hamburgerIcon = (
7
+ <svg viewBox="0 0 10 10" className={css(styles.buttonHamburgerIcon, 'pf-v6-svg')} width="1em" height="1em">
8
+ <path className={css(styles.buttonHamburgerIconTop)} d="M1,1 L9,1"></path>
9
+ <path className={css(styles.buttonHamburgerIconMiddle)} d="M1,5 L9,5"></path>
10
+ <path className={css(styles.buttonHamburgerIconArrow)} d="M1,5 L1,5 L1,5"></path>
11
+ <path className={css(styles.buttonHamburgerIconBottom)} d="M9,9 L1,9"></path>
12
+ </svg>
13
+ );
@@ -131,7 +131,7 @@ You must avoid rendering any other interactive content within the `<Card>` when
131
131
 
132
132
  ### Single selectable
133
133
 
134
- When a group of single selectable cards are related, you must pass the same `name` property to each card's `selectableActions` property.
134
+ When a group of single selectable cards are related, you must pass the same `name` property to each card's `selectableActions` property. For more guidance on selectable cards with hidden input, see our [cards as tiles examples](#cards-as-tiles).
135
135
 
136
136
  ```ts file='./CardSingleSelectable.tsx'
137
137
 
@@ -5,7 +5,8 @@ export const SelectableCard: React.FunctionComponent = () => {
5
5
  const [isChecked1, setIsChecked1] = useState(false);
6
6
  const [isChecked2, setIsChecked2] = useState(false);
7
7
  const [isChecked3, setIsChecked3] = useState(false);
8
- const [isSecondary, setIsSecondary] = useState<boolean>(false);
8
+ const [isSecondary, setIsSecondary] = useState(false);
9
+ const [displayCheckbox, setDisplayCheckbox] = useState(false);
9
10
 
10
11
  const id1 = 'selectable-card-input-1';
11
12
  const id2 = 'selectable-card-input-2';
@@ -31,6 +32,10 @@ export const SelectableCard: React.FunctionComponent = () => {
31
32
  setIsSecondary(checked);
32
33
  };
33
34
 
35
+ const toggleHide = (checked: boolean) => {
36
+ setDisplayCheckbox(checked);
37
+ };
38
+
34
39
  return (
35
40
  <>
36
41
  <Checkbox
@@ -40,68 +45,76 @@ export const SelectableCard: React.FunctionComponent = () => {
40
45
  id="toggle-variant-selectable"
41
46
  name="toggle-variant"
42
47
  />
43
- <div style={{ marginTop: '15px' }}>
44
- <Gallery hasGutter>
45
- <Card
46
- id="selectable-card-example-1"
47
- isSelectable
48
- isSelected={isChecked1}
49
- variant={isSecondary ? 'secondary' : 'default'}
48
+ <Checkbox
49
+ label="Hide checkbox"
50
+ isChecked={displayCheckbox}
51
+ onChange={(_event, checked) => toggleHide(checked)}
52
+ id="selectable-toggle-hide-checkbox"
53
+ name="toggle-hide"
54
+ />
55
+ <Gallery hasGutter style={{ marginTop: '15px' }}>
56
+ <Card
57
+ id="selectable-card-example-1"
58
+ isSelectable
59
+ isSelected={isChecked1}
60
+ variant={isSecondary ? 'secondary' : 'default'}
61
+ >
62
+ <CardHeader
63
+ selectableActions={{
64
+ selectableActionId: id1,
65
+ selectableActionAriaLabelledby: 'selectable-card-example-1',
66
+ name: id1,
67
+ onChange,
68
+ hasNoOffset: true,
69
+ isHidden: displayCheckbox
70
+ }}
50
71
  >
51
- <CardHeader
52
- selectableActions={{
53
- selectableActionId: id1,
54
- selectableActionAriaLabelledby: 'selectable-card-example-1',
55
- name: id1,
56
- onChange,
57
- hasNoOffset: true
58
- }}
59
- >
60
- <CardTitle>First card</CardTitle>
61
- </CardHeader>
62
- <CardBody>This card is selectable.</CardBody>
63
- </Card>
64
- <Card
65
- id="selectable-card-example-2"
66
- isSelectable
67
- isSelected={isChecked2}
68
- variant={isSecondary ? 'secondary' : 'default'}
72
+ <CardTitle>First card</CardTitle>
73
+ </CardHeader>
74
+ <CardBody>This card is selectable.</CardBody>
75
+ </Card>
76
+ <Card
77
+ id="selectable-card-example-2"
78
+ isSelectable
79
+ isSelected={isChecked2}
80
+ variant={isSecondary ? 'secondary' : 'default'}
81
+ >
82
+ <CardHeader
83
+ selectableActions={{
84
+ selectableActionId: id2,
85
+ selectableActionAriaLabelledby: 'selectable-card-example-2',
86
+ name: id2,
87
+ onChange,
88
+ hasNoOffset: true,
89
+ isHidden: displayCheckbox
90
+ }}
69
91
  >
70
- <CardHeader
71
- selectableActions={{
72
- selectableActionId: id2,
73
- selectableActionAriaLabelledby: 'selectable-card-example-2',
74
- name: id2,
75
- onChange,
76
- hasNoOffset: true
77
- }}
78
- >
79
- <CardTitle>Second card</CardTitle>
80
- </CardHeader>
81
- <CardBody>This card is selectable.</CardBody>
82
- </Card>
83
- <Card
84
- id="selectable-card-example-3"
85
- isSelectable
86
- isDisabled
87
- isSelected={isChecked3}
88
- variant={isSecondary ? 'secondary' : 'default'}
92
+ <CardTitle>Second card</CardTitle>
93
+ </CardHeader>
94
+ <CardBody>This card is selectable.</CardBody>
95
+ </Card>
96
+ <Card
97
+ id="selectable-card-example-3"
98
+ isSelectable
99
+ isDisabled
100
+ isSelected={isChecked3}
101
+ variant={isSecondary ? 'secondary' : 'default'}
102
+ >
103
+ <CardHeader
104
+ selectableActions={{
105
+ selectableActionId: id3,
106
+ selectableActionAriaLabelledby: 'selectable-card-example-3',
107
+ name: id3,
108
+ onChange,
109
+ hasNoOffset: true,
110
+ isHidden: displayCheckbox
111
+ }}
89
112
  >
90
- <CardHeader
91
- selectableActions={{
92
- selectableActionId: id3,
93
- selectableActionAriaLabelledby: 'selectable-card-example-3',
94
- name: id3,
95
- onChange,
96
- hasNoOffset: true
97
- }}
98
- >
99
- <CardTitle>Third card</CardTitle>
100
- </CardHeader>
101
- <CardBody>This card is selectable but disabled.</CardBody>
102
- </Card>
103
- </Gallery>
104
- </div>
113
+ <CardTitle>Third card</CardTitle>
114
+ </CardHeader>
115
+ <CardBody>This card is selectable but disabled.</CardBody>
116
+ </Card>
117
+ </Gallery>
105
118
  </>
106
119
  );
107
120
  };
@@ -1,63 +1,80 @@
1
1
  import { useState } from 'react';
2
- import { Card, CardHeader, CardTitle, CardBody, Gallery } from '@patternfly/react-core';
2
+ import { Card, CardHeader, CardTitle, CardBody, Gallery, Checkbox } from '@patternfly/react-core';
3
3
 
4
4
  export const SingleSelectableCard: React.FunctionComponent = () => {
5
5
  const [isChecked, setIsChecked] = useState('');
6
6
  const id1 = 'single-selectable-card-input-1';
7
7
  const id2 = 'single-selectable-card-input-2';
8
8
  const id3 = 'single-selectable-card-input-3';
9
+ const [displayRadioButton, setDisplayRadioButton] = useState(false);
9
10
 
10
11
  const onChange = (event: React.FormEvent<HTMLInputElement>) => {
11
12
  setIsChecked(event.currentTarget.id);
12
13
  };
13
14
 
15
+ const toggleHide = (checked: boolean) => {
16
+ setDisplayRadioButton(checked);
17
+ };
18
+
14
19
  return (
15
- <Gallery hasGutter>
16
- <Card id="single-selectable-card-example-1" isSelectable isSelected={isChecked === id1}>
17
- <CardHeader
18
- selectableActions={{
19
- selectableActionId: id1,
20
- selectableActionAriaLabelledby: 'single-selectable-card-example-1',
21
- name: 'single-selectable-card-example',
22
- variant: 'single',
23
- onChange,
24
- hasNoOffset: true
25
- }}
26
- >
27
- <CardTitle>First card</CardTitle>
28
- </CardHeader>
29
- <CardBody>This card is single selectable.</CardBody>
30
- </Card>
31
- <Card id="single-selectable-card-example-2" isSelectable isSelected={isChecked === id2}>
32
- <CardHeader
33
- selectableActions={{
34
- selectableActionId: id2,
35
- selectableActionAriaLabelledby: 'single-selectable-card-example-2',
36
- name: 'single-selectable-card-example',
37
- variant: 'single',
38
- onChange,
39
- hasNoOffset: true
40
- }}
41
- >
42
- <CardTitle>Second card</CardTitle>
43
- </CardHeader>
44
- <CardBody>This card is single selectable.</CardBody>
45
- </Card>
46
- <Card id="single-selectable-card-example-3" isSelectable isDisabled isSelected={isChecked === id3}>
47
- <CardHeader
48
- selectableActions={{
49
- selectableActionId: id3,
50
- selectableActionAriaLabelledby: 'single-selectable-card-example-3',
51
- name: 'single-selectable-card-example',
52
- variant: 'single',
53
- onChange,
54
- hasNoOffset: true
55
- }}
56
- >
57
- <CardTitle>Third card</CardTitle>
58
- </CardHeader>
59
- <CardBody>This card is single selectable but disabled.</CardBody>
60
- </Card>
61
- </Gallery>
20
+ <>
21
+ <Checkbox
22
+ label="Hide radio button"
23
+ isChecked={displayRadioButton}
24
+ onChange={(_event, checked) => toggleHide(checked)}
25
+ id="single-select-toggle-hide-radio-button"
26
+ name="toggle-hide"
27
+ />
28
+ <Gallery hasGutter style={{ marginTop: '15px' }}>
29
+ <Card id="single-selectable-card-example-1" isSelectable isSelected={isChecked === id1}>
30
+ <CardHeader
31
+ selectableActions={{
32
+ selectableActionId: id1,
33
+ selectableActionAriaLabelledby: 'single-selectable-card-example-1',
34
+ name: 'single-selectable-card-example',
35
+ variant: 'single',
36
+ onChange,
37
+ hasNoOffset: true,
38
+ isHidden: displayRadioButton
39
+ }}
40
+ >
41
+ <CardTitle>First card</CardTitle>
42
+ </CardHeader>
43
+ <CardBody>This card is single selectable.</CardBody>
44
+ </Card>
45
+ <Card id="single-selectable-card-example-2" isSelectable isSelected={isChecked === id2}>
46
+ <CardHeader
47
+ selectableActions={{
48
+ selectableActionId: id2,
49
+ selectableActionAriaLabelledby: 'single-selectable-card-example-2',
50
+ name: 'single-selectable-card-example',
51
+ variant: 'single',
52
+ onChange,
53
+ hasNoOffset: true,
54
+ isHidden: displayRadioButton
55
+ }}
56
+ >
57
+ <CardTitle>Second card</CardTitle>
58
+ </CardHeader>
59
+ <CardBody>This card is single selectable.</CardBody>
60
+ </Card>
61
+ <Card id="single-selectable-card-example-3" isSelectable isDisabled isSelected={isChecked === id3}>
62
+ <CardHeader
63
+ selectableActions={{
64
+ selectableActionId: id3,
65
+ selectableActionAriaLabelledby: 'single-selectable-card-example-3',
66
+ name: 'single-selectable-card-example',
67
+ variant: 'single',
68
+ onChange,
69
+ hasNoOffset: true,
70
+ isHidden: displayRadioButton
71
+ }}
72
+ >
73
+ <CardTitle>Third card</CardTitle>
74
+ </CardHeader>
75
+ <CardBody>This card is single selectable but disabled.</CardBody>
76
+ </Card>
77
+ </Gallery>
78
+ </>
62
79
  );
63
80
  };
@@ -204,7 +204,7 @@ class ClipboardCopy extends Component<ClipboardCopyProps, ClipboardCopyState> {
204
204
  const shouldTruncate = variant === ClipboardCopyVariant.inlineCompact && truncation;
205
205
  const inlineCompactContent = shouldTruncate ? (
206
206
  <Truncate
207
- refToGetParent={this.clipboardRef}
207
+ tooltipProps={{ triggerRef: this.clipboardRef }}
208
208
  content={copyableText}
209
209
  {...(typeof truncation === 'object' && truncation)}
210
210
  />
@@ -223,6 +223,7 @@ class ClipboardCopy extends Component<ClipboardCopyProps, ClipboardCopyState> {
223
223
  className
224
224
  )}
225
225
  ref={this.clipboardRef}
226
+ {...(shouldTruncate && { tabIndex: 0 })}
226
227
  {...divProps}
227
228
  {...getOUIAProps(ClipboardCopy.displayName, ouiaId, ouiaSafe)}
228
229
  >
@@ -27,7 +27,7 @@ export const ClipboardCopyToggle: React.FunctionComponent<ClipboardCopyTogglePro
27
27
  onClick={onClick}
28
28
  id={id}
29
29
  aria-labelledby={`${id} ${textId}`}
30
- aria-controls={contentId}
30
+ aria-controls={isExpanded ? contentId : undefined}
31
31
  aria-expanded={isExpanded}
32
32
  {...props}
33
33
  icon={
@@ -44,9 +44,15 @@ test('Renders with aria-labelledby concatenated from id and textId props', () =>
44
44
  expect(screen.getByRole('button')).toHaveAccessibleName('Toggle content Test content');
45
45
  });
46
46
 
47
- test('Renders with aria-controls with passed in contentId prop', () => {
47
+ test('Does not render with aria-controls when isExpanded is false', () => {
48
48
  render(<ClipboardCopyToggle {...requiredProps} />);
49
49
 
50
+ expect(screen.getByRole('button')).not.toHaveAttribute('aria-controls');
51
+ });
52
+
53
+ test('Renders with aria-controls with passed in contentId prop when isExpanded is true', () => {
54
+ render(<ClipboardCopyToggle isExpanded {...requiredProps} />);
55
+
50
56
  expect(screen.getByRole('button')).toHaveAttribute('aria-controls', requiredProps.contentId);
51
57
  });
52
58
 
@@ -3,7 +3,6 @@
3
3
  exports[`Matches snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <button
6
- aria-controls="content-id"
7
6
  aria-expanded="false"
8
7
  aria-labelledby="main-id text-id"
9
8
  class="pf-v6-c-button pf-m-control"
@@ -17,13 +17,19 @@ export interface DualListSelectorProps {
17
17
  isTree?: boolean;
18
18
  /** Content to be rendered in the dual list selector. */
19
19
  children?: React.ReactNode;
20
+ /** Flag indicating whether a tree dual list selector has animations. This will always render
21
+ * nested dual list selector items rather than dynamically rendering them. This prop will be removed in
22
+ * the next breaking change release in favor of defaulting to always-rendered items.
23
+ */
24
+ hasAnimations?: boolean;
20
25
  }
21
26
 
22
27
  class DualListSelector extends Component<DualListSelectorProps> {
23
28
  static displayName = 'DualListSelector';
24
29
  static defaultProps: PickOptional<DualListSelectorProps> = {
25
30
  children: '',
26
- isTree: false
31
+ isTree: false,
32
+ hasAnimations: false
27
33
  };
28
34
 
29
35
  constructor(props: DualListSelectorProps) {
@@ -31,13 +37,21 @@ class DualListSelector extends Component<DualListSelectorProps> {
31
37
  }
32
38
 
33
39
  render() {
34
- const { className, children, id, isTree, ...props } = this.props;
40
+ const { className, children, id, isTree, hasAnimations, ...props } = this.props;
35
41
 
36
42
  return (
37
- <DualListSelectorContext.Provider value={{ isTree }}>
43
+ <DualListSelectorContext.Provider value={{ isTree, hasAnimations }}>
38
44
  <GenerateId>
39
45
  {(randomId) => (
40
- <div className={css(styles.dualListSelector, className)} id={id || randomId} {...props}>
46
+ <div
47
+ className={css(
48
+ styles.dualListSelector,
49
+ hasAnimations && isTree && styles.modifiers.animateExpand,
50
+ className
51
+ )}
52
+ id={id || randomId}
53
+ {...props}
54
+ >
41
55
  {children}
42
56
  </div>
43
57
  )}
@@ -1,7 +1,8 @@
1
1
  import { createContext } from 'react';
2
2
  export const DualListSelectorContext = createContext<{
3
3
  isTree?: boolean;
4
- }>({ isTree: false });
4
+ hasAnimations?: boolean;
5
+ }>({ isTree: false, hasAnimations: false });
5
6
 
6
7
  export const DualListSelectorListContext = createContext<{
7
8
  setFocusedOption?: (id: string) => void;