@patternfly/react-core 6.5.0-prerelease.3 → 6.5.0-prerelease.30

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 (615) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/README.md +1 -1
  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/Compass/package.json +1 -1
  24. package/dist/dynamic/components/Content/package.json +1 -1
  25. package/dist/dynamic/components/DataList/package.json +1 -1
  26. package/dist/dynamic/components/DatePicker/package.json +1 -1
  27. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  28. package/dist/dynamic/components/Divider/package.json +1 -1
  29. package/dist/dynamic/components/Drawer/package.json +1 -1
  30. package/dist/dynamic/components/Dropdown/package.json +1 -1
  31. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  32. package/dist/dynamic/components/EmptyState/package.json +1 -1
  33. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  34. package/dist/dynamic/components/FileUpload/package.json +1 -1
  35. package/dist/dynamic/components/Form/package.json +1 -1
  36. package/dist/dynamic/components/FormSelect/package.json +1 -1
  37. package/dist/dynamic/components/HelperText/package.json +1 -1
  38. package/dist/dynamic/components/Hero/package.json +1 -0
  39. package/dist/dynamic/components/Hint/package.json +1 -1
  40. package/dist/dynamic/components/Icon/package.json +1 -1
  41. package/dist/dynamic/components/InputGroup/package.json +1 -1
  42. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  43. package/dist/dynamic/components/Label/package.json +1 -1
  44. package/dist/dynamic/components/List/package.json +1 -1
  45. package/dist/dynamic/components/LoginPage/package.json +1 -1
  46. package/dist/dynamic/components/Masthead/package.json +1 -1
  47. package/dist/dynamic/components/Menu/package.json +1 -1
  48. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  49. package/dist/dynamic/components/Modal/package.json +1 -1
  50. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  51. package/dist/dynamic/components/Nav/package.json +1 -1
  52. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  53. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  54. package/dist/dynamic/components/NumberInput/package.json +1 -1
  55. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  56. package/dist/dynamic/components/Page/package.json +1 -1
  57. package/dist/dynamic/components/Pagination/package.json +1 -1
  58. package/dist/dynamic/components/Panel/package.json +1 -1
  59. package/dist/dynamic/components/Popover/package.json +1 -1
  60. package/dist/dynamic/components/Progress/package.json +1 -1
  61. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  62. package/dist/dynamic/components/Radio/package.json +1 -1
  63. package/dist/dynamic/components/SearchInput/package.json +1 -1
  64. package/dist/dynamic/components/Select/package.json +1 -1
  65. package/dist/dynamic/components/Sidebar/package.json +1 -1
  66. package/dist/dynamic/components/SimpleList/package.json +1 -1
  67. package/dist/dynamic/components/Skeleton/package.json +1 -1
  68. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  69. package/dist/dynamic/components/Slider/package.json +1 -1
  70. package/dist/dynamic/components/Spinner/package.json +1 -1
  71. package/dist/dynamic/components/Switch/package.json +1 -1
  72. package/dist/dynamic/components/Tabs/package.json +1 -1
  73. package/dist/dynamic/components/TextArea/package.json +1 -1
  74. package/dist/dynamic/components/TextInput/package.json +1 -1
  75. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/package.json +1 -1
  93. package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
  94. package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
  95. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  96. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  97. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  98. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  99. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  100. package/dist/dynamic/helpers/constants/package.json +1 -1
  101. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/styles/package.json +1 -1
  119. package/dist/dynamic-modules.json +23 -0
  120. package/dist/esm/components/Alert/AlertIcon.d.ts +5 -5
  121. package/dist/esm/components/Card/CardSubtitle.d.ts +9 -0
  122. package/dist/esm/components/Card/CardSubtitle.d.ts.map +1 -0
  123. package/dist/esm/components/Card/CardSubtitle.js +10 -0
  124. package/dist/esm/components/Card/CardSubtitle.js.map +1 -0
  125. package/dist/esm/components/Card/CardTitle.d.ts +2 -0
  126. package/dist/esm/components/Card/CardTitle.d.ts.map +1 -1
  127. package/dist/esm/components/Card/CardTitle.js +5 -3
  128. package/dist/esm/components/Card/CardTitle.js.map +1 -1
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts +8 -0
  130. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  131. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +4 -2
  132. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  133. package/dist/esm/components/Compass/Compass.d.ts +5 -3
  134. package/dist/esm/components/Compass/Compass.d.ts.map +1 -1
  135. package/dist/esm/components/Compass/Compass.js +4 -4
  136. package/dist/esm/components/Compass/Compass.js.map +1 -1
  137. package/dist/esm/components/Compass/CompassContent.d.ts +2 -3
  138. package/dist/esm/components/Compass/CompassContent.d.ts.map +1 -1
  139. package/dist/esm/components/Compass/CompassContent.js +1 -1
  140. package/dist/esm/components/Compass/CompassContent.js.map +1 -1
  141. package/dist/esm/components/Compass/CompassHeader.d.ts +1 -2
  142. package/dist/esm/components/Compass/CompassHeader.d.ts.map +1 -1
  143. package/dist/esm/components/Compass/CompassHeader.js.map +1 -1
  144. package/dist/esm/components/Compass/CompassHero.d.ts +2 -18
  145. package/dist/esm/components/Compass/CompassHero.d.ts.map +1 -1
  146. package/dist/esm/components/Compass/CompassHero.js +2 -39
  147. package/dist/esm/components/Compass/CompassHero.js.map +1 -1
  148. package/dist/esm/components/Compass/CompassMainFooter.d.ts +12 -0
  149. package/dist/esm/components/Compass/CompassMainFooter.d.ts.map +1 -0
  150. package/dist/esm/components/Compass/CompassMainFooter.js +10 -0
  151. package/dist/esm/components/Compass/CompassMainFooter.js.map +1 -0
  152. package/dist/esm/components/Compass/CompassMainHeader.d.ts +11 -4
  153. package/dist/esm/components/Compass/CompassMainHeader.d.ts.map +1 -1
  154. package/dist/esm/components/Compass/CompassMainHeader.js +5 -3
  155. package/dist/esm/components/Compass/CompassMainHeader.js.map +1 -1
  156. package/dist/esm/components/Compass/CompassMainHeaderContent.d.ts +12 -0
  157. package/dist/esm/components/Compass/CompassMainHeaderContent.d.ts.map +1 -0
  158. package/dist/esm/components/Compass/CompassMainHeaderContent.js +10 -0
  159. package/dist/esm/components/Compass/CompassMainHeaderContent.js.map +1 -0
  160. package/dist/esm/components/Compass/CompassMainHeaderTitle.d.ts +12 -0
  161. package/dist/esm/components/Compass/CompassMainHeaderTitle.d.ts.map +1 -0
  162. package/dist/esm/components/Compass/CompassMainHeaderTitle.js +10 -0
  163. package/dist/esm/components/Compass/CompassMainHeaderTitle.js.map +1 -0
  164. package/dist/esm/components/Compass/CompassMainHeaderToolbar.d.ts +12 -0
  165. package/dist/esm/components/Compass/CompassMainHeaderToolbar.d.ts.map +1 -0
  166. package/dist/esm/components/Compass/CompassMainHeaderToolbar.js +10 -0
  167. package/dist/esm/components/Compass/CompassMainHeaderToolbar.js.map +1 -0
  168. package/dist/esm/components/Compass/CompassMessageBar.d.ts +1 -2
  169. package/dist/esm/components/Compass/CompassMessageBar.d.ts.map +1 -1
  170. package/dist/esm/components/Compass/CompassMessageBar.js.map +1 -1
  171. package/dist/esm/components/Compass/CompassNavContent.d.ts +9 -0
  172. package/dist/esm/components/Compass/CompassNavContent.d.ts.map +1 -0
  173. package/dist/esm/components/Compass/CompassNavContent.js +10 -0
  174. package/dist/esm/components/Compass/CompassNavContent.js.map +1 -0
  175. package/dist/esm/components/Compass/CompassNavHome.d.ts +13 -0
  176. package/dist/esm/components/Compass/CompassNavHome.d.ts.map +1 -0
  177. package/dist/esm/components/Compass/CompassNavHome.js +15 -0
  178. package/dist/esm/components/Compass/CompassNavHome.js.map +1 -0
  179. package/dist/esm/components/Compass/CompassNavMain.d.ts +9 -0
  180. package/dist/esm/components/Compass/CompassNavMain.d.ts.map +1 -0
  181. package/dist/esm/components/Compass/CompassNavMain.js +10 -0
  182. package/dist/esm/components/Compass/CompassNavMain.js.map +1 -0
  183. package/dist/esm/components/Compass/CompassNavSearch.d.ts +13 -0
  184. package/dist/esm/components/Compass/CompassNavSearch.d.ts.map +1 -0
  185. package/dist/esm/components/Compass/CompassNavSearch.js +15 -0
  186. package/dist/esm/components/Compass/CompassNavSearch.js.map +1 -0
  187. package/dist/esm/components/Compass/CompassPanel.d.ts +1 -2
  188. package/dist/esm/components/Compass/CompassPanel.d.ts.map +1 -1
  189. package/dist/esm/components/Compass/CompassPanel.js.map +1 -1
  190. package/dist/esm/components/Compass/index.d.ts +8 -0
  191. package/dist/esm/components/Compass/index.d.ts.map +1 -1
  192. package/dist/esm/components/Compass/index.js +8 -0
  193. package/dist/esm/components/Compass/index.js.map +1 -1
  194. package/dist/esm/components/DataList/DataList.d.ts +2 -0
  195. package/dist/esm/components/DataList/DataList.d.ts.map +1 -1
  196. package/dist/esm/components/DataList/DataList.js +2 -2
  197. package/dist/esm/components/DataList/DataList.js.map +1 -1
  198. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +2 -0
  199. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  200. package/dist/esm/components/Drawer/DrawerPanelContent.js +9 -3
  201. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  202. package/dist/esm/components/Dropdown/Dropdown.d.ts +6 -0
  203. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  204. package/dist/esm/components/Dropdown/Dropdown.js +5 -2
  205. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  206. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +9 -0
  207. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  208. package/dist/esm/components/ExpandableSection/ExpandableSection.js +6 -4
  209. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  210. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +5 -0
  211. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  212. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js +3 -2
  213. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  214. package/dist/esm/components/FileUpload/FileUploadField.d.ts.map +1 -1
  215. package/dist/esm/components/FileUpload/FileUploadField.js +1 -1
  216. package/dist/esm/components/FileUpload/FileUploadField.js.map +1 -1
  217. package/dist/esm/components/Form/FormGroup.d.ts.map +1 -1
  218. package/dist/esm/components/Form/FormGroup.js +1 -1
  219. package/dist/esm/components/Form/FormGroup.js.map +1 -1
  220. package/dist/esm/components/FormControl/FormControlIcon.d.ts +3 -3
  221. package/dist/esm/components/Hero/Hero.d.ts +32 -0
  222. package/dist/esm/components/Hero/Hero.d.ts.map +1 -0
  223. package/dist/esm/components/Hero/Hero.js +51 -0
  224. package/dist/esm/components/Hero/Hero.js.map +1 -0
  225. package/dist/esm/components/Hero/index.d.ts +2 -0
  226. package/dist/esm/components/Hero/index.d.ts.map +1 -0
  227. package/dist/esm/components/Hero/index.js +2 -0
  228. package/dist/esm/components/Hero/index.js.map +1 -0
  229. package/dist/esm/components/Label/Label.js +1 -1
  230. package/dist/esm/components/Label/Label.js.map +1 -1
  231. package/dist/esm/components/Masthead/Masthead.d.ts +2 -0
  232. package/dist/esm/components/Masthead/Masthead.d.ts.map +1 -1
  233. package/dist/esm/components/Masthead/Masthead.js +2 -2
  234. package/dist/esm/components/Masthead/Masthead.js.map +1 -1
  235. package/dist/esm/components/Nav/Nav.d.ts +2 -2
  236. package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
  237. package/dist/esm/components/Nav/Nav.js +1 -1
  238. package/dist/esm/components/Nav/Nav.js.map +1 -1
  239. package/dist/esm/components/Nav/NavItem.d.ts +5 -1
  240. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  241. package/dist/esm/components/Nav/NavItem.js +8 -6
  242. package/dist/esm/components/Nav/NavItem.js.map +1 -1
  243. package/dist/esm/components/NotificationDrawer/NotificationDrawerListItemHeader.d.ts +5 -5
  244. package/dist/esm/components/Page/Page.d.ts +2 -0
  245. package/dist/esm/components/Page/Page.d.ts.map +1 -1
  246. package/dist/esm/components/Page/Page.js +3 -3
  247. package/dist/esm/components/Page/Page.js.map +1 -1
  248. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  249. package/dist/esm/components/Tabs/Tabs.js +2 -2
  250. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  251. package/dist/esm/components/Toolbar/Toolbar.d.ts +2 -0
  252. package/dist/esm/components/Toolbar/Toolbar.d.ts.map +1 -1
  253. package/dist/esm/components/Toolbar/Toolbar.js +2 -2
  254. package/dist/esm/components/Toolbar/Toolbar.js.map +1 -1
  255. package/dist/esm/components/TreeView/TreeView.d.ts +4 -0
  256. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  257. package/dist/esm/components/TreeView/TreeView.js +1 -1
  258. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  259. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +4 -0
  260. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  261. package/dist/esm/components/TreeView/TreeViewListItem.js +15 -11
  262. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  263. package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
  264. package/dist/esm/components/Truncate/Truncate.js +5 -4
  265. package/dist/esm/components/Truncate/Truncate.js.map +1 -1
  266. package/dist/esm/components/Wizard/WizardNavInternal.js +3 -3
  267. package/dist/esm/components/Wizard/WizardNavInternal.js.map +1 -1
  268. package/dist/esm/components/index.d.ts +1 -0
  269. package/dist/esm/components/index.d.ts.map +1 -1
  270. package/dist/esm/components/index.js +1 -0
  271. package/dist/esm/components/index.js.map +1 -1
  272. package/dist/esm/helpers/constants.d.ts +5 -5
  273. package/dist/js/components/Card/CardSubtitle.d.ts +9 -0
  274. package/dist/js/components/Card/CardSubtitle.d.ts.map +1 -0
  275. package/dist/js/components/Card/CardSubtitle.js +14 -0
  276. package/dist/js/components/Card/CardSubtitle.js.map +1 -0
  277. package/dist/js/components/Card/CardTitle.d.ts +2 -0
  278. package/dist/js/components/Card/CardTitle.d.ts.map +1 -1
  279. package/dist/js/components/Card/CardTitle.js +4 -2
  280. package/dist/js/components/Card/CardTitle.js.map +1 -1
  281. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts +8 -0
  282. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  283. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +4 -2
  284. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  285. package/dist/js/components/Compass/Compass.d.ts +5 -3
  286. package/dist/js/components/Compass/Compass.d.ts.map +1 -1
  287. package/dist/js/components/Compass/Compass.js +3 -3
  288. package/dist/js/components/Compass/Compass.js.map +1 -1
  289. package/dist/js/components/Compass/CompassContent.d.ts +2 -3
  290. package/dist/js/components/Compass/CompassContent.d.ts.map +1 -1
  291. package/dist/js/components/Compass/CompassContent.js +1 -1
  292. package/dist/js/components/Compass/CompassContent.js.map +1 -1
  293. package/dist/js/components/Compass/CompassHeader.d.ts +1 -2
  294. package/dist/js/components/Compass/CompassHeader.d.ts.map +1 -1
  295. package/dist/js/components/Compass/CompassHeader.js.map +1 -1
  296. package/dist/js/components/Compass/CompassHero.d.ts +2 -18
  297. package/dist/js/components/Compass/CompassHero.d.ts.map +1 -1
  298. package/dist/js/components/Compass/CompassHero.js +2 -39
  299. package/dist/js/components/Compass/CompassHero.js.map +1 -1
  300. package/dist/js/components/Compass/CompassMainFooter.d.ts +12 -0
  301. package/dist/js/components/Compass/CompassMainFooter.d.ts.map +1 -0
  302. package/dist/js/components/Compass/CompassMainFooter.js +14 -0
  303. package/dist/js/components/Compass/CompassMainFooter.js.map +1 -0
  304. package/dist/js/components/Compass/CompassMainHeader.d.ts +11 -4
  305. package/dist/js/components/Compass/CompassMainHeader.d.ts.map +1 -1
  306. package/dist/js/components/Compass/CompassMainHeader.js +5 -3
  307. package/dist/js/components/Compass/CompassMainHeader.js.map +1 -1
  308. package/dist/js/components/Compass/CompassMainHeaderContent.d.ts +12 -0
  309. package/dist/js/components/Compass/CompassMainHeaderContent.d.ts.map +1 -0
  310. package/dist/js/components/Compass/CompassMainHeaderContent.js +14 -0
  311. package/dist/js/components/Compass/CompassMainHeaderContent.js.map +1 -0
  312. package/dist/js/components/Compass/CompassMainHeaderTitle.d.ts +12 -0
  313. package/dist/js/components/Compass/CompassMainHeaderTitle.d.ts.map +1 -0
  314. package/dist/js/components/Compass/CompassMainHeaderTitle.js +14 -0
  315. package/dist/js/components/Compass/CompassMainHeaderTitle.js.map +1 -0
  316. package/dist/js/components/Compass/CompassMainHeaderToolbar.d.ts +12 -0
  317. package/dist/js/components/Compass/CompassMainHeaderToolbar.d.ts.map +1 -0
  318. package/dist/js/components/Compass/CompassMainHeaderToolbar.js +14 -0
  319. package/dist/js/components/Compass/CompassMainHeaderToolbar.js.map +1 -0
  320. package/dist/js/components/Compass/CompassMessageBar.d.ts +1 -2
  321. package/dist/js/components/Compass/CompassMessageBar.d.ts.map +1 -1
  322. package/dist/js/components/Compass/CompassMessageBar.js.map +1 -1
  323. package/dist/js/components/Compass/CompassNavContent.d.ts +9 -0
  324. package/dist/js/components/Compass/CompassNavContent.d.ts.map +1 -0
  325. package/dist/js/components/Compass/CompassNavContent.js +14 -0
  326. package/dist/js/components/Compass/CompassNavContent.js.map +1 -0
  327. package/dist/js/components/Compass/CompassNavHome.d.ts +13 -0
  328. package/dist/js/components/Compass/CompassNavHome.d.ts.map +1 -0
  329. package/dist/js/components/Compass/CompassNavHome.js +19 -0
  330. package/dist/js/components/Compass/CompassNavHome.js.map +1 -0
  331. package/dist/js/components/Compass/CompassNavMain.d.ts +9 -0
  332. package/dist/js/components/Compass/CompassNavMain.d.ts.map +1 -0
  333. package/dist/js/components/Compass/CompassNavMain.js +14 -0
  334. package/dist/js/components/Compass/CompassNavMain.js.map +1 -0
  335. package/dist/js/components/Compass/CompassNavSearch.d.ts +13 -0
  336. package/dist/js/components/Compass/CompassNavSearch.d.ts.map +1 -0
  337. package/dist/js/components/Compass/CompassNavSearch.js +19 -0
  338. package/dist/js/components/Compass/CompassNavSearch.js.map +1 -0
  339. package/dist/js/components/Compass/CompassPanel.d.ts +1 -2
  340. package/dist/js/components/Compass/CompassPanel.d.ts.map +1 -1
  341. package/dist/js/components/Compass/CompassPanel.js.map +1 -1
  342. package/dist/js/components/Compass/index.d.ts +8 -0
  343. package/dist/js/components/Compass/index.d.ts.map +1 -1
  344. package/dist/js/components/Compass/index.js +8 -0
  345. package/dist/js/components/Compass/index.js.map +1 -1
  346. package/dist/js/components/DataList/DataList.d.ts +2 -0
  347. package/dist/js/components/DataList/DataList.d.ts.map +1 -1
  348. package/dist/js/components/DataList/DataList.js +2 -2
  349. package/dist/js/components/DataList/DataList.js.map +1 -1
  350. package/dist/js/components/Drawer/DrawerPanelContent.d.ts +2 -0
  351. package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  352. package/dist/js/components/Drawer/DrawerPanelContent.js +9 -3
  353. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  354. package/dist/js/components/Dropdown/Dropdown.d.ts +6 -0
  355. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  356. package/dist/js/components/Dropdown/Dropdown.js +5 -2
  357. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  358. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +9 -0
  359. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  360. package/dist/js/components/ExpandableSection/ExpandableSection.js +6 -4
  361. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  362. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +5 -0
  363. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  364. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +3 -2
  365. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  366. package/dist/js/components/FileUpload/FileUploadField.d.ts.map +1 -1
  367. package/dist/js/components/FileUpload/FileUploadField.js +1 -1
  368. package/dist/js/components/FileUpload/FileUploadField.js.map +1 -1
  369. package/dist/js/components/Form/FormGroup.d.ts.map +1 -1
  370. package/dist/js/components/Form/FormGroup.js +1 -1
  371. package/dist/js/components/Form/FormGroup.js.map +1 -1
  372. package/dist/js/components/Hero/Hero.d.ts +32 -0
  373. package/dist/js/components/Hero/Hero.d.ts.map +1 -0
  374. package/dist/js/components/Hero/Hero.js +55 -0
  375. package/dist/js/components/Hero/Hero.js.map +1 -0
  376. package/dist/js/components/Hero/index.d.ts +2 -0
  377. package/dist/js/components/Hero/index.d.ts.map +1 -0
  378. package/dist/js/components/Hero/index.js +5 -0
  379. package/dist/js/components/Hero/index.js.map +1 -0
  380. package/dist/js/components/Label/Label.js +1 -1
  381. package/dist/js/components/Label/Label.js.map +1 -1
  382. package/dist/js/components/Masthead/Masthead.d.ts +2 -0
  383. package/dist/js/components/Masthead/Masthead.d.ts.map +1 -1
  384. package/dist/js/components/Masthead/Masthead.js +2 -2
  385. package/dist/js/components/Masthead/Masthead.js.map +1 -1
  386. package/dist/js/components/Nav/Nav.d.ts +2 -2
  387. package/dist/js/components/Nav/Nav.d.ts.map +1 -1
  388. package/dist/js/components/Nav/Nav.js +1 -1
  389. package/dist/js/components/Nav/Nav.js.map +1 -1
  390. package/dist/js/components/Nav/NavItem.d.ts +5 -1
  391. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  392. package/dist/js/components/Nav/NavItem.js +7 -6
  393. package/dist/js/components/Nav/NavItem.js.map +1 -1
  394. package/dist/js/components/Page/Page.d.ts +2 -0
  395. package/dist/js/components/Page/Page.d.ts.map +1 -1
  396. package/dist/js/components/Page/Page.js +3 -3
  397. package/dist/js/components/Page/Page.js.map +1 -1
  398. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  399. package/dist/js/components/Tabs/Tabs.js +2 -2
  400. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  401. package/dist/js/components/Toolbar/Toolbar.d.ts +2 -0
  402. package/dist/js/components/Toolbar/Toolbar.d.ts.map +1 -1
  403. package/dist/js/components/Toolbar/Toolbar.js +2 -2
  404. package/dist/js/components/Toolbar/Toolbar.js.map +1 -1
  405. package/dist/js/components/TreeView/TreeView.d.ts +4 -0
  406. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  407. package/dist/js/components/TreeView/TreeView.js +1 -1
  408. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  409. package/dist/js/components/TreeView/TreeViewListItem.d.ts +4 -0
  410. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  411. package/dist/js/components/TreeView/TreeViewListItem.js +15 -11
  412. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  413. package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
  414. package/dist/js/components/Truncate/Truncate.js +5 -4
  415. package/dist/js/components/Truncate/Truncate.js.map +1 -1
  416. package/dist/js/components/Wizard/WizardNavInternal.js +3 -3
  417. package/dist/js/components/Wizard/WizardNavInternal.js.map +1 -1
  418. package/dist/js/components/index.d.ts +1 -0
  419. package/dist/js/components/index.d.ts.map +1 -1
  420. package/dist/js/components/index.js +1 -0
  421. package/dist/js/components/index.js.map +1 -1
  422. package/dist/styles/base-no-reset.css +46 -0
  423. package/dist/styles/base.css +53 -0
  424. package/dist/umd/assets/{output-b6v4lKPy.css → output-C9hOBGo-.css} +18792 -18180
  425. package/dist/umd/react-core.min.js +5 -5
  426. package/helpers/package.json +1 -1
  427. package/layouts/package.json +1 -1
  428. package/next/package.json +1 -1
  429. package/package.json +8 -8
  430. package/src/components/Card/CardSubtitle.tsx +20 -0
  431. package/src/components/Card/CardTitle.tsx +6 -0
  432. package/src/components/Card/__tests__/CardSubtitle.test.tsx +48 -0
  433. package/src/components/Card/__tests__/CardTitle.test.tsx +27 -17
  434. package/src/components/Card/__tests__/__snapshots__/CardSubtitle.test.tsx.snap +21 -0
  435. package/src/components/Card/__tests__/__snapshots__/CardTitle.test.tsx.snap +1 -1
  436. package/src/components/Card/examples/Card.md +16 -1
  437. package/src/components/Card/examples/CardSubtitle.tsx +9 -0
  438. package/src/components/Card/examples/CardSubtitleActions.tsx +107 -0
  439. package/src/components/ClipboardCopy/ClipboardCopy.tsx +16 -1
  440. package/src/components/ClipboardCopy/__tests__/ClipboardCopy.test.tsx +72 -0
  441. package/src/components/ClipboardCopy/__tests__/ClipboardCopyTruncateIntegration.test.tsx +32 -0
  442. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopy.test.tsx.snap +1 -1
  443. package/src/components/Compass/Compass.tsx +51 -33
  444. package/src/components/Compass/CompassContent.tsx +4 -4
  445. package/src/components/Compass/CompassHeader.tsx +6 -2
  446. package/src/components/Compass/CompassHero.tsx +7 -72
  447. package/src/components/Compass/CompassMainFooter.tsx +24 -0
  448. package/src/components/Compass/CompassMainHeader.tsx +22 -11
  449. package/src/components/Compass/CompassMainHeaderContent.tsx +25 -0
  450. package/src/components/Compass/CompassMainHeaderTitle.tsx +25 -0
  451. package/src/components/Compass/CompassMainHeaderToolbar.tsx +25 -0
  452. package/src/components/Compass/CompassMessageBar.tsx +2 -2
  453. package/src/components/Compass/CompassNavContent.tsx +20 -0
  454. package/src/components/Compass/CompassNavHome.tsx +77 -0
  455. package/src/components/Compass/CompassNavMain.tsx +21 -0
  456. package/src/components/Compass/CompassNavSearch.tsx +70 -0
  457. package/src/components/Compass/CompassPanel.tsx +2 -2
  458. package/src/components/Compass/__tests__/Compass.test.tsx +10 -0
  459. package/src/components/Compass/__tests__/CompassHero.test.tsx +7 -119
  460. package/src/components/Compass/__tests__/CompassMainFooter.test.tsx +52 -0
  461. package/src/components/Compass/__tests__/CompassMainHeader.test.tsx +45 -2
  462. package/src/components/Compass/__tests__/CompassMainHeaderContent.test.tsx +28 -0
  463. package/src/components/Compass/__tests__/CompassMainHeaderTitle.test.tsx +28 -0
  464. package/src/components/Compass/__tests__/CompassMainHeaderToolbar.test.tsx +28 -0
  465. package/src/components/Compass/__tests__/CompassNavContent.test.tsx +37 -0
  466. package/src/components/Compass/__tests__/CompassNavHome.test.tsx +89 -0
  467. package/src/components/Compass/__tests__/CompassNavMain.test.tsx +37 -0
  468. package/src/components/Compass/__tests__/CompassNavSearch.test.tsx +87 -0
  469. package/src/components/Compass/__tests__/__snapshots__/Compass.test.tsx.snap +33 -29
  470. package/src/components/Compass/__tests__/__snapshots__/CompassContent.test.tsx.snap +1 -1
  471. package/src/components/Compass/__tests__/__snapshots__/CompassHero.test.tsx.snap +2 -9
  472. package/src/components/Compass/__tests__/__snapshots__/CompassMainFooter.test.tsx.snap +11 -0
  473. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeader.test.tsx.snap +3 -3
  474. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeaderContent.test.tsx.snap +11 -0
  475. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeaderTitle.test.tsx.snap +11 -0
  476. package/src/components/Compass/__tests__/__snapshots__/CompassMainHeaderToolbar.test.tsx.snap +11 -0
  477. package/src/components/Compass/__tests__/__snapshots__/CompassNavContent.test.tsx.snap +13 -0
  478. package/src/components/Compass/__tests__/__snapshots__/CompassNavHome.test.tsx.snap +107 -0
  479. package/src/components/Compass/__tests__/__snapshots__/CompassNavMain.test.tsx.snap +13 -0
  480. package/src/components/Compass/__tests__/__snapshots__/CompassNavSearch.test.tsx.snap +93 -0
  481. package/src/components/Compass/examples/Compass.md +52 -14
  482. package/src/components/Compass/examples/CompassBasic.tsx +15 -2
  483. package/src/components/Compass/examples/CompassDockLayout.tsx +25 -0
  484. package/src/components/Compass/examples/CompassMainFooterDemo.tsx +43 -0
  485. package/src/components/Compass/examples/compass.css +26 -2
  486. package/src/components/Compass/index.ts +8 -0
  487. package/src/components/DataList/DataList.tsx +4 -0
  488. package/src/components/DataList/__tests__/DataList.test.tsx +6 -0
  489. package/src/components/DataList/examples/DataList.md +6 -0
  490. package/src/components/DataList/examples/DataListPlain.tsx +32 -0
  491. package/src/components/Drawer/DrawerPanelContent.tsx +11 -0
  492. package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +30 -0
  493. package/src/components/Drawer/__tests__/Generated/__snapshots__/DrawerPanelContent.test.tsx.snap +1 -0
  494. package/src/components/Drawer/__tests__/__snapshots__/Drawer.test.tsx.snap +2 -0
  495. package/src/components/Drawer/examples/Drawer.md +1 -1
  496. package/src/components/Drawer/examples/DrawerAdditionalSectionAboveContent.tsx +1 -1
  497. package/src/components/Drawer/examples/DrawerBasic.tsx +1 -1
  498. package/src/components/Drawer/examples/DrawerBasicInline.tsx +1 -1
  499. package/src/components/Drawer/examples/DrawerBasicPill.tsx +1 -1
  500. package/src/components/Drawer/examples/DrawerBreakpoint.tsx +1 -1
  501. package/src/components/Drawer/examples/DrawerInlinePanelEnd.tsx +1 -1
  502. package/src/components/Drawer/examples/DrawerInlinePanelStart.tsx +1 -1
  503. package/src/components/Drawer/examples/DrawerModifiedContentPadding.tsx +1 -1
  504. package/src/components/Drawer/examples/DrawerModifiedPanelPadding.tsx +1 -1
  505. package/src/components/Drawer/examples/DrawerPanelBottom.tsx +1 -1
  506. package/src/components/Drawer/examples/DrawerPanelEnd.tsx +1 -1
  507. package/src/components/Drawer/examples/DrawerPanelStart.tsx +1 -1
  508. package/src/components/Drawer/examples/DrawerPillInline.tsx +1 -1
  509. package/src/components/Drawer/examples/DrawerResizableAtEnd.tsx +1 -1
  510. package/src/components/Drawer/examples/DrawerResizableAtStart.tsx +1 -1
  511. package/src/components/Drawer/examples/DrawerResizableOnBottom.tsx +1 -1
  512. package/src/components/Drawer/examples/DrawerResizableOnInline.tsx +1 -1
  513. package/src/components/Drawer/examples/DrawerStatic.tsx +1 -1
  514. package/src/components/Dropdown/Dropdown.tsx +15 -1
  515. package/src/components/Dropdown/__tests__/Dropdown.test.tsx +26 -0
  516. package/src/components/Dropdown/examples/Dropdown.md +13 -1
  517. package/src/components/Dropdown/examples/DropdownWithSplit.tsx +97 -0
  518. package/src/components/ExpandableSection/ExpandableSection.tsx +19 -9
  519. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +48 -38
  520. package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +60 -0
  521. package/src/components/ExpandableSection/__tests__/ExpandableSectionToggle.test.tsx +28 -0
  522. package/src/components/ExpandableSection/examples/ExpandableSection.md +8 -0
  523. package/src/components/ExpandableSection/examples/ExpandableSectionCustomToggle.tsx +31 -16
  524. package/src/components/ExpandableSection/examples/ExpandableSectionWithHeading.tsx +89 -0
  525. package/src/components/FileUpload/FileUploadField.tsx +25 -23
  526. package/src/components/Form/FormGroup.tsx +1 -2
  527. package/src/components/Form/__tests__/__snapshots__/FormGroup.test.tsx.snap +1 -1
  528. package/src/components/Hero/Hero.tsx +102 -0
  529. package/src/components/Hero/__tests__/Hero.test.tsx +175 -0
  530. package/src/components/Hero/__tests__/__snapshots__/Hero.test.tsx.snap +30 -0
  531. package/src/components/Hero/examples/Hero.md +19 -0
  532. package/src/components/Hero/examples/HeroBasic.tsx +3 -0
  533. package/src/components/Hero/index.ts +1 -0
  534. package/src/components/Label/Label.tsx +1 -1
  535. package/src/components/LoginPage/__tests__/__snapshots__/LoginForm.test.tsx.snap +6 -6
  536. package/src/components/Masthead/Masthead.tsx +4 -0
  537. package/src/components/Masthead/__tests__/Masthead.test.tsx +25 -1
  538. package/src/components/Nav/Nav.tsx +3 -2
  539. package/src/components/Nav/NavItem.tsx +27 -3
  540. package/src/components/Nav/__tests__/Nav.test.tsx +15 -0
  541. package/src/components/Page/Page.tsx +5 -1
  542. package/src/components/Page/__tests__/Page.test.tsx +17 -0
  543. package/src/components/Tabs/Tabs.tsx +2 -2
  544. package/src/components/Tabs/__tests__/Tabs.test.tsx +60 -0
  545. package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +13 -13
  546. package/src/components/Tabs/examples/Tabs.md +8 -0
  547. package/src/components/Tabs/examples/TabsSiteNav.tsx +40 -0
  548. package/src/components/Toolbar/Toolbar.tsx +4 -0
  549. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +34 -1
  550. package/src/components/TreeView/TreeView.tsx +6 -0
  551. package/src/components/TreeView/TreeViewListItem.tsx +27 -9
  552. package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +243 -0
  553. package/src/components/Truncate/Truncate.tsx +5 -4
  554. package/src/components/Truncate/__tests__/Truncate.test.tsx +21 -3
  555. package/src/components/Truncate/__tests__/__snapshots__/Truncate.test.tsx.snap +3 -9
  556. package/src/components/Wizard/WizardNavInternal.tsx +3 -3
  557. package/src/components/Wizard/__tests__/Wizard.test.tsx +39 -0
  558. package/src/components/index.ts +1 -0
  559. package/src/demos/Banner.md +2 -139
  560. package/src/demos/Compass/Compass.md +40 -0
  561. package/src/{components → demos}/Compass/examples/CompassDemo.tsx +63 -48
  562. package/src/demos/Compass/examples/CompassDockDemo.tsx +215 -0
  563. package/src/demos/DatePicker/DatePicker.md +1 -47
  564. package/src/demos/DatePicker/examples/DatePickerRange.tsx +46 -0
  565. package/src/demos/DateTimePicker.md +2 -86
  566. package/src/demos/JumpLinks.md +2 -129
  567. package/src/demos/Page.md +12 -1
  568. package/src/demos/ProgressDemo.md +2 -65
  569. package/src/demos/ProgressStepperDemo.md +1 -72
  570. package/src/demos/Tabs.md +6 -417
  571. package/src/demos/Wizard/WizardDemo.md +6 -6
  572. package/src/demos/assets/PF-IconLogo-color.svg +17 -0
  573. package/src/demos/examples/Banner/BannerBasicSticky.tsx +55 -0
  574. package/src/demos/examples/Banner/BannerTopBottom.tsx +81 -0
  575. package/src/demos/examples/DateTimePicker/DateTimeRangePicker.tsx +93 -0
  576. package/src/demos/examples/JumpLinks/JumpLinksScrollspy.tsx +125 -0
  577. package/src/demos/examples/JumpLinks/{JumpLinksWithDrawer.js → JumpLinksWithDrawer.tsx} +1 -1
  578. package/src/demos/examples/Page/PageDockedNav.tsx +259 -0
  579. package/src/demos/examples/Progress/ProgressBasic.tsx +32 -0
  580. package/src/demos/examples/Progress/ProgressWithOnlyIncreasing.tsx +33 -0
  581. package/src/demos/examples/ProgressStepper/ProgressStepperBasic.tsx +72 -0
  582. package/src/demos/examples/Tabs/TabsOpen.tsx +185 -0
  583. package/src/demos/examples/Tabs/TabsOpenWithSecondaryTabs.tsx +228 -0
  584. package/src/deprecated/components/Modal/examples/Modal.md +2 -2
  585. package/src/deprecated/components/Tile/examples/Tile.md +0 -2
  586. package/src/helpers/OUIA/OUIA.md +2 -2
  587. package/src/layouts/Bullseye/examples/Bullseye.md +2 -1
  588. package/src/layouts/Bullseye/examples/bullseye.css +2 -2
  589. package/src/layouts/Flex/examples/Flex.md +2 -1
  590. package/src/layouts/Flex/examples/flex.css +3 -3
  591. package/src/layouts/Gallery/examples/Gallery.md +10 -100
  592. package/src/layouts/Gallery/examples/GalleryAdjustingMaxWidths.tsx +21 -0
  593. package/src/layouts/Gallery/examples/GalleryAdjustingMinMaxWidths.tsx +25 -0
  594. package/src/layouts/Gallery/examples/GalleryAdjustingMinWidths.tsx +22 -0
  595. package/src/layouts/Gallery/examples/GalleryAlternativeComponents.tsx +11 -0
  596. package/src/layouts/Gallery/examples/GalleryBasic.tsx +14 -0
  597. package/src/layouts/Gallery/examples/GalleryWithGutters.tsx +12 -0
  598. package/src/layouts/Gallery/examples/gallery.css +2 -2
  599. package/src/layouts/Grid/examples/Grid.md +10 -105
  600. package/src/layouts/Grid/examples/GridAlternativeComponents.tsx +11 -0
  601. package/src/layouts/Grid/examples/GridBasic.tsx +22 -0
  602. package/src/layouts/Grid/examples/GridGroupingOrdering.tsx +18 -0
  603. package/src/layouts/Grid/examples/GridResponsiveOrdering.tsx +9 -0
  604. package/src/layouts/Grid/examples/GridStandardOrdering.tsx +9 -0
  605. package/src/layouts/Grid/examples/GridWithGutters.tsx +22 -0
  606. package/src/layouts/Grid/examples/GridWithOverrides.tsx +20 -0
  607. package/src/layouts/Grid/examples/grid.css +2 -2
  608. package/src/layouts/Level/examples/Level.md +2 -1
  609. package/src/layouts/Level/examples/level.css +4 -4
  610. package/src/layouts/Split/examples/Split.md +2 -1
  611. package/src/layouts/Split/examples/split.css +2 -2
  612. package/src/layouts/Stack/examples/Stack.md +4 -17
  613. package/src/layouts/Stack/examples/StackBasic.tsx +9 -0
  614. package/src/layouts/Stack/examples/StackWithGutter.tsx +9 -0
  615. package/src/layouts/Stack/examples/stack.css +4 -4
@@ -5,7 +5,7 @@ exports[`should render accessible tabs 1`] = `
5
5
  <nav
6
6
  aria-label="accessible Tabs example"
7
7
  class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
8
- data-ouia-component-id="OUIA-Generated-Tabs-14"
8
+ data-ouia-component-id="OUIA-Generated-Tabs-19"
9
9
  data-ouia-component-type="PF6/Tabs"
10
10
  data-ouia-safe="true"
11
11
  id="accessibleTabs"
@@ -122,7 +122,7 @@ exports[`should render box tabs 1`] = `
122
122
  <DocumentFragment>
123
123
  <div
124
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-13"
125
+ data-ouia-component-id="OUIA-Generated-Tabs-18"
126
126
  data-ouia-component-type="PF6/Tabs"
127
127
  data-ouia-safe="true"
128
128
  id="boxTabs"
@@ -281,7 +281,7 @@ exports[`should render box tabs of secondary variant 1`] = `
281
281
  <DocumentFragment>
282
282
  <div
283
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-24"
284
+ data-ouia-component-id="OUIA-Generated-Tabs-29"
285
285
  data-ouia-component-type="PF6/Tabs"
286
286
  data-ouia-safe="true"
287
287
  id="boxSecondaryVariantTabs"
@@ -398,7 +398,7 @@ exports[`should render expandable vertical tabs 1`] = `
398
398
  <DocumentFragment>
399
399
  <div
400
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-11"
401
+ data-ouia-component-id="OUIA-Generated-Tabs-16"
402
402
  data-ouia-component-type="PF6/Tabs"
403
403
  data-ouia-safe="true"
404
404
  id="verticalTabs"
@@ -605,7 +605,7 @@ exports[`should render filled tabs 1`] = `
605
605
  <DocumentFragment>
606
606
  <div
607
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-15"
608
+ data-ouia-component-id="OUIA-Generated-Tabs-20"
609
609
  data-ouia-component-type="PF6/Tabs"
610
610
  data-ouia-safe="true"
611
611
  id="filledTabs"
@@ -722,7 +722,7 @@ exports[`should render simple tabs 1`] = `
722
722
  <DocumentFragment>
723
723
  <div
724
724
  class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
725
- data-ouia-component-id="OUIA-Generated-Tabs-6"
725
+ data-ouia-component-id="OUIA-Generated-Tabs-11"
726
726
  data-ouia-component-type="PF6/Tabs"
727
727
  data-ouia-safe="true"
728
728
  id="simpleTabs"
@@ -881,7 +881,7 @@ exports[`should render subtabs 1`] = `
881
881
  <DocumentFragment>
882
882
  <div
883
883
  class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
884
- data-ouia-component-id="OUIA-Generated-Tabs-16"
884
+ data-ouia-component-id="OUIA-Generated-Tabs-21"
885
885
  data-ouia-component-type="PF6/Tabs"
886
886
  data-ouia-safe="true"
887
887
  id="primarieTabs"
@@ -967,7 +967,7 @@ exports[`should render subtabs 1`] = `
967
967
  >
968
968
  <div
969
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-17"
970
+ data-ouia-component-id="OUIA-Generated-Tabs-22"
971
971
  data-ouia-component-type="PF6/Tabs"
972
972
  data-ouia-safe="true"
973
973
  id="subtabs"
@@ -1110,7 +1110,7 @@ exports[`should render tabs with eventKey Strings 1`] = `
1110
1110
  <DocumentFragment>
1111
1111
  <div
1112
1112
  class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
1113
- data-ouia-component-id="OUIA-Generated-Tabs-18"
1113
+ data-ouia-component-id="OUIA-Generated-Tabs-23"
1114
1114
  data-ouia-component-type="PF6/Tabs"
1115
1115
  data-ouia-safe="true"
1116
1116
  id="eventKeyTabs"
@@ -1228,7 +1228,7 @@ exports[`should render tabs with no bottom border 1`] = `
1228
1228
  <DocumentFragment>
1229
1229
  <div
1230
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-25"
1231
+ data-ouia-component-id="OUIA-Generated-Tabs-30"
1232
1232
  data-ouia-component-type="PF6/Tabs"
1233
1233
  data-ouia-safe="true"
1234
1234
  id="noBottomBorderTabs"
@@ -1345,7 +1345,7 @@ exports[`should render tabs with separate content 1`] = `
1345
1345
  <DocumentFragment>
1346
1346
  <div
1347
1347
  class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
1348
- data-ouia-component-id="OUIA-Generated-Tabs-19"
1348
+ data-ouia-component-id="OUIA-Generated-Tabs-24"
1349
1349
  data-ouia-component-type="PF6/Tabs"
1350
1350
  data-ouia-safe="true"
1351
1351
  id="separateTabs"
@@ -1472,7 +1472,7 @@ exports[`should render uncontrolled tabs 1`] = `
1472
1472
  <DocumentFragment>
1473
1473
  <div
1474
1474
  class="pf-v6-c-tabs pf-m-animate-current pf-m-initializing-accent"
1475
- data-ouia-component-id="OUIA-Generated-Tabs-9"
1475
+ data-ouia-component-id="OUIA-Generated-Tabs-14"
1476
1476
  data-ouia-component-type="PF6/Tabs"
1477
1477
  data-ouia-safe="true"
1478
1478
  style="--pf-v6-c-tabs--link-accent--length: 0px; --pf-v6-c-tabs--link-accent--start: 0px;"
@@ -1630,7 +1630,7 @@ exports[`should render vertical tabs 1`] = `
1630
1630
  <DocumentFragment>
1631
1631
  <div
1632
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-10"
1633
+ data-ouia-component-id="OUIA-Generated-Tabs-15"
1634
1634
  data-ouia-component-type="PF6/Tabs"
1635
1635
  data-ouia-safe="true"
1636
1636
  id="verticalTabs"
@@ -189,6 +189,14 @@ Subtabs can also link to nav elements.
189
189
 
190
190
  ```
191
191
 
192
+ ### Tabs used for site navigation
193
+
194
+ Site navigation tabs
195
+
196
+ ```ts file="./TabsSiteNav.tsx"
197
+
198
+ ```
199
+
192
200
  ### With separate content
193
201
 
194
202
  If a `<TabContent>` component is defined outside of a `<Tabs>` component, use the `tabContentRef` and `tabContentId` properties. The `hidden` property is used on `TabContent` to set the initial visible content.
@@ -0,0 +1,40 @@
1
+ import { useState } from 'react';
2
+ import { Tabs, Tab, TabTitleText } from '@patternfly/react-core';
3
+
4
+ export const TabsSiteNav: React.FunctionComponent = () => {
5
+ const [activeTabKey, setActiveTabKey] = useState<string | number>(0);
6
+ // Toggle currently active tab
7
+ const handleTabClick = (
8
+ event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
9
+ tabIndex: string | number
10
+ ) => {
11
+ setActiveTabKey(tabIndex);
12
+ };
13
+ return (
14
+ <Tabs
15
+ activeKey={activeTabKey}
16
+ onSelect={handleTabClick}
17
+ isNav={true}
18
+ aria-label="Site navigation with nav styling example"
19
+ >
20
+ <Tab eventKey={0} title={<TabTitleText>Users</TabTitleText>} href="#users" aria-label="Nav element content users">
21
+ Users
22
+ </Tab>
23
+ <Tab eventKey={1} title={<TabTitleText>Containers</TabTitleText>} href="#containers">
24
+ Containers
25
+ </Tab>
26
+ <Tab eventKey={2} title={<TabTitleText>Database</TabTitleText>} href="#database">
27
+ Database
28
+ </Tab>
29
+ <Tab eventKey={3} title={<TabTitleText>Disabled</TabTitleText>} isDisabled href="#disabled">
30
+ Disabled
31
+ </Tab>
32
+ <Tab eventKey={4} title={<TabTitleText>ARIA Disabled</TabTitleText>} isAriaDisabled href="#aria-disabled">
33
+ ARIA Disabled
34
+ </Tab>
35
+ <Tab eventKey={6} title={<TabTitleText>Network</TabTitleText>} href="#network">
36
+ Network
37
+ </Tab>
38
+ </Tabs>
39
+ );
40
+ };
@@ -40,6 +40,8 @@ export interface ToolbarProps extends React.HTMLProps<HTMLDivElement>, OUIAProps
40
40
  isStatic?: boolean;
41
41
  /** Flag indicating the toolbar should stick to the top of its container */
42
42
  isSticky?: boolean;
43
+ /** @beta Flag indicating the toolbar has a vertical orientation */
44
+ isVertical?: boolean;
43
45
  /** Insets at various breakpoints. */
44
46
  inset?: {
45
47
  default?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl';
@@ -143,6 +145,7 @@ class Toolbar extends Component<ToolbarProps, ToolbarState> {
143
145
  isStatic,
144
146
  inset,
145
147
  isSticky,
148
+ isVertical,
146
149
  ouiaId,
147
150
  numberOfFiltersText,
148
151
  customLabelGroupContent,
@@ -167,6 +170,7 @@ class Toolbar extends Component<ToolbarProps, ToolbarState> {
167
170
  isFullHeight && styles.modifiers.fullHeight,
168
171
  isStatic && styles.modifiers.static,
169
172
  isSticky && styles.modifiers.sticky,
173
+ isVertical && styles.modifiers.vertical,
170
174
  formatBreakpointMods(inset, styles, '', getBreakpoint(width)),
171
175
  colorVariant === 'primary' && styles.modifiers.primary,
172
176
  colorVariant === 'secondary' && styles.modifiers.secondary,
@@ -54,7 +54,7 @@ describe('Toolbar', () => {
54
54
  </ToolbarContent>
55
55
  </Toolbar>
56
56
  );
57
- expect(screen.getByTestId('toolbar')).not.toHaveClass('pf-m-no-padding');
57
+ expect(screen.getByTestId('toolbar')).not.toHaveClass(styles.modifiers.noPadding);
58
58
  });
59
59
 
60
60
  it(`should render toolbar with ${styles.modifiers.noPadding} class when hasNoPadding is true`, () => {
@@ -205,4 +205,37 @@ describe('Toolbar', () => {
205
205
  });
206
206
  });
207
207
  });
208
+
209
+ it(`Renders toolbar without ${styles.modifiers.vertical} by default`, () => {
210
+ render(
211
+ <Toolbar data-testid="Toolbar-test-is-not-vertical">
212
+ <ToolbarContent>
213
+ <ToolbarItem>Test</ToolbarItem>
214
+ <ToolbarItem>Test 2</ToolbarItem>
215
+ <ToolbarItem variant="separator" />
216
+ <ToolbarItem>Test 3 </ToolbarItem>
217
+ </ToolbarContent>
218
+ </Toolbar>
219
+ );
220
+ expect(screen.getByTestId('Toolbar-test-is-not-vertical')).not.toHaveClass(styles.modifiers.vertical);
221
+ });
222
+
223
+ it('Renders with class ${styles.modifiers.vertical} when isVertical is true', () => {
224
+ const items = (
225
+ <Fragment>
226
+ <ToolbarItem>Test</ToolbarItem>
227
+ <ToolbarItem>Test 2</ToolbarItem>
228
+ <ToolbarItem variant="separator" />
229
+ <ToolbarItem>Test 3 </ToolbarItem>
230
+ </Fragment>
231
+ );
232
+
233
+ render(
234
+ <Toolbar id="toolbar" isVertical data-testid="Toolbar-test-is-vertical">
235
+ <ToolbarContent>{items}</ToolbarContent>
236
+ </Toolbar>
237
+ );
238
+
239
+ expect(screen.getByTestId('Toolbar-test-is-vertical')).toHaveClass(styles.modifiers.vertical);
240
+ });
208
241
  });
@@ -35,6 +35,10 @@ export interface TreeViewDataItem {
35
35
  name: React.ReactNode;
36
36
  /** Title of a tree view item. Only used in compact presentations. */
37
37
  title?: React.ReactNode;
38
+ /** Flag indicating if the tree view item is disabled. */
39
+ isDisabled?: boolean;
40
+ /** Flag indicating if the tree view item toggle is disabled. */
41
+ isToggleDisabled?: boolean;
38
42
  }
39
43
 
40
44
  /** The main tree view component. */
@@ -158,6 +162,8 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
158
162
  id={item.id}
159
163
  isExpanded={allExpanded}
160
164
  isSelectable={hasSelectableNodes}
165
+ isDisabled={item.isDisabled}
166
+ isToggleDisabled={item.isToggleDisabled}
161
167
  defaultExpanded={item.defaultExpanded !== undefined ? item.defaultExpanded : defaultAllExpanded}
162
168
  onSelect={onSelect}
163
169
  onCheck={onCheck}
@@ -46,6 +46,10 @@ export interface TreeViewListItemProps {
46
46
  * children.
47
47
  */
48
48
  isSelectable?: boolean;
49
+ /** Flag indicating if the tree view item is disabled. */
50
+ isDisabled?: boolean;
51
+ /** Flag indicating if the tree view item toggle is disabled. */
52
+ isToggleDisabled?: boolean;
49
53
  /** Data structure of tree view item. */
50
54
  itemData?: TreeViewDataItem;
51
55
  /** Internal content of a tree view item. */
@@ -81,6 +85,8 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
81
85
  title,
82
86
  id,
83
87
  isExpanded,
88
+ isDisabled = false,
89
+ isToggleDisabled = false,
84
90
  defaultExpanded = false,
85
91
  children = null,
86
92
  onSelect,
@@ -125,12 +131,13 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
125
131
  }
126
132
 
127
133
  const ToggleComponent = hasCheckbox || isSelectable ? 'button' : 'span';
134
+ const hasDisabledToggleClass = isToggleDisabled || (Component === 'button' && isDisabled);
128
135
 
129
136
  const renderToggle = (randomId: string) => (
130
137
  <ToggleComponent
131
- className={css(styles.treeViewNodeToggle)}
138
+ className={css(styles.treeViewNodeToggle, hasDisabledToggleClass && styles.modifiers.disabled)}
132
139
  onClick={(evt: React.MouseEvent) => {
133
- if (isSelectable || hasCheckbox) {
140
+ if (!isToggleDisabled && (isSelectable || hasCheckbox)) {
134
141
  if (internalIsExpanded) {
135
142
  onCollapse && onCollapse(evt, itemData, parentItem);
136
143
  } else {
@@ -138,12 +145,12 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
138
145
  }
139
146
  setIsExpanded(!internalIsExpanded);
140
147
  }
141
- if (isSelectable) {
148
+ if (!isToggleDisabled && isSelectable) {
142
149
  evt.stopPropagation();
143
150
  }
144
151
  }}
145
152
  {...((hasCheckbox || isSelectable) && { 'aria-labelledby': `label-${randomId}` })}
146
- {...(ToggleComponent === 'button' && { type: 'button' })}
153
+ {...(ToggleComponent === 'button' && { disabled: isToggleDisabled, type: 'button' })}
147
154
  tabIndex={-1}
148
155
  >
149
156
  <span className={css(styles.treeViewNodeToggleIcon)}>
@@ -162,6 +169,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
162
169
  ref={(elem) => {
163
170
  elem && (elem.indeterminate = checkProps.checked === null);
164
171
  }}
172
+ disabled={isDisabled || checkProps.disabled}
165
173
  {...checkProps}
166
174
  checked={isCheckboxChecked}
167
175
  id={randomId}
@@ -180,7 +188,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
180
188
  <>
181
189
  {isCompact && title && <span className={css(styles.treeViewNodeTitle)}>{title}</span>}
182
190
  {isSelectable ? (
183
- <button tabIndex={-1} className={css(styles.treeViewNodeText)} type="button">
191
+ <button tabIndex={-1} className={css(styles.treeViewNodeText)} type="button" disabled={isDisabled}>
184
192
  {name}
185
193
  </button>
186
194
  ) : (
@@ -220,6 +228,9 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
220
228
  })
221
229
  );
222
230
 
231
+ const isFullyDisabled =
232
+ (Component === 'button' && isDisabled) || (Component !== 'button' && isDisabled && isToggleDisabled);
233
+
223
234
  return (
224
235
  <li
225
236
  id={id}
@@ -229,16 +240,21 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
229
240
  tabIndex={-1}
230
241
  {...(hasCheckbox && { 'aria-checked': isCheckboxChecked })}
231
242
  {...(!hasCheckbox && { 'aria-selected': isSelected })}
243
+ {...(isFullyDisabled && { 'aria-disabled': true })}
232
244
  >
233
245
  <div className={css(styles.treeViewContent)}>
234
246
  <GenerateId prefix={isSelectable ? 'selectable-id' : 'checkbox-id'}>
235
247
  {(randomId) => (
236
248
  <Component
237
- className={css(styles.treeViewNode, isSelected && styles.modifiers.current)}
249
+ className={css(
250
+ styles.treeViewNode,
251
+ isSelected && styles.modifiers.current,
252
+ isDisabled && styles.modifiers.disabled
253
+ )}
238
254
  onClick={(evt: React.MouseEvent) => {
239
255
  if (!hasCheckbox) {
240
- onSelect && onSelect(evt, itemData, parentItem);
241
- if (!isSelectable && children && evt.isDefaultPrevented() !== true) {
256
+ !isDisabled && onSelect && onSelect(evt, itemData, parentItem);
257
+ if (!isDisabled && !isSelectable && children && evt.isDefaultPrevented() !== true) {
242
258
  if (internalIsExpanded) {
243
259
  onCollapse && onCollapse(evt, itemData, parentItem);
244
260
  } else {
@@ -250,7 +266,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
250
266
  }}
251
267
  {...(hasCheckbox && { htmlFor: randomId })}
252
268
  {...((hasCheckbox || (isSelectable && children)) && { id: `label-${randomId}` })}
253
- {...(Component === 'button' && { type: 'button' })}
269
+ {...(Component === 'button' && { type: 'button', disabled: isDisabled })}
254
270
  >
255
271
  <span className={css(styles.treeViewNodeContainer)}>
256
272
  {children && renderToggle(randomId)}
@@ -297,6 +313,8 @@ export const TreeViewListItem = memo(TreeViewListItemBase, (prevProps, nextProps
297
313
  prevProps.id !== nextProps.id ||
298
314
  prevProps.isExpanded !== nextProps.isExpanded ||
299
315
  prevProps.defaultExpanded !== nextProps.defaultExpanded ||
316
+ prevProps.isDisabled !== nextProps.isDisabled ||
317
+ prevProps.isToggleDisabled !== nextProps.isToggleDisabled ||
300
318
  prevProps.onSelect !== nextProps.onSelect ||
301
319
  prevProps.onCheck !== nextProps.onCheck ||
302
320
  prevProps.onExpand !== nextProps.onExpand ||
@@ -415,6 +415,249 @@ test(`Does not render ${styles.treeViewNode} element with ${styles.modifiers.cur
415
415
  expect(treeViewNode).not.toHaveClass(styles.modifiers.current);
416
416
  });
417
417
 
418
+ // Assisted by Cursor AI
419
+ describe('isDisabled prop', () => {
420
+ const user = userEvent.setup();
421
+ const onSelectMock = jest.fn();
422
+ const onExpandMock = jest.fn();
423
+ const onCollapseMock = jest.fn();
424
+
425
+ beforeEach(() => {
426
+ jest.clearAllMocks();
427
+ });
428
+
429
+ test(`Renders button with disabled attribute and ${styles.modifiers.disabled} class when isDisabled is true`, () => {
430
+ render(<TreeViewListItem isDisabled {...requiredProps} />);
431
+
432
+ const button = screen.getByRole('button', { name: requiredProps.name });
433
+ expect(button).toBeDisabled();
434
+ expect(button).toHaveClass(styles.modifiers.disabled);
435
+ });
436
+
437
+ test('Does not render button with disabled attribute when isDisabled is false', () => {
438
+ render(<TreeViewListItem isDisabled={false} {...requiredProps} />);
439
+
440
+ expect(screen.getByRole('button', { name: requiredProps.name })).not.toBeDisabled();
441
+ });
442
+
443
+ test('Does not call onSelect when isDisabled is true', async () => {
444
+ render(<TreeViewListItem isDisabled onSelect={onSelectMock} {...requiredProps} />);
445
+
446
+ await user.click(screen.getByRole('button', { name: requiredProps.name }));
447
+
448
+ expect(onSelectMock).not.toHaveBeenCalled();
449
+ });
450
+
451
+ test('Does not call onExpand when isDisabled is true and item is collapsed', async () => {
452
+ render(
453
+ <TreeViewListItem isDisabled onExpand={onExpandMock} {...requiredProps}>
454
+ Content
455
+ </TreeViewListItem>
456
+ );
457
+
458
+ await user.click(screen.getByRole('button', { name: requiredProps.name }));
459
+
460
+ expect(onExpandMock).not.toHaveBeenCalled();
461
+ });
462
+
463
+ test('Does not call onCollapse when isDisabled is true and item is expanded', async () => {
464
+ render(
465
+ <TreeViewListItem isDisabled isExpanded onCollapse={onCollapseMock} {...requiredProps}>
466
+ Content
467
+ </TreeViewListItem>
468
+ );
469
+
470
+ await user.click(screen.getByRole('button', { name: requiredProps.name }));
471
+
472
+ expect(onCollapseMock).not.toHaveBeenCalled();
473
+ });
474
+
475
+ test(`Renders toggle with ${styles.modifiers.disabled} class when isDisabled is true for default TreeViewListItem`, () => {
476
+ render(
477
+ <TreeViewListItem isDisabled {...requiredProps}>
478
+ Content
479
+ </TreeViewListItem>
480
+ );
481
+
482
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
483
+ expect(toggle).toHaveClass(styles.modifiers.disabled);
484
+ });
485
+
486
+ test('Renders treeitem with aria-disabled when isDisabled is true for default TreeViewListItem', () => {
487
+ render(<TreeViewListItem isDisabled {...requiredProps} />);
488
+
489
+ expect(screen.getByRole('treeitem')).toHaveAttribute('aria-disabled', 'true');
490
+ });
491
+
492
+ test('Renders treeitem with aria-disabled when isDisabled and isToggleDisabled are true and isSelectable is true', () => {
493
+ render(
494
+ <TreeViewListItem isSelectable isDisabled isToggleDisabled {...requiredProps}>
495
+ Content
496
+ </TreeViewListItem>
497
+ );
498
+
499
+ expect(screen.getByRole('treeitem')).toHaveAttribute('aria-disabled', 'true');
500
+ });
501
+
502
+ test('Renders treeitem with aria-disabled when isDisabled and isToggleDisabled are true and hasCheckbox is true', () => {
503
+ render(
504
+ <TreeViewListItem hasCheckbox isDisabled isToggleDisabled {...requiredProps}>
505
+ Content
506
+ </TreeViewListItem>
507
+ );
508
+
509
+ expect(screen.getByRole('treeitem')).toHaveAttribute('aria-disabled', 'true');
510
+ });
511
+
512
+ test('Does not render treeitem with aria-disabled when isDisabled is true, isToggleDisabled is false, and isSelectable is true', () => {
513
+ render(
514
+ <TreeViewListItem isSelectable isDisabled {...requiredProps}>
515
+ Content
516
+ </TreeViewListItem>
517
+ );
518
+
519
+ expect(screen.getByRole('treeitem')).not.toHaveAttribute('aria-disabled');
520
+ });
521
+
522
+ test('Does not render treeitem with aria-disabled when isDisabled is false', () => {
523
+ render(<TreeViewListItem isDisabled={false} {...requiredProps} />);
524
+
525
+ expect(screen.getByRole('treeitem')).not.toHaveAttribute('aria-disabled');
526
+ });
527
+ });
528
+
529
+ // Assisted by Cursor AI
530
+ describe('isToggleDisabled prop', () => {
531
+ const user = userEvent.setup();
532
+ const onExpandMock = jest.fn();
533
+ const onCollapseMock = jest.fn();
534
+
535
+ beforeEach(() => {
536
+ jest.clearAllMocks();
537
+ });
538
+
539
+ test(`Renders toggle button with disabled attribute and ${styles.modifiers.disabled} class when isToggleDisabled is true and hasCheckbox is passed`, () => {
540
+ render(
541
+ <TreeViewListItem hasCheckbox isToggleDisabled {...requiredProps}>
542
+ Content
543
+ </TreeViewListItem>
544
+ );
545
+
546
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling?.previousElementSibling;
547
+ expect(toggle).toBeDisabled();
548
+ expect(toggle).toHaveClass(styles.modifiers.disabled);
549
+ });
550
+
551
+ test(`Renders toggle button with disabled attribute and ${styles.modifiers.disabled} class when isToggleDisabled is true and isSelectable is passed`, () => {
552
+ render(
553
+ <TreeViewListItem isSelectable isToggleDisabled {...requiredProps}>
554
+ Content
555
+ </TreeViewListItem>
556
+ );
557
+
558
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
559
+ expect(toggle).toBeDisabled();
560
+ expect(toggle).toHaveClass(styles.modifiers.disabled);
561
+ });
562
+
563
+ test('Does not render toggle span with disabled attribute when isToggleDisabled is true (toggle is span by default)', () => {
564
+ render(
565
+ <TreeViewListItem isToggleDisabled {...requiredProps}>
566
+ Content
567
+ </TreeViewListItem>
568
+ );
569
+
570
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
571
+ expect(toggle?.tagName).toBe('SPAN');
572
+ expect(toggle).not.toHaveAttribute('disabled');
573
+ });
574
+
575
+ test('Does not call onExpand when isToggleDisabled is true and hasCheckbox is passed', async () => {
576
+ render(
577
+ <TreeViewListItem hasCheckbox isToggleDisabled onExpand={onExpandMock} {...requiredProps}>
578
+ Content
579
+ </TreeViewListItem>
580
+ );
581
+
582
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling?.previousElementSibling;
583
+ await user.click(toggle as Element);
584
+
585
+ expect(onExpandMock).not.toHaveBeenCalled();
586
+ });
587
+
588
+ test('Does not call onCollapse when isToggleDisabled is true and hasCheckbox is passed', async () => {
589
+ render(
590
+ <TreeViewListItem hasCheckbox isToggleDisabled isExpanded onCollapse={onCollapseMock} {...requiredProps}>
591
+ Content
592
+ </TreeViewListItem>
593
+ );
594
+
595
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling?.previousElementSibling;
596
+ await user.click(toggle as Element);
597
+
598
+ expect(onCollapseMock).not.toHaveBeenCalled();
599
+ });
600
+
601
+ test('Does not call onExpand when isToggleDisabled is true and isSelectable is passed', async () => {
602
+ render(
603
+ <TreeViewListItem isSelectable isToggleDisabled onExpand={onExpandMock} {...requiredProps}>
604
+ Content
605
+ </TreeViewListItem>
606
+ );
607
+
608
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
609
+ await user.click(toggle as Element);
610
+
611
+ expect(onExpandMock).not.toHaveBeenCalled();
612
+ });
613
+
614
+ test('Does not call onCollapse when isToggleDisabled is true and isSelectable is passed', async () => {
615
+ render(
616
+ <TreeViewListItem isSelectable isToggleDisabled isExpanded onCollapse={onCollapseMock} {...requiredProps}>
617
+ Content
618
+ </TreeViewListItem>
619
+ );
620
+
621
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
622
+ await user.click(toggle as Element);
623
+
624
+ expect(onCollapseMock).not.toHaveBeenCalled();
625
+ });
626
+
627
+ test(`Renders toggle span with ${styles.modifiers.disabled} class when isDisabled is true for default TreeViewListItem`, () => {
628
+ render(
629
+ <TreeViewListItem isDisabled {...requiredProps}>
630
+ Content
631
+ </TreeViewListItem>
632
+ );
633
+
634
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
635
+ expect(toggle).toHaveClass(styles.modifiers.disabled);
636
+ });
637
+
638
+ test(`Does not render toggle with ${styles.modifiers.disabled} class when isDisabled is true and hasCheckbox is true`, () => {
639
+ render(
640
+ <TreeViewListItem hasCheckbox isDisabled {...requiredProps}>
641
+ Content
642
+ </TreeViewListItem>
643
+ );
644
+
645
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling?.previousElementSibling;
646
+ expect(toggle).not.toHaveClass(styles.modifiers.disabled);
647
+ });
648
+
649
+ test(`Does not render toggle with ${styles.modifiers.disabled} class when isDisabled is true and isSelectable is true`, () => {
650
+ render(
651
+ <TreeViewListItem isSelectable isDisabled {...requiredProps}>
652
+ Content
653
+ </TreeViewListItem>
654
+ );
655
+
656
+ const toggle = screen.getByText(requiredProps.name).previousElementSibling;
657
+ expect(toggle).not.toHaveClass(styles.modifiers.disabled);
658
+ });
659
+ });
660
+
418
661
  describe('Callback props', () => {
419
662
  const user = userEvent.setup();
420
663
  const compareItemsMock = jest.fn();
@@ -4,6 +4,7 @@ import { css } from '@patternfly/react-styles';
4
4
  import { Tooltip, TooltipPosition, TooltipProps } from '../Tooltip';
5
5
  import { getReferenceElement } from '../../helpers';
6
6
  import { getResizeObserver } from '../../helpers/resizeObserver';
7
+ import { debounce } from '../../helpers/util';
7
8
 
8
9
  export enum TruncatePosition {
9
10
  start = 'start',
@@ -130,12 +131,12 @@ const TruncateBase: React.FunctionComponent<TruncateProps> = ({
130
131
  const totalTextWidth = calculateTotalTextWidth(textElement, trailingNumChars, content);
131
132
  const textWidth = position === 'middle' ? totalTextWidth : textElement.scrollWidth;
132
133
 
133
- const handleResize = () => {
134
+ const debouncedHandleResize = debounce(() => {
134
135
  const parentWidth = getActualWidth(parentElement);
135
136
  setIsTruncated(textWidth >= parentWidth);
136
- };
137
+ }, 500);
137
138
 
138
- const observer = getResizeObserver(parentElement, handleResize);
139
+ const observer = getResizeObserver(parentElement, debouncedHandleResize);
139
140
 
140
141
  return () => {
141
142
  observer();
@@ -147,7 +148,7 @@ const TruncateBase: React.FunctionComponent<TruncateProps> = ({
147
148
  if (shouldRenderByMaxChars) {
148
149
  setIsTruncated(content.length > maxCharsDisplayed);
149
150
  }
150
- }, [shouldRenderByMaxChars]);
151
+ }, [shouldRenderByMaxChars, content.length, maxCharsDisplayed]);
151
152
 
152
153
  useEffect(() => {
153
154
  setShouldRenderByMaxChars(maxCharsDisplayed > 0);