@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
@@ -0,0 +1,55 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { FormFieldGroupExpandable } from '../FormFieldGroupExpandable';
3
+ import styles from '@patternfly/react-styles/css/components/Form/form';
4
+
5
+ test('Does not render children by default', () => {
6
+ render(<FormFieldGroupExpandable toggleAriaLabel="Toggle label">Child content</FormFieldGroupExpandable>);
7
+
8
+ expect(screen.queryByText('Child content')).not.toBeInTheDocument();
9
+ });
10
+
11
+ test('Renders children when isExpanded is true', () => {
12
+ render(
13
+ <FormFieldGroupExpandable isExpanded toggleAriaLabel="Toggle label">
14
+ Child content
15
+ </FormFieldGroupExpandable>
16
+ );
17
+
18
+ expect(screen.getByText('Child content')).toBeInTheDocument();
19
+ });
20
+
21
+ test('Renders children with inert attribute by default when hasAnimations is true', () => {
22
+ render(
23
+ <FormFieldGroupExpandable hasAnimations toggleAriaLabel="Toggle label">
24
+ Child content
25
+ </FormFieldGroupExpandable>
26
+ );
27
+
28
+ expect(screen.getByText('Child content')).toHaveAttribute('inert', '');
29
+ });
30
+
31
+ test('Does not render children with inert attribute when hasAnimations and isExpanded are true', () => {
32
+ render(
33
+ <FormFieldGroupExpandable hasAnimations isExpanded toggleAriaLabel="Toggle label">
34
+ Child content
35
+ </FormFieldGroupExpandable>
36
+ );
37
+
38
+ expect(screen.getByText('Child content')).not.toHaveAttribute('inert');
39
+ });
40
+
41
+ test(`Does not render with class ${styles.modifiers.expandable} by default`, () => {
42
+ render(<FormFieldGroupExpandable toggleAriaLabel="Toggle label">Child content</FormFieldGroupExpandable>);
43
+
44
+ expect(screen.getByRole('group')).not.toHaveClass(styles.modifiers.expandable);
45
+ });
46
+
47
+ test(`Renders with class ${styles.modifiers.expandable} when hasAnimations is true`, () => {
48
+ render(
49
+ <FormFieldGroupExpandable hasAnimations toggleAriaLabel="Toggle label">
50
+ Child content
51
+ </FormFieldGroupExpandable>
52
+ );
53
+
54
+ expect(screen.getByRole('group')).toHaveClass(styles.modifiers.expandable);
55
+ });
@@ -52,6 +52,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
52
52
  <TextInput isRequired id="0-label2" name="0-label2" value={inputValues['0-label2']} onChange={handleChange} />
53
53
  </FormGroup>
54
54
  <FormFieldGroupExpandable
55
+ hasAnimations
55
56
  isExpanded
56
57
  toggleAriaLabel="Details"
57
58
  header={
@@ -67,6 +68,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
67
68
  }
68
69
  >
69
70
  <FormFieldGroupExpandable
71
+ hasAnimations
70
72
  isExpanded
71
73
  toggleAriaLabel="Details"
72
74
  header={
@@ -97,6 +99,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
97
99
  </FormGroup>
98
100
  </FormFieldGroupExpandable>
99
101
  <FormFieldGroupExpandable
102
+ hasAnimations
100
103
  toggleAriaLabel="Details"
101
104
  header={
102
105
  <FormFieldGroupHeader
@@ -125,6 +128,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
125
128
  </FormGroup>
126
129
  </FormFieldGroupExpandable>
127
130
  <FormFieldGroupExpandable
131
+ hasAnimations
128
132
  toggleAriaLabel="Details"
129
133
  header={
130
134
  <FormFieldGroupHeader
@@ -173,6 +177,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
173
177
  </FormGroup>
174
178
  </FormFieldGroupExpandable>
175
179
  <FormFieldGroupExpandable
180
+ hasAnimations
176
181
  toggleAriaLabel="Details"
177
182
  header={
178
183
  <FormFieldGroupHeader
@@ -194,6 +199,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
194
199
  </FormGroup>
195
200
  </FormFieldGroupExpandable>
196
201
  <FormFieldGroupExpandable
202
+ hasAnimations
197
203
  isExpanded
198
204
  toggleAriaLabel="Details"
199
205
  header={
@@ -273,7 +279,7 @@ export const FormFieldGroups: React.FunctionComponent = () => {
273
279
  header={
274
280
  <FormFieldGroupHeader
275
281
  titleText={{ text: 'Field group 4 (non-expandable)', id: 'field-group4-non-expandable-titleText-id' }}
276
- titleDescription="Field group 4 description text."
282
+ titleDescription="Field group 4 description text fdgsdg."
277
283
  actions={
278
284
  <>
279
285
  <Button variant="link">Delete all</Button> <Button variant="secondary">Add parameter</Button>
@@ -145,13 +145,75 @@ export const Label: React.FunctionComponent<LabelProps> = ({
145
145
  }
146
146
 
147
147
  useEffect(() => {
148
+ const onDocMouseDown = (event: MouseEvent) => {
149
+ if (
150
+ isEditableActive &&
151
+ editableInputRef &&
152
+ editableInputRef.current &&
153
+ !editableInputRef.current.contains(event.target as Node)
154
+ ) {
155
+ if (editableInputRef.current.value) {
156
+ onEditComplete && onEditComplete(event, editableInputRef.current.value);
157
+ }
158
+ setIsEditableActive(false);
159
+ }
160
+ };
161
+
162
+ const onKeyDown = (event: KeyboardEvent) => {
163
+ const key = event.key;
164
+ if (
165
+ (!isEditableActive &&
166
+ (!editableButtonRef ||
167
+ !editableButtonRef.current ||
168
+ !editableButtonRef.current.contains(event.target as Node))) ||
169
+ (isEditableActive &&
170
+ (!editableInputRef || !editableInputRef.current || !editableInputRef.current.contains(event.target as Node)))
171
+ ) {
172
+ return;
173
+ }
174
+ if (isEditableActive && (key === 'Enter' || key === 'Tab')) {
175
+ event.preventDefault();
176
+ event.stopImmediatePropagation();
177
+ if (editableInputRef.current.value) {
178
+ onEditComplete && onEditComplete(event, editableInputRef.current.value);
179
+ }
180
+ setIsEditableActive(false);
181
+ editableButtonRef?.current?.focus();
182
+ }
183
+ if (isEditableActive && key === 'Escape') {
184
+ event.preventDefault();
185
+ event.stopImmediatePropagation();
186
+ // Reset div text to initial children prop - pre-edit
187
+ if (editableInputRef.current.value) {
188
+ editableInputRef.current.value = children as string;
189
+ onEditCancel && onEditCancel(event, children as string);
190
+ }
191
+ setIsEditableActive(false);
192
+ editableButtonRef?.current?.focus();
193
+ }
194
+ if (!isEditableActive && key === 'Enter') {
195
+ event.preventDefault();
196
+ event.stopImmediatePropagation();
197
+ setIsEditableActive(true);
198
+
199
+ // Set cursor position to end of text
200
+ const el = event.target as HTMLElement;
201
+ const range = document.createRange();
202
+ const sel = window.getSelection();
203
+ range.selectNodeContents(el);
204
+ range.collapse(false);
205
+ sel.removeAllRanges();
206
+ sel.addRange(range);
207
+ }
208
+ };
209
+
148
210
  document.addEventListener('mousedown', onDocMouseDown);
149
211
  document.addEventListener('keydown', onKeyDown);
150
212
  return () => {
151
213
  document.removeEventListener('mousedown', onDocMouseDown);
152
214
  document.removeEventListener('keydown', onKeyDown);
153
215
  };
154
- });
216
+ }, [isEditableActive, editableInputRef, editableButtonRef, onEditComplete, onEditCancel, children]);
155
217
 
156
218
  useEffect(() => {
157
219
  if (onLabelClick && href) {
@@ -167,68 +229,6 @@ export const Label: React.FunctionComponent<LabelProps> = ({
167
229
  }
168
230
  }, [onLabelClick, href, isEditable]);
169
231
 
170
- const onDocMouseDown = (event: MouseEvent) => {
171
- if (
172
- isEditableActive &&
173
- editableInputRef &&
174
- editableInputRef.current &&
175
- !editableInputRef.current.contains(event.target as Node)
176
- ) {
177
- if (editableInputRef.current.value) {
178
- onEditComplete && onEditComplete(event, editableInputRef.current.value);
179
- }
180
- setIsEditableActive(false);
181
- }
182
- };
183
-
184
- const onKeyDown = (event: KeyboardEvent) => {
185
- const key = event.key;
186
- if (
187
- (!isEditableActive &&
188
- (!editableButtonRef ||
189
- !editableButtonRef.current ||
190
- !editableButtonRef.current.contains(event.target as Node))) ||
191
- (isEditableActive &&
192
- (!editableInputRef || !editableInputRef.current || !editableInputRef.current.contains(event.target as Node)))
193
- ) {
194
- return;
195
- }
196
- if (isEditableActive && (key === 'Enter' || key === 'Tab')) {
197
- event.preventDefault();
198
- event.stopImmediatePropagation();
199
- if (editableInputRef.current.value) {
200
- onEditComplete && onEditComplete(event, editableInputRef.current.value);
201
- }
202
- setIsEditableActive(false);
203
- editableButtonRef?.current?.focus();
204
- }
205
- if (isEditableActive && key === 'Escape') {
206
- event.preventDefault();
207
- event.stopImmediatePropagation();
208
- // Reset div text to initial children prop - pre-edit
209
- if (editableInputRef.current.value) {
210
- editableInputRef.current.value = children as string;
211
- onEditCancel && onEditCancel(event, children as string);
212
- }
213
- setIsEditableActive(false);
214
- editableButtonRef?.current?.focus();
215
- }
216
- if (!isEditableActive && key === 'Enter') {
217
- event.preventDefault();
218
- event.stopImmediatePropagation();
219
- setIsEditableActive(true);
220
-
221
- // Set cursor position to end of text
222
- const el = event.target as HTMLElement;
223
- const range = document.createRange();
224
- const sel = window.getSelection();
225
- range.selectNodeContents(el);
226
- range.collapse(false);
227
- sel.removeAllRanges();
228
- sel.addRange(range);
229
- }
230
- };
231
-
232
232
  const isClickableDisabled = (href || onLabelClick) && isDisabled;
233
233
 
234
234
  const defaultCloseButton = (
@@ -7,13 +7,12 @@ import {
7
7
  MastheadContent,
8
8
  Button
9
9
  } from '@patternfly/react-core';
10
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
11
10
 
12
11
  export const MastheadBasic: React.FunctionComponent = () => (
13
12
  <Masthead id="basic-example">
14
13
  <MastheadMain>
15
14
  <MastheadToggle>
16
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
15
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
17
16
  </MastheadToggle>
18
17
  <MastheadBrand>
19
18
  <MastheadLogo component="a">Logo</MastheadLogo>
@@ -9,13 +9,12 @@ import {
9
9
  Flex,
10
10
  FlexItem
11
11
  } from '@patternfly/react-core';
12
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
13
12
 
14
13
  export const MastheadBasicMixedContent: React.FunctionComponent = () => (
15
14
  <Masthead id="basic-mixed">
16
15
  <MastheadMain>
17
16
  <MastheadToggle>
18
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
17
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
19
18
  </MastheadToggle>
20
19
  <MastheadBrand>
21
20
  <MastheadLogo component="a">Logo</MastheadLogo>
@@ -7,13 +7,12 @@ import {
7
7
  MastheadContent,
8
8
  Button
9
9
  } from '@patternfly/react-core';
10
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
11
10
 
12
11
  export const MastheadDisplayInline: React.FunctionComponent = () => (
13
12
  <Masthead id="inline-masthead" display={{ default: 'inline' }}>
14
13
  <MastheadMain>
15
14
  <MastheadToggle>
16
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
15
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
17
16
  </MastheadToggle>
18
17
  <MastheadBrand>
19
18
  <MastheadLogo component="a">Logo</MastheadLogo>
@@ -7,13 +7,12 @@ import {
7
7
  MastheadContent,
8
8
  Button
9
9
  } from '@patternfly/react-core';
10
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
11
10
 
12
11
  export const MastheadDisplayStack: React.FunctionComponent = () => (
13
12
  <Masthead id="stack-masthead" display={{ default: 'stack' }}>
14
13
  <MastheadMain>
15
14
  <MastheadToggle>
16
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
15
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
17
16
  </MastheadToggle>
18
17
  <MastheadBrand>
19
18
  <MastheadLogo component="a">Logo</MastheadLogo>
@@ -7,13 +7,12 @@ import {
7
7
  MastheadContent,
8
8
  Button
9
9
  } from '@patternfly/react-core';
10
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
11
10
 
12
11
  export const MastheadDisplayStackInlineResponsive: React.FunctionComponent = () => (
13
12
  <Masthead id="stack-inline-masthead" display={{ default: 'inline', lg: 'stack', '2xl': 'inline' }}>
14
13
  <MastheadMain>
15
14
  <MastheadToggle>
16
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
15
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
17
16
  </MastheadToggle>
18
17
  <MastheadBrand>
19
18
  <MastheadLogo component="a">Logo</MastheadLogo>
@@ -7,13 +7,12 @@ import {
7
7
  MastheadContent,
8
8
  Button
9
9
  } from '@patternfly/react-core';
10
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
11
10
 
12
11
  export const MastheadInsets: React.FunctionComponent = () => (
13
12
  <Masthead id="inset-masthead" inset={{ default: 'insetSm' }}>
14
13
  <MastheadMain>
15
14
  <MastheadToggle>
16
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
15
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
17
16
  </MastheadToggle>
18
17
  <MastheadBrand>
19
18
  <MastheadLogo component="a">Logo</MastheadLogo>
@@ -8,14 +8,13 @@ import {
8
8
  Button,
9
9
  Brand
10
10
  } from '@patternfly/react-core';
11
- import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
12
11
  import pfIcon from '../../assets/PF-HorizontalLogo-Color.svg';
13
12
 
14
13
  export const MastheadLogoCustomComponent: React.FunctionComponent = () => (
15
14
  <Masthead id="icon-router-link">
16
15
  <MastheadMain>
17
16
  <MastheadToggle>
18
- <Button variant="plain" onClick={() => {}} aria-label="Global navigation" icon={<BarsIcon />} />
17
+ <Button variant="plain" isHamburger onClick={() => {}} aria-label="Global navigation" />
19
18
  </MastheadToggle>
20
19
  <MastheadBrand>
21
20
  <MastheadLogo component={(props) => <a {...props} href="#" />}>
@@ -119,15 +119,15 @@ class MenuBase extends Component<MenuProps, MenuState> {
119
119
  if (this.context) {
120
120
  this.setState({ disableHover: this.context.disableHover });
121
121
  }
122
- if (canUseDOM && this.props.containsDrilldown) {
123
- window.addEventListener('transitionend', this.props.isRootMenu ? this.handleDrilldownTransition : null);
122
+ if (canUseDOM && this.props.containsDrilldown && this.props.isRootMenu) {
123
+ window.addEventListener('transitionend', this.handleDrilldownTransition);
124
124
  }
125
125
 
126
126
  this.allowTabFirstItem();
127
127
  }
128
128
 
129
129
  componentWillUnmount() {
130
- if (canUseDOM && this.props.containsDrilldown) {
130
+ if (canUseDOM && this.props.containsDrilldown && this.props.isRootMenu) {
131
131
  window.removeEventListener('transitionend', this.handleDrilldownTransition);
132
132
  }
133
133
  }
@@ -3,6 +3,7 @@ import styles from '@patternfly/react-styles/css/components/MenuToggle/menu-togg
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';
5
5
  import { BadgeProps } from '../Badge';
6
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
6
7
  import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
7
8
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
8
9
  import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
@@ -44,6 +45,8 @@ export interface MenuToggleProps
44
45
  isFullWidth?: boolean;
45
46
  /** Flag indicating the toggle contains placeholder text */
46
47
  isPlaceholder?: boolean;
48
+ /** Flag indicating whether the toggle is a settings toggle. This will override the icon property */
49
+ isSettings?: boolean;
47
50
  /** Elements to display before the toggle button. When included, renders the menu toggle as a split button. */
48
51
  splitButtonItems?: React.ReactNode[];
49
52
  /** Variant styles of the menu toggle */
@@ -100,6 +103,7 @@ class MenuToggleBase extends Component<MenuToggleProps, MenuToggleState> {
100
103
  isFullHeight,
101
104
  isFullWidth,
102
105
  isPlaceholder,
106
+ isSettings,
103
107
  splitButtonItems,
104
108
  variant,
105
109
  status,
@@ -144,7 +148,7 @@ class MenuToggleBase extends Component<MenuToggleProps, MenuToggleState> {
144
148
 
145
149
  const content = (
146
150
  <>
147
- {icon && <span className={css(styles.menuToggleIcon)}>{icon}</span>}
151
+ {(icon || isSettings) && <span className={css(styles.menuToggleIcon)}>{isSettings ? <CogIcon /> : icon}</span>}
148
152
  {isTypeahead ? children : children && <span className={css(styles.menuToggleText)}>{children}</span>}
149
153
  {isValidElement(badge) && <span className={css(styles.menuToggleCount)}>{badge}</span>}
150
154
  {isTypeahead ? (
@@ -177,6 +181,7 @@ class MenuToggleBase extends Component<MenuToggleProps, MenuToggleState> {
177
181
  isFullWidth && styles.modifiers.fullWidth,
178
182
  isDisabled && styles.modifiers.disabled,
179
183
  isPlaceholder && styles.modifiers.placeholder,
184
+ isSettings && styles.modifiers.settings,
180
185
  size === MenuToggleSize.sm && styles.modifiers.small,
181
186
  className
182
187
  );
@@ -8,7 +8,7 @@ import { render, screen } from '@testing-library/react';
8
8
  import styles from '@patternfly/react-styles/css/components/MenuToggle/menu-toggle';
9
9
  import '@testing-library/jest-dom';
10
10
 
11
- describe('menu toggle', () => {
11
+ describe('Old Snapshot tests - remove when refactoring', () => {
12
12
  test('renders successfully', () => {
13
13
  const { asFragment } = render(<MenuToggle>Toggle</MenuToggle>);
14
14
  expect(asFragment()).toMatchSnapshot();
@@ -53,54 +53,68 @@ describe('menu toggle', () => {
53
53
  const { asFragment } = render(<MenuToggle badge={<Badge>badge</Badge>}>Toggle</MenuToggle>);
54
54
  expect(asFragment()).toMatchSnapshot();
55
55
  });
56
+ });
56
57
 
57
- // Old snapshot tests end here; following tests should be kept when refactoring
58
- test(`Renders with class ${styles.modifiers.small} when size="sm" is passed`, () => {
59
- render(<MenuToggle size="sm">Toggle</MenuToggle>);
60
- expect(screen.getByRole('button')).toHaveClass(styles.modifiers.small);
61
- });
58
+ test(`Renders with class ${styles.modifiers.small} when size="sm" is passed`, () => {
59
+ render(<MenuToggle size="sm">Toggle</MenuToggle>);
60
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.small);
61
+ });
62
62
 
63
- test(`Renders with class ${styles.modifiers.success} when status="success" is passed`, () => {
64
- render(<MenuToggle status="success">Toggle</MenuToggle>);
65
- expect(screen.getByRole('button')).toHaveClass(styles.modifiers.success);
66
- });
63
+ test(`Renders with class ${styles.modifiers.success} when status="success" is passed`, () => {
64
+ render(<MenuToggle status="success">Toggle</MenuToggle>);
65
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.success);
66
+ });
67
67
 
68
- test(`Renders with class ${styles.modifiers.warning} when status="success" is passed`, () => {
69
- render(<MenuToggle status="warning">Toggle</MenuToggle>);
70
- expect(screen.getByRole('button')).toHaveClass(styles.modifiers.warning);
71
- });
68
+ test(`Renders with class ${styles.modifiers.warning} when status="success" is passed`, () => {
69
+ render(<MenuToggle status="warning">Toggle</MenuToggle>);
70
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.warning);
71
+ });
72
72
 
73
- test(`Renders with class ${styles.modifiers.danger} when status="success" is passed`, () => {
74
- render(<MenuToggle status="danger">Toggle</MenuToggle>);
75
- expect(screen.getByRole('button')).toHaveClass(styles.modifiers.danger);
76
- });
73
+ test(`Renders with class ${styles.modifiers.danger} when status="success" is passed`, () => {
74
+ render(<MenuToggle status="danger">Toggle</MenuToggle>);
75
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.danger);
76
+ });
77
77
 
78
- test('split toggle passes onClick', async () => {
79
- const mockClick = jest.fn();
80
- const user = userEvent.setup();
81
-
82
- render(
83
- <MenuToggle
84
- onClick={mockClick}
85
- splitButtonItems={[
86
- <MenuToggleCheckbox
87
- id="split-button-checkbox-with-text-disabled-example"
88
- key="split-checkbox-with-text-disabled"
89
- aria-label="Select all"
90
- >
91
- 10 selected
92
- </MenuToggleCheckbox>
93
- ]}
94
- aria-label="Menu toggle with checkbox split button and text"
95
- />
96
- );
97
-
98
- await user.click(screen.getByRole(`button`) as Element);
99
- expect(mockClick).toHaveBeenCalled();
100
- });
78
+ test('split toggle passes onClick', async () => {
79
+ const mockClick = jest.fn();
80
+ const user = userEvent.setup();
81
+
82
+ render(
83
+ <MenuToggle
84
+ onClick={mockClick}
85
+ splitButtonItems={[
86
+ <MenuToggleCheckbox
87
+ id="split-button-checkbox-with-text-disabled-example"
88
+ key="split-checkbox-with-text-disabled"
89
+ aria-label="Select all"
90
+ >
91
+ 10 selected
92
+ </MenuToggleCheckbox>
93
+ ]}
94
+ aria-label="Menu toggle with checkbox split button and text"
95
+ />
96
+ );
97
+
98
+ await user.click(screen.getByRole(`button`) as Element);
99
+ expect(mockClick).toHaveBeenCalled();
100
+ });
101
101
 
102
- test(`Renders with class ${styles.modifiers.placeholder} when isPlaceholder is passed`, () => {
103
- render(<MenuToggle isPlaceholder>Toggle</MenuToggle>);
104
- expect(screen.getByRole('button')).toHaveClass(styles.modifiers.placeholder);
105
- });
102
+ test(`Renders with class ${styles.modifiers.placeholder} when isPlaceholder is passed`, () => {
103
+ render(<MenuToggle isPlaceholder>Toggle</MenuToggle>);
104
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.placeholder);
105
+ });
106
+
107
+ test(`Renders with class ${styles.modifiers.settings} when isSettings is passed`, () => {
108
+ render(<MenuToggle isSettings>Settings</MenuToggle>);
109
+
110
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.settings);
111
+ });
112
+
113
+ test('Does not render custom icon when icon prop and isSettings are passed', () => {
114
+ render(
115
+ <MenuToggle isSettings icon={<div>Custom icon</div>}>
116
+ Settings
117
+ </MenuToggle>
118
+ );
119
+ expect(screen.queryByText('Custom icon')).not.toBeInTheDocument();
106
120
  });
@@ -1,6 +1,6 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`menu toggle passes additional classes 1`] = `
3
+ exports[`Old Snapshot tests - remove when refactoring passes additional classes 1`] = `
4
4
  <DocumentFragment>
5
5
  <button
6
6
  aria-expanded="false"
@@ -40,7 +40,7 @@ exports[`menu toggle passes additional classes 1`] = `
40
40
  </DocumentFragment>
41
41
  `;
42
42
 
43
- exports[`menu toggle renders successfully 1`] = `
43
+ exports[`Old Snapshot tests - remove when refactoring renders successfully 1`] = `
44
44
  <DocumentFragment>
45
45
  <button
46
46
  aria-expanded="false"
@@ -80,7 +80,7 @@ exports[`menu toggle renders successfully 1`] = `
80
80
  </DocumentFragment>
81
81
  `;
82
82
 
83
- exports[`menu toggle shows badge 1`] = `
83
+ exports[`Old Snapshot tests - remove when refactoring shows badge 1`] = `
84
84
  <DocumentFragment>
85
85
  <button
86
86
  aria-expanded="false"
@@ -129,7 +129,7 @@ exports[`menu toggle shows badge 1`] = `
129
129
  </DocumentFragment>
130
130
  `;
131
131
 
132
- exports[`menu toggle shows icon 1`] = `
132
+ exports[`Old Snapshot tests - remove when refactoring shows icon 1`] = `
133
133
  <DocumentFragment>
134
134
  <button
135
135
  aria-expanded="false"
@@ -186,7 +186,7 @@ exports[`menu toggle shows icon 1`] = `
186
186
  </DocumentFragment>
187
187
  `;
188
188
 
189
- exports[`menu toggle shows isDisabled 1`] = `
189
+ exports[`Old Snapshot tests - remove when refactoring shows isDisabled 1`] = `
190
190
  <DocumentFragment>
191
191
  <button
192
192
  aria-expanded="false"
@@ -227,7 +227,7 @@ exports[`menu toggle shows isDisabled 1`] = `
227
227
  </DocumentFragment>
228
228
  `;
229
229
 
230
- exports[`menu toggle shows isExpanded 1`] = `
230
+ exports[`Old Snapshot tests - remove when refactoring shows isExpanded 1`] = `
231
231
  <DocumentFragment>
232
232
  <button
233
233
  aria-expanded="true"
@@ -267,7 +267,7 @@ exports[`menu toggle shows isExpanded 1`] = `
267
267
  </DocumentFragment>
268
268
  `;
269
269
 
270
- exports[`menu toggle shows isPlain 1`] = `
270
+ exports[`Old Snapshot tests - remove when refactoring shows isPlain 1`] = `
271
271
  <DocumentFragment>
272
272
  <button
273
273
  aria-expanded="false"
@@ -298,7 +298,7 @@ exports[`menu toggle shows isPlain 1`] = `
298
298
  </DocumentFragment>
299
299
  `;
300
300
 
301
- exports[`menu toggle shows isPrimary 1`] = `
301
+ exports[`Old Snapshot tests - remove when refactoring shows isPrimary 1`] = `
302
302
  <DocumentFragment>
303
303
  <button
304
304
  aria-expanded="false"
@@ -338,7 +338,7 @@ exports[`menu toggle shows isPrimary 1`] = `
338
338
  </DocumentFragment>
339
339
  `;
340
340
 
341
- exports[`menu toggle shows plain text 1`] = `
341
+ exports[`Old Snapshot tests - remove when refactoring shows plain text 1`] = `
342
342
  <DocumentFragment>
343
343
  <button
344
344
  aria-expanded="false"