@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
@@ -62,6 +62,10 @@ export interface ExpandableSectionProps extends Omit<React.HTMLProps<HTMLDivElem
62
62
  toggleAriaLabel?: string;
63
63
  /** Accessible name via space delimtted list of IDs for the expandable section toggle. */
64
64
  toggleAriaLabelledBy?: string;
65
+ /** Icon shown in toggle when variant is not truncated. */
66
+ toggleIcon?: React.ReactNode;
67
+ /** Whether to show a toggle icon when variant is not truncated. If omitted, it is important to ensure the current state of the ExpandableSection is conveyed, most likely by having dynamic toggle text. */
68
+ hasToggleIcon?: boolean;
65
69
  /** Truncates the expandable content to the specified number of lines when using the
66
70
  * "truncate" variant.
67
71
  */
@@ -74,6 +78,11 @@ export interface ExpandableSectionProps extends Omit<React.HTMLProps<HTMLDivElem
74
78
  * animation will not occur.
75
79
  */
76
80
  direction?: 'up' | 'down';
81
+ /** The HTML element to use for the toggle wrapper. Can be 'div' (default) or any heading level.
82
+ * When using heading elements, the button will be rendered inside the heading for proper semantics.
83
+ * This is useful when the toggle text should function as a heading in the document structure.
84
+ */
85
+ toggleWrapper?: 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
77
86
  }
78
87
 
79
88
  interface ExpandableSectionState {
@@ -206,6 +215,8 @@ class ExpandableSection extends Component<ExpandableSectionProps, ExpandableSect
206
215
  toggleContent,
207
216
  toggleAriaLabel,
208
217
  toggleAriaLabelledBy,
218
+ toggleIcon = <AngleRightIcon />,
219
+ hasToggleIcon = true,
209
220
  children,
210
221
  isExpanded,
211
222
  isDetached,
@@ -218,6 +229,7 @@ class ExpandableSection extends Component<ExpandableSectionProps, ExpandableSect
218
229
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
219
230
  truncateMaxLines,
220
231
  direction,
232
+ toggleWrapper = 'div',
221
233
  ...props
222
234
  } = this.props;
223
235
 
@@ -250,9 +262,10 @@ class ExpandableSection extends Component<ExpandableSectionProps, ExpandableSect
250
262
 
251
263
  const computedToggleContent =
252
264
  typeof toggleContent === 'function' ? toggleContent(propOrStateIsExpanded) : toggleContent;
265
+ const ToggleWrapper = toggleWrapper as any;
253
266
 
254
267
  const expandableToggle = !isDetached && (
255
- <div className={`${styles.expandableSection}__toggle`}>
268
+ <ToggleWrapper className={`${styles.expandableSection}__toggle`}>
256
269
  <Button
257
270
  variant="link"
258
271
  {...(variant === ExpandableSectionVariant.truncate && { isInline: true })}
@@ -260,19 +273,16 @@ class ExpandableSection extends Component<ExpandableSectionProps, ExpandableSect
260
273
  aria-controls={uniqueContentId}
261
274
  id={uniqueToggleId}
262
275
  onClick={(event) => onToggle(event, !propOrStateIsExpanded)}
263
- {...(variant !== ExpandableSectionVariant.truncate && {
264
- icon: (
265
- <span className={css(styles.expandableSectionToggleIcon)}>
266
- <AngleRightIcon />
267
- </span>
268
- )
269
- })}
276
+ {...(variant !== ExpandableSectionVariant.truncate &&
277
+ hasToggleIcon && {
278
+ icon: <span className={css(styles.expandableSectionToggleIcon)}>{toggleIcon}</span>
279
+ })}
270
280
  aria-label={toggleAriaLabel}
271
281
  aria-labelledby={toggleAriaLabelledBy}
272
282
  >
273
283
  {computedToggleContent || computedToggleText}
274
284
  </Button>
275
- </div>
285
+ </ToggleWrapper>
276
286
  );
277
287
 
278
288
  return (
@@ -34,6 +34,11 @@ export interface ExpandableSectionToggleProps extends Omit<React.HTMLProps<HTMLD
34
34
  toggleAriaLabel?: string;
35
35
  /** Accessible name via space delimtted list of IDs for the expandable section toggle. */
36
36
  toggleAriaLabelledBy?: string;
37
+ /** The HTML element to use for the toggle wrapper. Can be 'div' (default) or any heading level.
38
+ * When using heading elements, the button will be rendered inside the heading for proper semantics.
39
+ * This is useful when the toggle text should function as a heading in the document structure.
40
+ */
41
+ toggleWrapper?: 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
37
42
  }
38
43
 
39
44
  export const ExpandableSectionToggle: React.FunctionComponent<ExpandableSectionToggleProps> = ({
@@ -48,45 +53,50 @@ export const ExpandableSectionToggle: React.FunctionComponent<ExpandableSectionT
48
53
  isDetached,
49
54
  toggleAriaLabel,
50
55
  toggleAriaLabelledBy,
56
+ toggleWrapper = 'div',
51
57
  ...props
52
- }: ExpandableSectionToggleProps) => (
53
- <div
54
- className={css(
55
- styles.expandableSection,
56
- isExpanded && styles.modifiers.expanded,
57
- hasTruncatedContent && styles.modifiers.truncate,
58
- isDetached && 'pf-m-detached',
59
- className
60
- )}
61
- {...props}
62
- >
63
- <div className={`${styles.expandableSection}__toggle`}>
64
- <Button
65
- variant="link"
66
- {...(hasTruncatedContent && { isInline: true })}
67
- aria-expanded={isExpanded}
68
- aria-controls={contentId}
69
- onClick={() => onToggle(!isExpanded)}
70
- id={toggleId}
71
- {...(!hasTruncatedContent && {
72
- icon: (
73
- <span
74
- className={css(
75
- styles.expandableSectionToggleIcon,
76
- isExpanded && direction === 'up' && styles.modifiers.expandTop // TODO: next breaking change move this class to the outer styles.expandableSection wrapper
77
- )}
78
- >
79
- <AngleRightIcon />
80
- </span>
81
- )
82
- })}
83
- aria-label={toggleAriaLabel}
84
- aria-labelledby={toggleAriaLabelledBy}
85
- >
86
- {children}
87
- </Button>
58
+ }: ExpandableSectionToggleProps) => {
59
+ const ToggleWrapper = toggleWrapper as any;
60
+
61
+ return (
62
+ <div
63
+ className={css(
64
+ styles.expandableSection,
65
+ isExpanded && styles.modifiers.expanded,
66
+ hasTruncatedContent && styles.modifiers.truncate,
67
+ isDetached && 'pf-m-detached',
68
+ className
69
+ )}
70
+ {...props}
71
+ >
72
+ <ToggleWrapper className={`${styles.expandableSection}__toggle`}>
73
+ <Button
74
+ variant="link"
75
+ {...(hasTruncatedContent && { isInline: true })}
76
+ aria-expanded={isExpanded}
77
+ aria-controls={contentId}
78
+ onClick={() => onToggle(!isExpanded)}
79
+ id={toggleId}
80
+ {...(!hasTruncatedContent && {
81
+ icon: (
82
+ <span
83
+ className={css(
84
+ styles.expandableSectionToggleIcon,
85
+ isExpanded && direction === 'up' && styles.modifiers.expandTop // TODO: next breaking change move this class to the outer styles.expandableSection wrapper
86
+ )}
87
+ >
88
+ <AngleRightIcon />
89
+ </span>
90
+ )
91
+ })}
92
+ aria-label={toggleAriaLabel}
93
+ aria-labelledby={toggleAriaLabelledBy}
94
+ >
95
+ {children}
96
+ </Button>
97
+ </ToggleWrapper>
88
98
  </div>
89
- </div>
90
- );
99
+ );
100
+ };
91
101
 
92
102
  ExpandableSectionToggle.displayName = 'ExpandableSectionToggle';
@@ -3,6 +3,7 @@ import userEvent from '@testing-library/user-event';
3
3
 
4
4
  import { ExpandableSection, ExpandableSectionVariant } from '../ExpandableSection';
5
5
  import styles from '@patternfly/react-styles/css/components/ExpandableSection/expandable-section';
6
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
6
7
 
7
8
  const props = { contentId: 'content-id', toggleId: 'toggle-id' };
8
9
 
@@ -208,6 +209,7 @@ test('Renders with aria-labelledby when toggleAriaLabelledBy is passed', () => {
208
209
 
209
210
  expect(screen.getByRole('button')).toHaveAccessibleName('Test label');
210
211
  });
212
+
211
213
  test('Renders toggleContent as a function in uncontrolled mode (collapsed)', () => {
212
214
  render(
213
215
  <ExpandableSection toggleContent={(isExpanded) => (isExpanded ? 'Hide details' : 'Show details')}>
@@ -242,3 +244,61 @@ test('Renders toggleContent as a function in controlled mode', () => {
242
244
 
243
245
  expect(screen.getByRole('button', { name: 'Collapse' })).toBeInTheDocument();
244
246
  });
247
+
248
+ test('Renders with default div wrapper when toggleWrapper is not specified', () => {
249
+ render(<ExpandableSection data-testid="test-id">Test content</ExpandableSection>);
250
+
251
+ const toggle = screen.getByRole('button').parentElement;
252
+ expect(toggle?.tagName).toBe('DIV');
253
+ });
254
+
255
+ test('Renders with h2 wrapper when toggleWrapper="h2"', () => {
256
+ render(
257
+ <ExpandableSection data-testid="test-id" toggleWrapper="h2">
258
+ Test content
259
+ </ExpandableSection>
260
+ );
261
+
262
+ expect(screen.getByRole('heading', { level: 2 })).toBeInTheDocument();
263
+ });
264
+
265
+ test('Renders with div wrapper when toggleWrapper="div"', () => {
266
+ render(
267
+ <ExpandableSection data-testid="test-id" toggleWrapper="div">
268
+ Test content
269
+ </ExpandableSection>
270
+ );
271
+
272
+ const toggle = screen.getByRole('button').parentElement;
273
+ expect(toggle?.tagName).toBe('DIV');
274
+ });
275
+
276
+ test('Can render custom toggle icon', () => {
277
+ render(<ExpandableSection toggleIcon={<BellIcon data-testid="bell-icon" />}>Test content</ExpandableSection>);
278
+
279
+ expect(screen.getByTestId('bell-icon')).toBeInTheDocument();
280
+ });
281
+
282
+ test('Does not render toggle icon when hasToggleIcon is false', () => {
283
+ render(<ExpandableSection hasToggleIcon={false}>Test content</ExpandableSection>);
284
+
285
+ const button = screen.getByRole('button');
286
+ expect(button.querySelector('.pf-v6-c-expandable-section__toggle-icon')).not.toBeInTheDocument();
287
+ });
288
+
289
+ test('Does not render custom toggle icon when hasToggleIcon is false', () => {
290
+ render(
291
+ <ExpandableSection toggleIcon={<BellIcon data-testid="bell-icon" />} hasToggleIcon={false}>
292
+ Test content
293
+ </ExpandableSection>
294
+ );
295
+
296
+ expect(screen.queryByTestId('bell-icon')).not.toBeInTheDocument();
297
+ });
298
+
299
+ test('Renders toggle icon by default when hasToggleIcon is true', () => {
300
+ render(<ExpandableSection>Test content</ExpandableSection>);
301
+
302
+ const button = screen.getByRole('button');
303
+ expect(button.querySelector('.pf-v6-c-expandable-section__toggle-icon')).toBeInTheDocument();
304
+ });
@@ -47,3 +47,31 @@ test('Renders with aria-labelledby when toggleAriaLabelledBy is passed', () => {
47
47
 
48
48
  expect(screen.getByRole('button')).toHaveAccessibleName('Test label');
49
49
  });
50
+
51
+ test('Renders with default div wrapper when toggleWrapper is not specified', () => {
52
+ render(<ExpandableSectionToggle data-testid="test-id">Toggle test</ExpandableSectionToggle>);
53
+
54
+ const toggle = screen.getByRole('button').parentElement;
55
+ expect(toggle?.tagName).toBe('DIV');
56
+ });
57
+
58
+ test('Renders with h2 wrapper when toggleWrapper="h2"', () => {
59
+ render(
60
+ <ExpandableSectionToggle data-testid="test-id" toggleWrapper="h2">
61
+ Toggle test
62
+ </ExpandableSectionToggle>
63
+ );
64
+
65
+ expect(screen.getByRole('heading', { level: 2 })).toBeInTheDocument();
66
+ });
67
+
68
+ test('Renders with div wrapper when toggleWrapper="div"', () => {
69
+ render(
70
+ <ExpandableSectionToggle data-testid="test-id" toggleWrapper="div">
71
+ Toggle test
72
+ </ExpandableSectionToggle>
73
+ );
74
+
75
+ const toggle = screen.getByRole('button').parentElement;
76
+ expect(toggle?.tagName).toBe('DIV');
77
+ });
@@ -70,6 +70,14 @@ By using the `toggleContent` prop, you can pass in content other than a simple s
70
70
 
71
71
  ```
72
72
 
73
+ ### With heading semantics
74
+
75
+ When the toggle text should function as a heading in the document structure, use the `toggleWrapper` prop to specify a heading element (h1-h6). This ensures proper semantic structure for screen readers and other assistive technologies. The component automatically uses a native button element when heading wrappers are used, allowing the heading styles to display properly.
76
+
77
+ ```ts file="ExpandableSectionWithHeading.tsx"
78
+
79
+ ```
80
+
73
81
  ### Truncate expansion
74
82
 
75
83
  By passing in `variant="truncate"`, the expandable content will be visible up to a maximum number of lines before being truncated, with the toggle revealing or hiding the truncated content. By default the expandable content will truncate after 3 lines, and this can be customized by also passing in the `truncateMaxLines` prop.
@@ -1,5 +1,5 @@
1
1
  import { useState } from 'react';
2
- import { ExpandableSection, Badge } from '@patternfly/react-core';
2
+ import { ExpandableSection, Badge, Stack, StackItem } from '@patternfly/react-core';
3
3
  import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
4
4
 
5
5
  export const ExpandableSectionCustomToggle: React.FunctionComponent = () => {
@@ -10,20 +10,35 @@ export const ExpandableSectionCustomToggle: React.FunctionComponent = () => {
10
10
  };
11
11
 
12
12
  return (
13
- <ExpandableSection
14
- toggleContent={
15
- <div>
16
- <span>You can also use icons </span>
17
- <CheckCircleIcon />
18
- <span> or badges </span>
19
- <Badge isRead={true}>4</Badge>
20
- <span> !</span>
21
- </div>
22
- }
23
- onToggle={onToggle}
24
- isExpanded={isExpanded}
25
- >
26
- This content is visible only when the component is expanded.
27
- </ExpandableSection>
13
+ <Stack hasGutter>
14
+ <StackItem>
15
+ <h3>Custom Toggle Content</h3>
16
+ <p>You can use custom content such as icons and badges in the toggle:</p>
17
+ <ExpandableSection
18
+ toggleContent={
19
+ <div>
20
+ <span>You can also use icons </span>
21
+ <CheckCircleIcon />
22
+ <span> or badges </span>
23
+ <Badge isRead={true}>4</Badge>
24
+ <span> !</span>
25
+ </div>
26
+ }
27
+ onToggle={onToggle}
28
+ isExpanded={isExpanded}
29
+ >
30
+ This content is visible only when the component is expanded.
31
+ </ExpandableSection>
32
+ </StackItem>
33
+
34
+ <StackItem>
35
+ <h3>Accessibility Note</h3>
36
+ <p>
37
+ <strong>Important:</strong> If you need the toggle text to function as a heading in the document structure, do
38
+ NOT put heading elements (h1-h6) inside the <code>toggleContent</code> prop, as this creates invalid HTML
39
+ structure. Instead, use the <code>toggleWrapper</code> prop.
40
+ </p>
41
+ </StackItem>
42
+ </Stack>
28
43
  );
29
44
  };
@@ -0,0 +1,89 @@
1
+ import { useState, MouseEvent } from 'react';
2
+ import { ExpandableSection, ExpandableSectionToggle, Stack, StackItem } from '@patternfly/react-core';
3
+ import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
4
+
5
+ export const ExpandableSectionWithHeading = () => {
6
+ const [isExpanded1, setIsExpanded1] = useState(false);
7
+ const [isExpanded2, setIsExpanded2] = useState(false);
8
+ const [isExpandedDetached, setIsExpandedDetached] = useState(false);
9
+
10
+ const onToggle1 = (_event: MouseEvent, isExpanded: boolean) => {
11
+ setIsExpanded1(isExpanded);
12
+ };
13
+
14
+ const onToggle2 = (_event: MouseEvent, isExpanded: boolean) => {
15
+ setIsExpanded2(isExpanded);
16
+ };
17
+
18
+ const onToggleDetached = (isExpanded: boolean) => {
19
+ setIsExpandedDetached(isExpanded);
20
+ };
21
+
22
+ return (
23
+ <Stack hasGutter>
24
+ <StackItem>
25
+ <h4>Document with Expandable Sections</h4>
26
+ <p>This demonstrates how to use expandable sections with proper heading semantics.</p>
27
+
28
+ {/* Using toggleWrapper prop for proper heading semantics */}
29
+ <ExpandableSection
30
+ toggleWrapper="h5"
31
+ toggleText="Toggle as a heading"
32
+ onToggle={onToggle1}
33
+ isExpanded={isExpanded1}
34
+ >
35
+ <p>
36
+ This content is visible only when the component is expanded. The toggle text above functions as a proper
37
+ heading in the document structure, which is important for screen readers and other assistive technologies.
38
+ </p>
39
+ <p>
40
+ When using the <code>toggleWrapper</code> prop with heading elements (h1-h6), the button is rendered inside
41
+ the heading element, maintaining proper semantic structure.
42
+ </p>
43
+ </ExpandableSection>
44
+ </StackItem>
45
+
46
+ <StackItem>
47
+ <h4>Detached Variant with Heading</h4>
48
+ <p>You can also use the detached variant with heading semantics:</p>
49
+
50
+ <ExpandableSectionToggle
51
+ toggleWrapper="h5"
52
+ toggleId="detached-heading-toggle"
53
+ contentId="detached-heading-content"
54
+ isExpanded={isExpandedDetached}
55
+ onToggle={onToggleDetached}
56
+ >
57
+ Detached Toggle with Heading
58
+ </ExpandableSectionToggle>
59
+
60
+ <ExpandableSection
61
+ isDetached
62
+ toggleId="detached-heading-toggle"
63
+ contentId="detached-heading-content"
64
+ isExpanded={isExpandedDetached}
65
+ >
66
+ <p>This is detached content that can be positioned anywhere in the DOM.</p>
67
+ </ExpandableSection>
68
+ </StackItem>
69
+
70
+ <StackItem>
71
+ <h4>Custom Content with Heading</h4>
72
+ <p>You can also use custom content within heading wrappers:</p>
73
+
74
+ <ExpandableSection
75
+ toggleWrapper="h5"
76
+ toggleContent={
77
+ <span>
78
+ <CheckCircleIcon /> Custom Heading Content with Icon
79
+ </span>
80
+ }
81
+ onToggle={onToggle2}
82
+ isExpanded={isExpanded2}
83
+ >
84
+ <p>This expandable section uses custom content with an icon inside a heading wrapper.</p>
85
+ </ExpandableSection>
86
+ </StackItem>
87
+ </Stack>
88
+ );
89
+ };
@@ -172,29 +172,31 @@ export const FileUploadField: React.FunctionComponent<FileUploadFieldProps> = ({
172
172
  </InputGroupItem>
173
173
  </InputGroup>
174
174
  </div>
175
- <div className={styles.fileUploadFileDetails}>
176
- {!hideDefaultPreview && type === fileReaderType.text && (
177
- <TextArea
178
- readOnly={isReadOnly || (!!filename && !allowEditingUploadedText)}
179
- disabled={isDisabled}
180
- isRequired={isRequired}
181
- resizeOrientation={TextAreResizeOrientation.vertical}
182
- validated={validated}
183
- id={id}
184
- aria-label={ariaLabel}
185
- value={value as string}
186
- onChange={onTextAreaChange}
187
- onClick={onTextAreaClick}
188
- onBlur={onTextAreaBlur}
189
- placeholder={textAreaPlaceholder}
190
- />
191
- )}
192
- {isLoading && (
193
- <div className={styles.fileUploadFileDetailsSpinner}>
194
- <Spinner size={spinnerSize.lg} aria-valuetext={spinnerAriaValueText} />
195
- </div>
196
- )}
197
- </div>
175
+ {(isLoading || (!hideDefaultPreview && type === fileReaderType.text)) && (
176
+ <div className={styles.fileUploadFileDetails}>
177
+ {!hideDefaultPreview && type === fileReaderType.text && (
178
+ <TextArea
179
+ readOnly={isReadOnly || (!!filename && !allowEditingUploadedText)}
180
+ disabled={isDisabled}
181
+ isRequired={isRequired}
182
+ resizeOrientation={TextAreResizeOrientation.vertical}
183
+ validated={validated}
184
+ id={id}
185
+ aria-label={ariaLabel}
186
+ value={value as string}
187
+ onChange={onTextAreaChange}
188
+ onClick={onTextAreaClick}
189
+ onBlur={onTextAreaBlur}
190
+ placeholder={textAreaPlaceholder}
191
+ />
192
+ )}
193
+ {isLoading && (
194
+ <div className={styles.fileUploadFileDetailsSpinner}>
195
+ <Spinner size={spinnerSize.lg} aria-valuetext={spinnerAriaValueText} />
196
+ </div>
197
+ )}
198
+ </div>
199
+ )}
198
200
  {children}
199
201
  </div>
200
202
  );
@@ -56,8 +56,7 @@ export const FormGroup: React.FunctionComponent<FormGroupProps> = ({
56
56
  <span className={css(styles.formLabelText)}>{label}</span>
57
57
  {isRequired && (
58
58
  <span className={css(styles.formLabelRequired)} aria-hidden="true">
59
- {' '}
60
- {ASTERISK}
59
+ &nbsp;{ASTERISK}
61
60
  </span>
62
61
  )}
63
62
  </LabelComponent>
@@ -122,7 +122,7 @@ exports[`FormGroup should render form group variant with required label 1`] = `
122
122
  aria-hidden="true"
123
123
  class="pf-v6-c-form__label-required"
124
124
  >
125
- *
125
+  *
126
126
  </span>
127
127
  </label>
128
128
    
@@ -0,0 +1,102 @@
1
+ import styles from '@patternfly/react-styles/css/components/Hero/hero';
2
+ import { css } from '@patternfly/react-styles';
3
+ import heroBackgroundImageLight from '@patternfly/react-tokens/dist/esm/c_hero_BackgroundImage_light';
4
+ import heroBackgroundImageDark from '@patternfly/react-tokens/dist/esm/c_hero_BackgroundImage_dark';
5
+ import heroGradientStop1Light from '@patternfly/react-tokens/dist/esm/c_hero_gradient_stop_1_light';
6
+ import heroGradientStop2Light from '@patternfly/react-tokens/dist/esm/c_hero_gradient_stop_2_light';
7
+ import heroGradientStop3Light from '@patternfly/react-tokens/dist/esm/c_hero_gradient_stop_3_light';
8
+ import heroGradientStop1Dark from '@patternfly/react-tokens/dist/esm/c_hero_gradient_stop_1_dark';
9
+ import heroGradientStop2Dark from '@patternfly/react-tokens/dist/esm/c_hero_gradient_stop_2_dark';
10
+ import heroGradientStop3Dark from '@patternfly/react-tokens/dist/esm/c_hero_gradient_stop_3_dark';
11
+ import heroBodyWidth from '@patternfly/react-tokens/dist/esm/c_hero__body_Width';
12
+ import heroBodyMaxWidth from '@patternfly/react-tokens/dist/esm/c_hero__body_MaxWidth';
13
+
14
+ /** The main Hero component that allows adjusting of its background images and gradients in different color modes (such as light and dark). */
15
+
16
+ export interface HeroProps extends Omit<React.HTMLProps<HTMLDivElement>, 'content'> {
17
+ /** Content of the hero */
18
+ children?: React.ReactNode;
19
+ /** Additional classes added to the hero */
20
+ className?: string;
21
+ /** Light theme background image path of the hero */
22
+ backgroundSrcLight?: string;
23
+ /** Dark theme background image path of the hero */
24
+ backgroundSrcDark?: string;
25
+ /** Light theme gradient of the hero, taking any valid CSS color values for each stop property. */
26
+ gradientLight?: {
27
+ stop1?: string;
28
+ stop2?: string;
29
+ stop3?: string;
30
+ };
31
+ /** Dark theme gradient of the hero, taking any valid CSS color values for each stop property. */
32
+ gradientDark?: {
33
+ stop1?: string;
34
+ stop2?: string;
35
+ stop3?: string;
36
+ };
37
+ /** Flag indicating whether glass styles are removed from the hero when a glass theme is applied. */
38
+ hasNoGlass?: boolean;
39
+ /** Modifies the width of the hero body. */
40
+ bodyWidth?: string;
41
+ /** Modifies the max-width of the hero body. */
42
+ bodyMaxWidth?: string;
43
+ }
44
+
45
+ export const Hero: React.FunctionComponent<HeroProps> = ({
46
+ className,
47
+ children,
48
+ backgroundSrcLight,
49
+ backgroundSrcDark,
50
+ gradientLight,
51
+ gradientDark,
52
+ hasNoGlass = false,
53
+ bodyWidth,
54
+ bodyMaxWidth,
55
+ ...props
56
+ }) => {
57
+ const customStyles: { [key: string]: string } = {};
58
+ if (backgroundSrcLight) {
59
+ customStyles[heroBackgroundImageLight.name] = `url(${backgroundSrcLight})`;
60
+ }
61
+ if (backgroundSrcDark) {
62
+ customStyles[heroBackgroundImageDark.name] = `url(${backgroundSrcDark})`;
63
+ }
64
+
65
+ if (gradientLight?.stop1) {
66
+ customStyles[heroGradientStop1Light.name] = gradientLight.stop1;
67
+ }
68
+ if (gradientLight?.stop2) {
69
+ customStyles[heroGradientStop2Light.name] = gradientLight.stop2;
70
+ }
71
+ if (gradientLight?.stop3) {
72
+ customStyles[heroGradientStop3Light.name] = gradientLight.stop3;
73
+ }
74
+ if (gradientDark?.stop1) {
75
+ customStyles[heroGradientStop1Dark.name] = gradientDark.stop1;
76
+ }
77
+ if (gradientDark?.stop2) {
78
+ customStyles[heroGradientStop2Dark.name] = gradientDark.stop2;
79
+ }
80
+ if (gradientDark?.stop3) {
81
+ customStyles[heroGradientStop3Dark.name] = gradientDark.stop3;
82
+ }
83
+
84
+ if (bodyWidth) {
85
+ customStyles[heroBodyWidth.name] = bodyWidth;
86
+ }
87
+ if (bodyMaxWidth) {
88
+ customStyles[heroBodyMaxWidth.name] = bodyMaxWidth;
89
+ }
90
+
91
+ return (
92
+ <div
93
+ className={css(styles.hero, hasNoGlass && styles.modifiers.noGlass, className)}
94
+ style={{ ...props.style, ...customStyles }}
95
+ {...props}
96
+ >
97
+ <div className={css(styles.heroBody)}>{children}</div>
98
+ </div>
99
+ );
100
+ };
101
+
102
+ Hero.displayName = 'Hero';