@patternfly/react-core 6.3.0-prerelease.9 → 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 (500) hide show
  1. package/CHANGELOG.md +147 -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/Page/PageToggleButton.d.ts +4 -0
  175. package/dist/esm/components/Page/PageToggleButton.d.ts.map +1 -1
  176. package/dist/esm/components/Page/PageToggleButton.js +2 -2
  177. package/dist/esm/components/Page/PageToggleButton.js.map +1 -1
  178. package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
  179. package/dist/esm/components/Popover/Popover.js +11 -1
  180. package/dist/esm/components/Popover/Popover.js.map +1 -1
  181. package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  182. package/dist/esm/components/SearchInput/AdvancedSearchMenu.js +13 -19
  183. package/dist/esm/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  184. package/dist/esm/components/SearchInput/SearchInput.d.ts +4 -0
  185. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  186. package/dist/esm/components/SearchInput/SearchInput.js +37 -13
  187. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  188. package/dist/esm/components/Tabs/OverflowTab.d.ts +26 -0
  189. package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
  190. package/dist/esm/components/Tabs/OverflowTab.js +2 -2
  191. package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
  192. package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
  193. package/dist/esm/components/Tabs/Tab.js +5 -2
  194. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  195. package/dist/esm/components/Tabs/Tabs.d.ts +10 -0
  196. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  197. package/dist/esm/components/Tabs/Tabs.js +46 -12
  198. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  199. package/dist/esm/components/Tabs/TabsContext.d.ts +1 -0
  200. package/dist/esm/components/Tabs/TabsContext.d.ts.map +1 -1
  201. package/dist/esm/components/Tabs/TabsContext.js +1 -0
  202. package/dist/esm/components/Tabs/TabsContext.js.map +1 -1
  203. package/dist/esm/components/TreeView/TreeView.d.ts +5 -0
  204. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  205. package/dist/esm/components/TreeView/TreeView.js +5 -5
  206. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  207. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +5 -0
  208. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  209. package/dist/esm/components/TreeView/TreeViewListItem.js +8 -4
  210. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  211. package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  212. package/dist/esm/components/TreeView/TreeViewRoot.js +2 -2
  213. package/dist/esm/components/TreeView/TreeViewRoot.js.map +1 -1
  214. package/dist/esm/components/Truncate/Truncate.d.ts +11 -8
  215. package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
  216. package/dist/esm/components/Truncate/Truncate.js +16 -9
  217. package/dist/esm/components/Truncate/Truncate.js.map +1 -1
  218. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -1
  219. package/dist/esm/demos/DashboardHeader.js +1 -2
  220. package/dist/esm/demos/DashboardHeader.js.map +1 -1
  221. package/dist/esm/demos/sampleData.d.ts.map +1 -1
  222. package/dist/esm/demos/sampleData.js +225 -226
  223. package/dist/esm/demos/sampleData.js.map +1 -1
  224. package/dist/esm/demos/sampleDataRTL.d.ts +7 -0
  225. package/dist/esm/demos/sampleDataRTL.d.ts.map +1 -0
  226. package/dist/esm/demos/sampleDataRTL.js +128 -0
  227. package/dist/esm/demos/sampleDataRTL.js.map +1 -0
  228. package/dist/esm/helpers/KeyboardHandler.js +3 -2
  229. package/dist/esm/helpers/KeyboardHandler.js.map +1 -1
  230. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  231. package/dist/esm/helpers/Popper/Popper.js +1 -0
  232. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  233. package/dist/esm/helpers/util.d.ts +17 -0
  234. package/dist/esm/helpers/util.d.ts.map +1 -1
  235. package/dist/esm/helpers/util.js +36 -0
  236. package/dist/esm/helpers/util.js.map +1 -1
  237. package/dist/js/components/Alert/AlertGroupInline.d.ts.map +1 -1
  238. package/dist/js/components/Alert/AlertGroupInline.js +6 -0
  239. package/dist/js/components/Alert/AlertGroupInline.js.map +1 -1
  240. package/dist/js/components/Button/Button.d.ts +12 -0
  241. package/dist/js/components/Button/Button.d.ts.map +1 -1
  242. package/dist/js/components/Button/Button.js +33 -3
  243. package/dist/js/components/Button/Button.js.map +1 -1
  244. package/dist/js/components/Button/hamburgerIcon.d.ts +2 -0
  245. package/dist/js/components/Button/hamburgerIcon.d.ts.map +1 -0
  246. package/dist/js/components/Button/hamburgerIcon.js +11 -0
  247. package/dist/js/components/Button/hamburgerIcon.js.map +1 -0
  248. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  249. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +2 -2
  250. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  251. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  252. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  253. package/dist/js/components/DualListSelector/DualListSelector.d.ts +5 -0
  254. package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  255. package/dist/js/components/DualListSelector/DualListSelector.js +4 -3
  256. package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
  257. package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
  258. package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
  259. package/dist/js/components/DualListSelector/DualListSelectorContext.js +1 -1
  260. package/dist/js/components/DualListSelector/DualListSelectorContext.js.map +1 -1
  261. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
  262. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js +1 -1
  263. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
  264. package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
  265. package/dist/js/components/DualListSelector/DualListSelectorTree.js +4 -1
  266. package/dist/js/components/DualListSelector/DualListSelectorTree.js.map +1 -1
  267. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts +5 -0
  268. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
  269. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js +7 -3
  270. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
  271. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +5 -1
  272. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  273. package/dist/js/components/ExpandableSection/ExpandableSection.js +6 -2
  274. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  275. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +2 -0
  276. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  277. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +4 -3
  278. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  279. package/dist/js/components/Form/FormFieldGroupExpandable.d.ts +5 -0
  280. package/dist/js/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
  281. package/dist/js/components/Form/FormFieldGroupExpandable.js +2 -2
  282. package/dist/js/components/Form/FormFieldGroupExpandable.js.map +1 -1
  283. package/dist/js/components/Form/InternalFormFieldGroup.d.ts +5 -0
  284. package/dist/js/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
  285. package/dist/js/components/Form/InternalFormFieldGroup.js +2 -2
  286. package/dist/js/components/Form/InternalFormFieldGroup.js.map +1 -1
  287. package/dist/js/components/Label/Label.js +57 -57
  288. package/dist/js/components/Label/Label.js.map +1 -1
  289. package/dist/js/components/Menu/Menu.js +3 -3
  290. package/dist/js/components/Menu/Menu.js.map +1 -1
  291. package/dist/js/components/MenuToggle/MenuToggle.d.ts +2 -0
  292. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  293. package/dist/js/components/MenuToggle/MenuToggle.js +4 -3
  294. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  295. package/dist/js/components/Page/PageToggleButton.d.ts +4 -0
  296. package/dist/js/components/Page/PageToggleButton.d.ts.map +1 -1
  297. package/dist/js/components/Page/PageToggleButton.js +2 -2
  298. package/dist/js/components/Page/PageToggleButton.js.map +1 -1
  299. package/dist/js/components/Popover/Popover.d.ts.map +1 -1
  300. package/dist/js/components/Popover/Popover.js +11 -1
  301. package/dist/js/components/Popover/Popover.js.map +1 -1
  302. package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  303. package/dist/js/components/SearchInput/AdvancedSearchMenu.js +12 -18
  304. package/dist/js/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  305. package/dist/js/components/SearchInput/SearchInput.d.ts +4 -0
  306. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  307. package/dist/js/components/SearchInput/SearchInput.js +36 -12
  308. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  309. package/dist/js/components/Tabs/OverflowTab.d.ts +26 -0
  310. package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
  311. package/dist/js/components/Tabs/OverflowTab.js +2 -2
  312. package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
  313. package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
  314. package/dist/js/components/Tabs/Tab.js +4 -1
  315. package/dist/js/components/Tabs/Tab.js.map +1 -1
  316. package/dist/js/components/Tabs/Tabs.d.ts +10 -0
  317. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  318. package/dist/js/components/Tabs/Tabs.js +45 -11
  319. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  320. package/dist/js/components/Tabs/TabsContext.d.ts +1 -0
  321. package/dist/js/components/Tabs/TabsContext.d.ts.map +1 -1
  322. package/dist/js/components/Tabs/TabsContext.js +1 -0
  323. package/dist/js/components/Tabs/TabsContext.js.map +1 -1
  324. package/dist/js/components/TreeView/TreeView.d.ts +5 -0
  325. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  326. package/dist/js/components/TreeView/TreeView.js +5 -5
  327. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  328. package/dist/js/components/TreeView/TreeViewListItem.d.ts +5 -0
  329. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  330. package/dist/js/components/TreeView/TreeViewListItem.js +7 -3
  331. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  332. package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  333. package/dist/js/components/TreeView/TreeViewRoot.js +2 -2
  334. package/dist/js/components/TreeView/TreeViewRoot.js.map +1 -1
  335. package/dist/js/components/Truncate/Truncate.d.ts +11 -8
  336. package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
  337. package/dist/js/components/Truncate/Truncate.js +15 -9
  338. package/dist/js/components/Truncate/Truncate.js.map +1 -1
  339. package/dist/js/demos/DashboardHeader.d.ts.map +1 -1
  340. package/dist/js/demos/DashboardHeader.js +1 -2
  341. package/dist/js/demos/DashboardHeader.js.map +1 -1
  342. package/dist/js/demos/sampleData.d.ts.map +1 -1
  343. package/dist/js/demos/sampleData.js +225 -226
  344. package/dist/js/demos/sampleData.js.map +1 -1
  345. package/dist/js/demos/sampleDataRTL.d.ts +7 -0
  346. package/dist/js/demos/sampleDataRTL.d.ts.map +1 -0
  347. package/dist/js/demos/sampleDataRTL.js +131 -0
  348. package/dist/js/demos/sampleDataRTL.js.map +1 -0
  349. package/dist/js/helpers/KeyboardHandler.js +3 -2
  350. package/dist/js/helpers/KeyboardHandler.js.map +1 -1
  351. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  352. package/dist/js/helpers/Popper/Popper.js +1 -0
  353. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  354. package/dist/js/helpers/util.d.ts +17 -0
  355. package/dist/js/helpers/util.d.ts.map +1 -1
  356. package/dist/js/helpers/util.js +39 -1
  357. package/dist/js/helpers/util.js.map +1 -1
  358. package/dist/styles/assets/images/icon-help.hbs +3 -0
  359. package/dist/styles/assets/images/icon-outlined-star.hbs +3 -0
  360. package/dist/styles/assets/images/icon-star.hbs +3 -0
  361. package/dist/styles/base-no-reset.css +52 -11
  362. package/dist/styles/base.css +52 -11
  363. package/dist/umd/assets/{output-iWrWEXUG.css → output-BvTy70LD.css} +16824 -16082
  364. package/dist/umd/react-core.min.js +3 -3
  365. package/helpers/package.json +1 -1
  366. package/layouts/package.json +1 -1
  367. package/next/package.json +1 -1
  368. package/package.json +6 -6
  369. package/src/components/Alert/AlertGroupInline.tsx +13 -2
  370. package/src/components/Button/Button.tsx +78 -5
  371. package/src/components/Button/__tests__/Button.test.tsx +380 -74
  372. package/src/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +1 -1
  373. package/src/components/Button/examples/Button.md +57 -14
  374. package/src/components/Button/examples/ButtonFavorite.tsx +18 -0
  375. package/src/components/Button/examples/ButtonHamburger.tsx +9 -0
  376. package/src/components/Button/examples/ButtonSettings.tsx +10 -0
  377. package/src/components/Button/hamburgerIcon.tsx +13 -0
  378. package/src/components/Card/examples/Card.md +1 -1
  379. package/src/components/Card/examples/CardSelectable.tsx +73 -60
  380. package/src/components/Card/examples/CardSingleSelectable.tsx +65 -48
  381. package/src/components/ClipboardCopy/ClipboardCopy.tsx +2 -1
  382. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +1 -1
  383. package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +7 -1
  384. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +0 -1
  385. package/src/components/DualListSelector/DualListSelector.tsx +18 -4
  386. package/src/components/DualListSelector/DualListSelectorContext.ts +2 -1
  387. package/src/components/DualListSelector/DualListSelectorListWrapper.tsx +8 -5
  388. package/src/components/DualListSelector/DualListSelectorTree.tsx +4 -0
  389. package/src/components/DualListSelector/DualListSelectorTreeItem.tsx +17 -2
  390. package/src/components/DualListSelector/__tests__/DualListSelector.test.tsx +32 -1
  391. package/src/components/DualListSelector/__tests__/DualListSelectorTreeItem.test.tsx +55 -0
  392. package/src/components/DualListSelector/examples/DualListSelectorTree.tsx +1 -1
  393. package/src/components/ExpandableSection/ExpandableSection.tsx +13 -1
  394. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +5 -1
  395. package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +85 -23
  396. package/src/components/ExpandableSection/__tests__/ExpandableSectionToggle.test.tsx +32 -0
  397. package/src/components/ExpandableSection/__tests__/__snapshots__/ExpandableSection.test.tsx.snap +1 -63
  398. package/src/components/ExpandableSection/examples/ExpandableSection.md +2 -0
  399. package/src/components/ExpandableSection/examples/ExpandableSectionDetached.tsx +1 -1
  400. package/src/components/Form/FormFieldGroupExpandable.tsx +7 -0
  401. package/src/components/Form/InternalFormFieldGroup.tsx +19 -3
  402. package/src/components/Form/__tests__/FormFieldGroupExpandable.test.tsx +55 -0
  403. package/src/components/Form/examples/FormFieldGroups.tsx +7 -1
  404. package/src/components/Label/Label.tsx +63 -63
  405. package/src/components/Masthead/examples/MastheadBasic.tsx +1 -2
  406. package/src/components/Masthead/examples/MastheadBasicMixedContent.tsx +1 -2
  407. package/src/components/Masthead/examples/MastheadDisplayInline.tsx +1 -2
  408. package/src/components/Masthead/examples/MastheadDisplayStack.tsx +1 -2
  409. package/src/components/Masthead/examples/MastheadDisplayStackInlineResponsive.tsx +1 -2
  410. package/src/components/Masthead/examples/MastheadInsets.tsx +1 -2
  411. package/src/components/Masthead/examples/MastheadLogoCustomComponent.tsx +1 -2
  412. package/src/components/Menu/Menu.tsx +3 -3
  413. package/src/components/MenuToggle/MenuToggle.tsx +6 -1
  414. package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +59 -45
  415. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +9 -9
  416. package/src/components/MenuToggle/examples/MenuToggle.md +14 -30
  417. package/src/components/MenuToggle/examples/MenuToggleCustomIcon.tsx +17 -0
  418. package/src/components/MenuToggle/examples/MenuToggleSettings.tsx +8 -0
  419. package/src/components/Page/PageToggleButton.tsx +9 -2
  420. package/src/components/Page/examples/Page.md +1 -1
  421. package/src/components/Page/examples/PageCenteredSection.tsx +4 -8
  422. package/src/components/Page/examples/PageGroupSection.tsx +2 -5
  423. package/src/components/Page/examples/PageMainSectionPadding.tsx +2 -5
  424. package/src/components/Page/examples/PageMainSectionVariations.tsx +2 -5
  425. package/src/components/Page/examples/PageMultipleSidebarBody.tsx +2 -5
  426. package/src/components/Page/examples/PageUncontrolledNav.tsx +1 -4
  427. package/src/components/Page/examples/PageVerticalNav.tsx +2 -5
  428. package/src/components/Page/examples/PageWithOrWithoutFill.tsx +2 -5
  429. package/src/components/Popover/Popover.tsx +13 -1
  430. package/src/components/SearchInput/AdvancedSearchMenu.tsx +15 -23
  431. package/src/components/SearchInput/SearchInput.tsx +111 -15
  432. package/src/components/SearchInput/__tests__/SearchInput.test.tsx +84 -0
  433. package/src/components/SearchInput/examples/SearchInput.md +11 -2
  434. package/src/components/SearchInput/examples/SearchInputWithExpandable.tsx +6 -1
  435. package/src/components/Skeleton/examples/SkeletonText.tsx +0 -1
  436. package/src/components/Tabs/OverflowTab.tsx +29 -0
  437. package/src/components/Tabs/Tab.tsx +6 -2
  438. package/src/components/Tabs/Tabs.tsx +76 -11
  439. package/src/components/Tabs/TabsContext.ts +2 -0
  440. package/src/components/Tabs/__tests__/Tabs.test.tsx +65 -1
  441. package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +39 -26
  442. package/src/components/Tabs/examples/Tabs.md +1 -1
  443. package/src/components/Timestamp/examples/TimestampBasicFormats.tsx +1 -1
  444. package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
  445. package/src/components/TreeView/TreeView.tsx +9 -0
  446. package/src/components/TreeView/TreeViewListItem.tsx +18 -5
  447. package/src/components/TreeView/TreeViewRoot.tsx +4 -2
  448. package/src/components/TreeView/__tests__/TreeView.test.tsx +8 -1
  449. package/src/components/TreeView/__tests__/TreeViewList.test.tsx +39 -0
  450. package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +17 -3
  451. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +3 -0
  452. package/src/components/TreeView/examples/TreeViewCompact.tsx +1 -1
  453. package/src/components/TreeView/examples/TreeViewCompactNoBackground.tsx +8 -1
  454. package/src/components/TreeView/examples/TreeViewGuides.tsx +1 -1
  455. package/src/components/TreeView/examples/TreeViewMultiselectable.tsx +1 -0
  456. package/src/components/TreeView/examples/TreeViewSelectionExpansion.tsx +1 -0
  457. package/src/components/TreeView/examples/TreeViewSingleSelectable.tsx +1 -0
  458. package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +1 -0
  459. package/src/components/TreeView/examples/TreeViewWithBadges.tsx +1 -0
  460. package/src/components/TreeView/examples/TreeViewWithCheckboxes.tsx +9 -1
  461. package/src/components/TreeView/examples/TreeViewWithCustomBadges.tsx +1 -0
  462. package/src/components/TreeView/examples/TreeViewWithIconPerItem.tsx +1 -0
  463. package/src/components/TreeView/examples/TreeViewWithIcons.tsx +1 -0
  464. package/src/components/TreeView/examples/TreeViewWithMemoization.tsx +1 -0
  465. package/src/components/TreeView/examples/TreeViewWithSearch.tsx +1 -0
  466. package/src/components/Truncate/Truncate.tsx +40 -19
  467. package/src/components/Truncate/__tests__/Truncate.test.tsx +24 -0
  468. package/src/components/Truncate/examples/Truncate.md +8 -0
  469. package/src/components/Truncate/examples/TruncateLinks.tsx +22 -0
  470. package/src/demos/CardDemos.md +1 -1
  471. package/src/demos/DashboardHeader.tsx +2 -5
  472. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +2 -5
  473. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +2 -5
  474. package/src/demos/RTL/RTL.md +1 -0
  475. package/src/demos/RTL/examples/PaginatedTable.tsx +18 -53
  476. package/src/demos/examples/Card/CardAggregateStatus.tsx +2 -6
  477. package/src/demos/examples/Card/CardDetails.tsx +2 -3
  478. package/src/demos/examples/Card/CardEventsView.tsx +2 -3
  479. package/src/demos/examples/Card/CardLogView.tsx +2 -3
  480. package/src/demos/examples/Card/CardStatus.tsx +0 -1
  481. package/src/demos/examples/Card/CardUtilizationDemo3.tsx +0 -1
  482. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +1 -1
  483. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +2 -5
  484. package/src/demos/examples/Nav/NavFlyout.tsx +3 -6
  485. package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
  486. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +2 -5
  487. package/src/demos/examples/Nav/NavManual.tsx +3 -6
  488. package/src/demos/examples/Page/PageContextSelector.tsx +3 -6
  489. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +2 -5
  490. package/src/demos/examples/Page/PageStickySectionGroup.tsx +2 -5
  491. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +2 -5
  492. package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +2 -3
  493. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +1 -4
  494. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +1 -4
  495. package/src/demos/sampleData.tsx +225 -227
  496. package/src/demos/sampleDataRTL.tsx +133 -0
  497. package/src/helpers/KeyboardHandler.tsx +2 -2
  498. package/src/helpers/Popper/Popper.tsx +1 -0
  499. package/src/helpers/util.ts +45 -0
  500. package/src/demos/RTL/examples/PaginatedTable.jsx +0 -504
@@ -5,20 +5,27 @@ import { PickOptional } from '../../helpers/typeUtils';
5
5
  import AngleLeftIcon from '@patternfly/react-icons/dist/esm/icons/angle-left-icon';
6
6
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
7
7
  import PlusIcon from '@patternfly/react-icons/dist/esm/icons/plus-icon';
8
- import { getUniqueId, isElementInView, formatBreakpointMods, getLanguageDirection } from '../../helpers/util';
8
+ import {
9
+ getUniqueId,
10
+ isElementInView,
11
+ formatBreakpointMods,
12
+ getLanguageDirection,
13
+ getInlineStartProperty
14
+ } from '../../helpers/util';
9
15
  import { TabContent } from './TabContent';
10
16
  import { TabProps } from './Tab';
11
17
  import { TabsContextProvider } from './TabsContext';
12
- import { OverflowTab } from './OverflowTab';
18
+ import { OverflowTab, HorizontalOverflowPopperProps } from './OverflowTab';
13
19
  import { Button } from '../Button';
14
20
  import { getOUIAProps, OUIAProps, getDefaultOUIAId, canUseDOM } from '../../helpers';
15
21
  import { GenerateId } from '../../helpers/GenerateId/GenerateId';
22
+ import linkAccentLength from '@patternfly/react-tokens/dist/esm/c_tabs_link_accent_length';
23
+ import linkAccentStart from '@patternfly/react-tokens/dist/esm/c_tabs_link_accent_start';
16
24
 
17
25
  export enum TabsComponent {
18
26
  div = 'div',
19
27
  nav = 'nav'
20
28
  }
21
-
22
29
  export interface HorizontalOverflowObject {
23
30
  /** Flag which shows the count of overflowing tabs when enabled */
24
31
  showTabCount?: boolean;
@@ -26,6 +33,8 @@ export interface HorizontalOverflowObject {
26
33
  defaultTitleText?: string;
27
34
  /** The aria label applied to the button which toggles the tab overflow menu */
28
35
  toggleAriaLabel?: string;
36
+ /** Additional props to spread to the popper menu. */
37
+ popperProps?: HorizontalOverflowPopperProps;
29
38
  }
30
39
 
31
40
  type TabElement = React.ReactElement<TabProps, React.JSXElementConstructor<TabProps>>;
@@ -54,6 +63,8 @@ export interface TabsProps
54
63
  addButtonAriaLabel?: string;
55
64
  /** Uniquely identifies the tabs */
56
65
  id?: string;
66
+ /** Flag indicating that the add button is disabled when onAdd is passed in */
67
+ isAddButtonDisabled?: boolean;
57
68
  /** Enables the filled tab list layout */
58
69
  isFilled?: boolean;
59
70
  /** Enables subtab tab styling */
@@ -139,6 +150,9 @@ interface TabsState {
139
150
  uncontrolledIsExpandedLocal: boolean;
140
151
  ouiaStateId: string;
141
152
  overflowingTabCount: number;
153
+ isInitializingAccent: boolean;
154
+ currentLinkAccentLength: string;
155
+ currentLinkAccentStart: string;
142
156
  }
143
157
 
144
158
  class Tabs extends Component<TabsProps, TabsState> {
@@ -158,7 +172,10 @@ class Tabs extends Component<TabsProps, TabsState> {
158
172
  uncontrolledActiveKey: this.props.defaultActiveKey,
159
173
  uncontrolledIsExpandedLocal: this.props.defaultIsExpanded,
160
174
  ouiaStateId: getDefaultOUIAId(Tabs.displayName),
161
- overflowingTabCount: 0
175
+ overflowingTabCount: 0,
176
+ isInitializingAccent: true,
177
+ currentLinkAccentLength: linkAccentLength.value,
178
+ currentLinkAccentStart: linkAccentStart.value
162
179
  };
163
180
 
164
181
  if (this.props.isVertical && this.props.expandable !== undefined) {
@@ -328,21 +345,49 @@ class Tabs extends Component<TabsProps, TabsState> {
328
345
  }
329
346
  };
330
347
 
348
+ setAccentStyles = (shouldInitializeStyle?: boolean) => {
349
+ const currentItem = this.tabList.current.querySelector('li.pf-m-current') as HTMLElement;
350
+ if (!currentItem) {
351
+ return;
352
+ }
353
+
354
+ const { isVertical } = this.props;
355
+ const { offsetWidth, offsetHeight, offsetTop } = currentItem;
356
+ const lengthValue = isVertical ? offsetHeight : offsetWidth;
357
+ const startValue = isVertical ? offsetTop : getInlineStartProperty(currentItem, this.tabList.current);
358
+ this.setState({
359
+ currentLinkAccentLength: `${lengthValue}px`,
360
+ currentLinkAccentStart: `${startValue}px`,
361
+ ...(shouldInitializeStyle && { isInitializingAccent: true })
362
+ });
363
+
364
+ setTimeout(() => {
365
+ this.setState({ isInitializingAccent: false });
366
+ }, 0);
367
+ };
368
+
369
+ handleResize = () => {
370
+ this.handleScrollButtons();
371
+ this.setAccentStyles();
372
+ };
373
+
331
374
  componentDidMount() {
332
375
  if (!this.props.isVertical) {
333
376
  if (canUseDOM) {
334
- window.addEventListener('resize', this.handleScrollButtons, false);
377
+ window.addEventListener('resize', this.handleResize, false);
335
378
  }
336
379
  this.direction = getLanguageDirection(this.tabList.current);
337
380
  // call the handle resize function to check if scroll buttons should be shown
338
381
  this.handleScrollButtons();
339
382
  }
383
+
384
+ this.setAccentStyles(true);
340
385
  }
341
386
 
342
387
  componentWillUnmount() {
343
388
  if (!this.props.isVertical) {
344
389
  if (canUseDOM) {
345
- window.removeEventListener('resize', this.handleScrollButtons, false);
390
+ window.removeEventListener('resize', this.handleResize, false);
346
391
  }
347
392
  }
348
393
  clearTimeout(this.scrollTimeout);
@@ -350,8 +395,18 @@ class Tabs extends Component<TabsProps, TabsState> {
350
395
  }
351
396
 
352
397
  componentDidUpdate(prevProps: TabsProps, prevState: TabsState) {
353
- const { activeKey, mountOnEnter, isOverflowHorizontal, children } = this.props;
354
- const { shownKeys, overflowingTabCount, enableScrollButtons } = this.state;
398
+ this.direction = getLanguageDirection(this.tabList.current);
399
+ const { activeKey, mountOnEnter, isOverflowHorizontal, children, defaultActiveKey } = this.props;
400
+ const { shownKeys, overflowingTabCount, enableScrollButtons, uncontrolledActiveKey } = this.state;
401
+ const isOnCloseUpdate = !!prevProps.onClose !== !!this.props.onClose;
402
+ if (
403
+ (defaultActiveKey !== undefined && prevState.uncontrolledActiveKey !== uncontrolledActiveKey) ||
404
+ (defaultActiveKey === undefined && prevProps.activeKey !== activeKey) ||
405
+ isOnCloseUpdate
406
+ ) {
407
+ this.setAccentStyles(isOnCloseUpdate);
408
+ }
409
+
355
410
  if (prevProps.activeKey !== activeKey && mountOnEnter && shownKeys.indexOf(activeKey) < 0) {
356
411
  this.setState({
357
412
  shownKeys: shownKeys.concat(activeKey)
@@ -364,6 +419,7 @@ class Tabs extends Component<TabsProps, TabsState> {
364
419
  Children.toArray(prevProps.children).length !== Children.toArray(children).length
365
420
  ) {
366
421
  this.handleScrollButtons();
422
+ this.setAccentStyles(true);
367
423
  }
368
424
 
369
425
  const currentOverflowingTabCount = this.countOverflowingElements(this.tabList.current);
@@ -374,14 +430,14 @@ class Tabs extends Component<TabsProps, TabsState> {
374
430
  if (!prevState.enableScrollButtons && enableScrollButtons) {
375
431
  this.setState({ renderScrollButtons: true });
376
432
  setTimeout(() => {
433
+ // Remove any existing listener before adding a new one to prevent accumulation
434
+ this.leftScrollButtonRef.current?.removeEventListener('transitionend', this.hideScrollButtons);
377
435
  this.leftScrollButtonRef.current?.addEventListener('transitionend', this.hideScrollButtons);
378
436
  this.setState({ showScrollButtons: true });
379
437
  }, 100);
380
438
  } else if (prevState.enableScrollButtons && !enableScrollButtons) {
381
439
  this.setState({ showScrollButtons: false });
382
440
  }
383
-
384
- this.direction = getLanguageDirection(this.tabList.current);
385
441
  }
386
442
 
387
443
  static getDerivedStateFromProps(nextProps: TabsProps, prevState: TabsState) {
@@ -412,6 +468,7 @@ class Tabs extends Component<TabsProps, TabsState> {
412
468
  activeKey,
413
469
  defaultActiveKey,
414
470
  id,
471
+ isAddButtonDisabled,
415
472
  isFilled,
416
473
  isSubtab,
417
474
  isVertical,
@@ -450,7 +507,10 @@ class Tabs extends Component<TabsProps, TabsState> {
450
507
  shownKeys,
451
508
  uncontrolledActiveKey,
452
509
  uncontrolledIsExpandedLocal,
453
- overflowingTabCount
510
+ overflowingTabCount,
511
+ isInitializingAccent,
512
+ currentLinkAccentLength,
513
+ currentLinkAccentStart
454
514
  } = this.state;
455
515
  const filteredChildren = Children.toArray(children)
456
516
  .filter((child): child is TabElement => isValidElement(child))
@@ -485,6 +545,7 @@ class Tabs extends Component<TabsProps, TabsState> {
485
545
  unmountOnExit,
486
546
  localActiveKey,
487
547
  uniqueId,
548
+ setAccentStyles: this.setAccentStyles,
488
549
  handleTabClick: (...args) => this.handleTabClick(...args),
489
550
  handleTabClose: onClose
490
551
  }}
@@ -493,6 +554,7 @@ class Tabs extends Component<TabsProps, TabsState> {
493
554
  aria-label={ariaLabel}
494
555
  className={css(
495
556
  styles.tabs,
557
+ styles.modifiers.animateCurrent,
496
558
  isFilled && styles.modifiers.fill,
497
559
  isSubtab && styles.modifiers.subtab,
498
560
  isVertical && styles.modifiers.vertical,
@@ -505,10 +567,12 @@ class Tabs extends Component<TabsProps, TabsState> {
505
567
  formatBreakpointMods(inset, styles),
506
568
  variantStyle[variant],
507
569
  hasOverflowTab && styles.modifiers.overflow,
570
+ isInitializingAccent && styles.modifiers.initializingAccent,
508
571
  className
509
572
  )}
510
573
  {...getOUIAProps(Tabs.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe)}
511
574
  id={id && id}
575
+ style={{ [linkAccentLength.name]: currentLinkAccentLength, [linkAccentStart.name]: currentLinkAccentStart }}
512
576
  {...props}
513
577
  >
514
578
  {expandable && isVertical && (
@@ -572,6 +636,7 @@ class Tabs extends Component<TabsProps, TabsState> {
572
636
  aria-label={addButtonAriaLabel || 'Add tab'}
573
637
  onClick={onAdd}
574
638
  icon={<PlusIcon />}
639
+ isDisabled={isAddButtonDisabled}
575
640
  />
576
641
  </span>
577
642
  )}
@@ -6,6 +6,7 @@ export interface TabsContextProps {
6
6
  unmountOnExit: boolean;
7
7
  localActiveKey: string | number;
8
8
  uniqueId: string;
9
+ setAccentStyles?: (shouldInitializeStyles?: boolean) => void;
9
10
  handleTabClick: (
10
11
  event: React.MouseEvent<HTMLElement, MouseEvent>,
11
12
  eventKey: number | string,
@@ -24,6 +25,7 @@ export const TabsContext = createContext<TabsContextProps>({
24
25
  unmountOnExit: false,
25
26
  localActiveKey: '',
26
27
  uniqueId: '',
28
+ setAccentStyles: () => null,
27
29
  handleTabClick: () => null,
28
30
  handleTabClose: undefined
29
31
  });
@@ -1,5 +1,6 @@
1
- import { render, screen } from '@testing-library/react';
1
+ import { render, screen, act } from '@testing-library/react';
2
2
  import { Tabs } from '../Tabs';
3
+ import styles from '@patternfly/react-styles/css/components/Tabs/tabs';
3
4
  import { Tab } from '../Tab';
4
5
  import { TabTitleText } from '../TabTitleText';
5
6
  import { TabTitleIcon } from '../TabTitleIcon';
@@ -8,6 +9,47 @@ import { TabContentBody } from '../TabContentBody';
8
9
 
9
10
  jest.mock('../../../helpers/GenerateId/GenerateId');
10
11
 
12
+ test(`Renders with classes ${styles.tabs} and ${styles.modifiers.animateCurrent} by default`, () => {
13
+ render(
14
+ <Tabs role="region">
15
+ <Tab title="Test title" eventKey={0}>
16
+ Tab Content
17
+ </Tab>
18
+ </Tabs>
19
+ );
20
+
21
+ expect(screen.getByRole('region')).toHaveClass(`${styles.tabs} ${styles.modifiers.animateCurrent}`);
22
+ });
23
+
24
+ test(`Renders with class ${styles.modifiers.initializingAccent} when component initially mounts`, () => {
25
+ render(
26
+ <Tabs role="region">
27
+ <Tab title="Test title" eventKey={0}>
28
+ Tab Content
29
+ </Tab>
30
+ </Tabs>
31
+ );
32
+
33
+ expect(screen.getByRole('region')).toHaveClass(styles.modifiers.initializingAccent);
34
+ });
35
+
36
+ test(`Does not render with class ${styles.modifiers.initializingAccent} when component is finished mounting`, () => {
37
+ jest.useFakeTimers();
38
+ render(
39
+ <Tabs role="region">
40
+ <Tab title="Test title" eventKey={0}>
41
+ Tab Content
42
+ </Tab>
43
+ </Tabs>
44
+ );
45
+
46
+ act(() => {
47
+ jest.advanceTimersByTime(500);
48
+ });
49
+ expect(screen.getByRole('region')).not.toHaveClass(styles.modifiers.initializingAccent);
50
+ jest.useRealTimers();
51
+ });
52
+
11
53
  test('should render simple tabs', () => {
12
54
  const { asFragment } = render(
13
55
  <Tabs id="simpleTabs">
@@ -450,3 +492,25 @@ test('should not render scroll buttons when isVertical is true', () => {
450
492
  expect(screen.queryByLabelText('Scroll left')).not.toBeInTheDocument();
451
493
  expect(screen.queryByLabelText('Scroll right')).not.toBeInTheDocument();
452
494
  });
495
+
496
+ test('should render a disabled add button', () => {
497
+ render(
498
+ <Tabs onAdd={jest.fn()} addButtonAriaLabel="add-label" isAddButtonDisabled={true}>
499
+ <div>Tab content</div>
500
+ </Tabs>
501
+ );
502
+
503
+ const addButton = screen.getByLabelText('add-label');
504
+ expect(addButton).toBeDisabled();
505
+ });
506
+
507
+ test('should render an enabled add button', () => {
508
+ render(
509
+ <Tabs onAdd={jest.fn()} addButtonAriaLabel="add-label" isAddButtonDisabled={false}>
510
+ <div>Tab content</div>
511
+ </Tabs>
512
+ );
513
+
514
+ const addButton = screen.getByLabelText('add-label');
515
+ expect(addButton).not.toBeDisabled();
516
+ });
@@ -4,11 +4,12 @@ exports[`should render accessible tabs 1`] = `
4
4
  <DocumentFragment>
5
5
  <nav
6
6
  aria-label="accessible Tabs example"
7
- class="pf-v6-c-tabs"
8
- data-ouia-component-id="OUIA-Generated-Tabs-9"
7
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
8
+ data-ouia-component-id="OUIA-Generated-Tabs-12"
9
9
  data-ouia-component-type="PF6/Tabs"
10
10
  data-ouia-safe="true"
11
11
  id="accessibleTabs"
12
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
12
13
  >
13
14
  <ul
14
15
  class="pf-v6-c-tabs__list"
@@ -120,11 +121,12 @@ exports[`should render accessible tabs 1`] = `
120
121
  exports[`should render box tabs 1`] = `
121
122
  <DocumentFragment>
122
123
  <div
123
- class="pf-v6-c-tabs pf-m-box"
124
- data-ouia-component-id="OUIA-Generated-Tabs-8"
124
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-box pf-m-initializing-accent"
125
+ data-ouia-component-id="OUIA-Generated-Tabs-11"
125
126
  data-ouia-component-type="PF6/Tabs"
126
127
  data-ouia-safe="true"
127
128
  id="boxTabs"
129
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
128
130
  >
129
131
  <ul
130
132
  class="pf-v6-c-tabs__list"
@@ -278,11 +280,12 @@ exports[`should render box tabs 1`] = `
278
280
  exports[`should render box tabs of secondary variant 1`] = `
279
281
  <DocumentFragment>
280
282
  <div
281
- class="pf-v6-c-tabs pf-m-box pf-m-secondary"
282
- data-ouia-component-id="OUIA-Generated-Tabs-15"
283
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-box pf-m-secondary pf-m-initializing-accent"
284
+ data-ouia-component-id="OUIA-Generated-Tabs-18"
283
285
  data-ouia-component-type="PF6/Tabs"
284
286
  data-ouia-safe="true"
285
287
  id="boxSecondaryVariantTabs"
288
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
286
289
  >
287
290
  <ul
288
291
  class="pf-v6-c-tabs__list"
@@ -394,11 +397,12 @@ exports[`should render box tabs of secondary variant 1`] = `
394
397
  exports[`should render expandable vertical tabs 1`] = `
395
398
  <DocumentFragment>
396
399
  <div
397
- class="pf-v6-c-tabs pf-m-vertical pf-m-expandable"
398
- data-ouia-component-id="OUIA-Generated-Tabs-6"
400
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-vertical pf-m-expandable pf-m-initializing-accent"
401
+ data-ouia-component-id="OUIA-Generated-Tabs-9"
399
402
  data-ouia-component-type="PF6/Tabs"
400
403
  data-ouia-safe="true"
401
404
  id="verticalTabs"
405
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
402
406
  >
403
407
  <div
404
408
  class="pf-v6-c-tabs__toggle"
@@ -600,11 +604,12 @@ exports[`should render expandable vertical tabs 1`] = `
600
604
  exports[`should render filled tabs 1`] = `
601
605
  <DocumentFragment>
602
606
  <div
603
- class="pf-v6-c-tabs pf-m-fill"
604
- data-ouia-component-id="OUIA-Generated-Tabs-10"
607
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-fill pf-m-initializing-accent"
608
+ data-ouia-component-id="OUIA-Generated-Tabs-13"
605
609
  data-ouia-component-type="PF6/Tabs"
606
610
  data-ouia-safe="true"
607
611
  id="filledTabs"
612
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
608
613
  >
609
614
  <ul
610
615
  class="pf-v6-c-tabs__list"
@@ -716,11 +721,12 @@ exports[`should render filled tabs 1`] = `
716
721
  exports[`should render simple tabs 1`] = `
717
722
  <DocumentFragment>
718
723
  <div
719
- class="pf-v6-c-tabs"
720
- data-ouia-component-id="OUIA-Generated-Tabs-1"
724
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
725
+ data-ouia-component-id="OUIA-Generated-Tabs-4"
721
726
  data-ouia-component-type="PF6/Tabs"
722
727
  data-ouia-safe="true"
723
728
  id="simpleTabs"
729
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
724
730
  >
725
731
  <ul
726
732
  class="pf-v6-c-tabs__list"
@@ -874,11 +880,12 @@ exports[`should render simple tabs 1`] = `
874
880
  exports[`should render subtabs 1`] = `
875
881
  <DocumentFragment>
876
882
  <div
877
- class="pf-v6-c-tabs"
878
- data-ouia-component-id="OUIA-Generated-Tabs-11"
883
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
884
+ data-ouia-component-id="OUIA-Generated-Tabs-14"
879
885
  data-ouia-component-type="PF6/Tabs"
880
886
  data-ouia-safe="true"
881
887
  id="primarieTabs"
888
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
882
889
  >
883
890
  <ul
884
891
  class="pf-v6-c-tabs__list"
@@ -959,11 +966,12 @@ exports[`should render subtabs 1`] = `
959
966
  tabindex="0"
960
967
  >
961
968
  <div
962
- class="pf-v6-c-tabs pf-m-subtab"
963
- data-ouia-component-id="OUIA-Generated-Tabs-12"
969
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-subtab pf-m-initializing-accent"
970
+ data-ouia-component-id="OUIA-Generated-Tabs-15"
964
971
  data-ouia-component-type="PF6/Tabs"
965
972
  data-ouia-safe="true"
966
973
  id="subtabs"
974
+ style="--pf-v6-c-tabs--link-accent--length: 0; --pf-v6-c-tabs--link-accent--start: 0;"
967
975
  >
968
976
  <ul
969
977
  class="pf-v6-c-tabs__list"
@@ -1101,11 +1109,12 @@ exports[`should render subtabs 1`] = `
1101
1109
  exports[`should render tabs with eventKey Strings 1`] = `
1102
1110
  <DocumentFragment>
1103
1111
  <div
1104
- class="pf-v6-c-tabs"
1105
- data-ouia-component-id="OUIA-Generated-Tabs-13"
1112
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
1113
+ data-ouia-component-id="OUIA-Generated-Tabs-16"
1106
1114
  data-ouia-component-type="PF6/Tabs"
1107
1115
  data-ouia-safe="true"
1108
1116
  id="eventKeyTabs"
1117
+ style="--pf-v6-c-tabs--link-accent--length: 0; --pf-v6-c-tabs--link-accent--start: 0;"
1109
1118
  >
1110
1119
  <ul
1111
1120
  class="pf-v6-c-tabs__list"
@@ -1218,11 +1227,12 @@ exports[`should render tabs with eventKey Strings 1`] = `
1218
1227
  exports[`should render tabs with no bottom border 1`] = `
1219
1228
  <DocumentFragment>
1220
1229
  <div
1221
- class="pf-v6-c-tabs pf-m-no-border-bottom"
1222
- data-ouia-component-id="OUIA-Generated-Tabs-16"
1230
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-no-border-bottom pf-m-initializing-accent"
1231
+ data-ouia-component-id="OUIA-Generated-Tabs-19"
1223
1232
  data-ouia-component-type="PF6/Tabs"
1224
1233
  data-ouia-safe="true"
1225
1234
  id="noBottomBorderTabs"
1235
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
1226
1236
  >
1227
1237
  <ul
1228
1238
  class="pf-v6-c-tabs__list"
@@ -1334,11 +1344,12 @@ exports[`should render tabs with no bottom border 1`] = `
1334
1344
  exports[`should render tabs with separate content 1`] = `
1335
1345
  <DocumentFragment>
1336
1346
  <div
1337
- class="pf-v6-c-tabs"
1338
- data-ouia-component-id="OUIA-Generated-Tabs-14"
1347
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
1348
+ data-ouia-component-id="OUIA-Generated-Tabs-17"
1339
1349
  data-ouia-component-type="PF6/Tabs"
1340
1350
  data-ouia-safe="true"
1341
1351
  id="separateTabs"
1352
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
1342
1353
  >
1343
1354
  <ul
1344
1355
  class="pf-v6-c-tabs__list"
@@ -1460,10 +1471,11 @@ exports[`should render tabs with separate content 1`] = `
1460
1471
  exports[`should render uncontrolled tabs 1`] = `
1461
1472
  <DocumentFragment>
1462
1473
  <div
1463
- class="pf-v6-c-tabs"
1464
- data-ouia-component-id="OUIA-Generated-Tabs-4"
1474
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
1475
+ data-ouia-component-id="OUIA-Generated-Tabs-7"
1465
1476
  data-ouia-component-type="PF6/Tabs"
1466
1477
  data-ouia-safe="true"
1478
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
1467
1479
  >
1468
1480
  <ul
1469
1481
  class="pf-v6-c-tabs__list"
@@ -1617,11 +1629,12 @@ exports[`should render uncontrolled tabs 1`] = `
1617
1629
  exports[`should render vertical tabs 1`] = `
1618
1630
  <DocumentFragment>
1619
1631
  <div
1620
- class="pf-v6-c-tabs pf-m-vertical"
1621
- data-ouia-component-id="OUIA-Generated-Tabs-5"
1632
+ class="pf-v6-c-tabs pf-m-animate-current pf-m-vertical pf-m-initializing-accent"
1633
+ data-ouia-component-id="OUIA-Generated-Tabs-8"
1622
1634
  data-ouia-component-type="PF6/Tabs"
1623
1635
  data-ouia-safe="true"
1624
1636
  id="verticalTabs"
1637
+ style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
1625
1638
  >
1626
1639
  <ul
1627
1640
  class="pf-v6-c-tabs__list"
@@ -2,7 +2,7 @@
2
2
  id: Tabs
3
3
  section: components
4
4
  cssPrefix: pf-v6-c-tabs
5
- propComponents: ['Tabs', 'Tab', 'TabContent', 'TabContentBody', 'TabTitleText', 'TabTitleIcon', 'horizontalOverflowObject', 'TabAction']
5
+ propComponents: ['Tabs', 'Tab', 'TabContent', 'TabContentBody', 'TabTitleText', 'TabTitleIcon', 'HorizontalOverflowObject', 'HorizontalOverflowPopperProps', 'TabAction']
6
6
  ouia: true
7
7
  ---
8
8
 
@@ -1,7 +1,7 @@
1
1
  import { Timestamp, TimestampFormat } from '@patternfly/react-core';
2
2
 
3
3
  export const TimestampBasicFormats: React.FunctionComponent = () => {
4
- const currentDate = new Date();
4
+ const currentDate = new Date('2025-04-21T23:35:25');
5
5
 
6
6
  return (
7
7
  <>
@@ -1,7 +1,7 @@
1
1
  import { Timestamp, TimestampTooltipVariant } from '@patternfly/react-core';
2
2
 
3
3
  export const TimestampDefaultTooltip: React.FunctionComponent = () => {
4
- const currentDate = new Date();
4
+ const currentDate = new Date('2025-04-21T14:30:00');
5
5
 
6
6
  return (
7
7
  <>
@@ -103,6 +103,11 @@ export interface TreeViewProps {
103
103
  useMemo?: boolean;
104
104
  /** Variant presentation styles for the tree view. */
105
105
  variant?: 'default' | 'compact' | 'compactNoBackground';
106
+ /** Flag indicating whether a tree view has animations. This will always render
107
+ * nested tree view items rather than dynamically rendering them. This prop will be removed in
108
+ * the next breaking change release in favor of defaulting to always-rendered items.
109
+ */
110
+ hasAnimations?: boolean;
106
111
  }
107
112
 
108
113
  export const TreeView: React.FunctionComponent<TreeViewProps> = ({
@@ -130,6 +135,7 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
130
135
  useMemo,
131
136
  'aria-label': ariaLabel,
132
137
  'aria-labelledby': ariaLabelledby,
138
+ hasAnimations,
133
139
  ...props
134
140
  }: TreeViewProps) => {
135
141
  const treeViewList = (
@@ -139,11 +145,13 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
139
145
  isMultiSelectable={isMultiSelectable}
140
146
  aria-label={ariaLabel}
141
147
  aria-labelledby={ariaLabelledby}
148
+ {...props}
142
149
  >
143
150
  {data.map((item) => (
144
151
  <TreeViewListItem
145
152
  key={item.id?.toString() || item.name?.toString()}
146
153
  name={item.name}
154
+ hasAnimations={hasAnimations}
147
155
  title={item.title}
148
156
  id={item.id}
149
157
  isExpanded={allExpanded}
@@ -172,6 +180,7 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
172
180
  <TreeView
173
181
  data={item.children}
174
182
  isNested
183
+ hasAnimations={hasAnimations}
175
184
  parentItem={item}
176
185
  hasCheckboxes={hasCheckboxes}
177
186
  hasBadges={hasBadges}
@@ -1,4 +1,4 @@
1
- import { memo, useState, useEffect } from 'react';
1
+ import { memo, useState, useEffect, Children, isValidElement, cloneElement } from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import styles from '@patternfly/react-styles/css/components/TreeView/tree-view';
4
4
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
@@ -68,6 +68,11 @@ export interface TreeViewListItemProps {
68
68
  * every node in the selected item's path.
69
69
  */
70
70
  useMemo?: boolean;
71
+ /** Flag indicating whether a tree view has animations. This will always render
72
+ * nested tree view items rather than dynamically rendering them. This prop will be removed in
73
+ * the next breaking change release in favor of defaulting to always-rendered items.
74
+ */
75
+ hasAnimations?: boolean;
71
76
  }
72
77
 
73
78
  const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
@@ -97,6 +102,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
97
102
  expandedIcon,
98
103
  action,
99
104
  compareItems,
105
+ hasAnimations,
100
106
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
101
107
  useMemo
102
108
  }: TreeViewListItemProps) => {
@@ -186,9 +192,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
186
192
  <>
187
193
  {hasBadge && children && (
188
194
  <span className={css(styles.treeViewNodeCount)}>
189
- <Badge {...badgeProps}>
190
- {customBadgeContent ? customBadgeContent : (children as React.ReactElement<any>).props.data.length}
191
- </Badge>
195
+ <Badge {...badgeProps}>{customBadgeContent ?? (children as React.ReactElement<any>).props.data.length}</Badge>
192
196
  </span>
193
197
  )}
194
198
  {hasBadge && !children && customBadgeContent !== undefined && (
@@ -205,6 +209,15 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
205
209
  activeItems.length > 0 &&
206
210
  activeItems.some((item) => compareItems && item && compareItems(item, itemData));
207
211
 
212
+ const clonedChildren = Children.map(
213
+ children,
214
+ (child) =>
215
+ isValidElement(child) &&
216
+ cloneElement(child as React.ReactElement<any>, {
217
+ inert: internalIsExpanded ? undefined : ''
218
+ })
219
+ );
220
+
208
221
  return (
209
222
  <li
210
223
  id={id}
@@ -249,7 +262,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
249
262
  </GenerateId>
250
263
  {action && <div className={css(styles.treeViewAction)}>{action}</div>}
251
264
  </div>
252
- {internalIsExpanded && children}
265
+ {(internalIsExpanded || hasAnimations) && clonedChildren}
253
266
  </li>
254
267
  );
255
268
  };
@@ -72,7 +72,7 @@ class TreeViewRoot extends Component<TreeViewRootProps> {
72
72
  const activeElement = document.activeElement;
73
73
  const key = event.key;
74
74
  const treeItems = Array.from(this.treeRef.current?.getElementsByClassName(styles.treeViewNode)).filter(
75
- (el) => !el.classList.contains('pf-m-disabled')
75
+ (el) => !el.classList.contains('pf-m-disabled') && !el.closest(`.${styles.treeViewList}[inert]`)
76
76
  );
77
77
 
78
78
  if (key === KeyTypes.Space) {
@@ -138,7 +138,9 @@ class TreeViewRoot extends Component<TreeViewRootProps> {
138
138
  event.preventDefault();
139
139
  }
140
140
 
141
- const treeNodes = Array.from(this.treeRef.current?.getElementsByClassName(styles.treeViewNode));
141
+ const treeNodes = Array.from(this.treeRef.current?.getElementsByClassName(styles.treeViewNode)).filter(
142
+ (el) => !el.closest(`.${styles.treeViewList}[inert]`)
143
+ );
142
144
 
143
145
  handleArrows(
144
146
  event,