@patternfly/react-core 5.0.0-alpha.13 → 5.0.0-alpha.15

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 (359) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/components/AboutModal/AboutModal.d.ts +5 -23
  3. package/components/AboutModal/AboutModal.d.ts.map +1 -1
  4. package/components/AboutModal/AboutModal.js +26 -91
  5. package/components/AboutModal/AboutModal.js.map +1 -1
  6. package/components/AboutModal/AboutModalBox.d.ts +2 -2
  7. package/components/AboutModal/AboutModalBox.d.ts.map +1 -1
  8. package/components/AboutModal/AboutModalBox.js +2 -2
  9. package/components/AboutModal/AboutModalBox.js.map +1 -1
  10. package/components/AboutModal/AboutModalBoxBrand.d.ts +3 -5
  11. package/components/AboutModal/AboutModalBoxBrand.d.ts.map +1 -1
  12. package/components/AboutModal/AboutModalBoxBrand.js +2 -2
  13. package/components/AboutModal/AboutModalBoxBrand.js.map +1 -1
  14. package/components/AboutModal/AboutModalBoxCloseButton.d.ts +0 -2
  15. package/components/AboutModal/AboutModalBoxCloseButton.d.ts.map +1 -1
  16. package/components/AboutModal/AboutModalBoxCloseButton.js +2 -2
  17. package/components/AboutModal/AboutModalBoxCloseButton.js.map +1 -1
  18. package/components/AboutModal/AboutModalBoxContent.d.ts +3 -7
  19. package/components/AboutModal/AboutModalBoxContent.d.ts.map +1 -1
  20. package/components/AboutModal/AboutModalBoxContent.js +3 -3
  21. package/components/AboutModal/AboutModalBoxContent.js.map +1 -1
  22. package/components/AboutModal/AboutModalBoxHeader.d.ts +2 -4
  23. package/components/AboutModal/AboutModalBoxHeader.d.ts.map +1 -1
  24. package/components/AboutModal/AboutModalBoxHeader.js +2 -2
  25. package/components/AboutModal/AboutModalBoxHeader.js.map +1 -1
  26. package/components/AboutModal/AboutModalBoxHero.d.ts +1 -3
  27. package/components/AboutModal/AboutModalBoxHero.d.ts.map +1 -1
  28. package/components/AboutModal/AboutModalBoxHero.js +2 -2
  29. package/components/AboutModal/AboutModalBoxHero.js.map +1 -1
  30. package/components/Accordion/Accordion.d.ts.map +1 -1
  31. package/components/Accordion/Accordion.js +2 -2
  32. package/components/Accordion/Accordion.js.map +1 -1
  33. package/components/Alert/Alert.d.ts +0 -2
  34. package/components/Alert/Alert.d.ts.map +1 -1
  35. package/components/Alert/Alert.js +2 -2
  36. package/components/Alert/Alert.js.map +1 -1
  37. package/components/BackToTop/BackToTop.d.ts +1 -1
  38. package/components/DataList/DataList.d.ts +3 -3
  39. package/components/DataList/DataList.d.ts.map +1 -1
  40. package/components/DataList/DataList.js +3 -3
  41. package/components/DataList/DataList.js.map +1 -1
  42. package/components/DataList/DataListItem.d.ts.map +1 -1
  43. package/components/DataList/DataListItem.js +6 -5
  44. package/components/DataList/DataListItem.js.map +1 -1
  45. package/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  46. package/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
  47. package/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
  48. package/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
  49. package/components/Menu/Menu.d.ts +0 -2
  50. package/components/Menu/Menu.d.ts.map +1 -1
  51. package/components/Menu/Menu.js +3 -3
  52. package/components/Menu/Menu.js.map +1 -1
  53. package/components/Menu/MenuContent.d.ts +1 -1
  54. package/components/Menu/MenuGroup.d.ts +1 -1
  55. package/components/Menu/MenuInput.d.ts +1 -1
  56. package/components/Menu/MenuItem.d.ts +2 -2
  57. package/components/Menu/MenuItem.d.ts.map +1 -1
  58. package/components/Menu/MenuItem.js +3 -3
  59. package/components/Menu/MenuItem.js.map +1 -1
  60. package/components/Menu/MenuList.d.ts +2 -0
  61. package/components/Menu/MenuList.d.ts.map +1 -1
  62. package/components/Menu/MenuList.js +2 -2
  63. package/components/Menu/MenuList.js.map +1 -1
  64. package/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
  65. package/components/NumberInput/NumberInput.d.ts +0 -2
  66. package/components/NumberInput/NumberInput.d.ts.map +1 -1
  67. package/components/NumberInput/NumberInput.js +1 -4
  68. package/components/NumberInput/NumberInput.js.map +1 -1
  69. package/components/Page/PageGroup.d.ts +1 -1
  70. package/components/Page/PageGroup.d.ts.map +1 -1
  71. package/components/Page/PageGroup.js +1 -1
  72. package/components/Page/PageGroup.js.map +1 -1
  73. package/components/Page/PageNavigation.d.ts +1 -1
  74. package/components/Page/PageNavigation.d.ts.map +1 -1
  75. package/components/Page/PageNavigation.js +1 -1
  76. package/components/Page/PageNavigation.js.map +1 -1
  77. package/components/Panel/Panel.d.ts +1 -1
  78. package/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
  79. package/components/ProgressStepper/ProgressStep.js +3 -1
  80. package/components/ProgressStepper/ProgressStep.js.map +1 -1
  81. package/components/Tabs/Tab.d.ts +1 -1
  82. package/components/TextInputGroup/TextInputGroupMain.d.ts +1 -1
  83. package/components/Wizard/Wizard.d.ts +6 -2
  84. package/components/Wizard/Wizard.d.ts.map +1 -1
  85. package/components/Wizard/Wizard.js.map +1 -1
  86. package/components/Wizard/WizardBody.d.ts +6 -2
  87. package/components/Wizard/WizardBody.d.ts.map +1 -1
  88. package/components/Wizard/WizardBody.js +28 -1
  89. package/components/Wizard/WizardBody.js.map +1 -1
  90. package/components/Wizard/WizardToggle.d.ts +6 -2
  91. package/components/Wizard/WizardToggle.d.ts.map +1 -1
  92. package/components/Wizard/WizardToggle.js.map +1 -1
  93. package/dist/esm/components/AboutModal/AboutModal.d.ts +5 -23
  94. package/dist/esm/components/AboutModal/AboutModal.d.ts.map +1 -1
  95. package/dist/esm/components/AboutModal/AboutModal.js +26 -91
  96. package/dist/esm/components/AboutModal/AboutModal.js.map +1 -1
  97. package/dist/esm/components/AboutModal/AboutModalBox.d.ts +2 -2
  98. package/dist/esm/components/AboutModal/AboutModalBox.d.ts.map +1 -1
  99. package/dist/esm/components/AboutModal/AboutModalBox.js +2 -2
  100. package/dist/esm/components/AboutModal/AboutModalBox.js.map +1 -1
  101. package/dist/esm/components/AboutModal/AboutModalBoxBrand.d.ts +3 -5
  102. package/dist/esm/components/AboutModal/AboutModalBoxBrand.d.ts.map +1 -1
  103. package/dist/esm/components/AboutModal/AboutModalBoxBrand.js +2 -2
  104. package/dist/esm/components/AboutModal/AboutModalBoxBrand.js.map +1 -1
  105. package/dist/esm/components/AboutModal/AboutModalBoxCloseButton.d.ts +0 -2
  106. package/dist/esm/components/AboutModal/AboutModalBoxCloseButton.d.ts.map +1 -1
  107. package/dist/esm/components/AboutModal/AboutModalBoxCloseButton.js +2 -2
  108. package/dist/esm/components/AboutModal/AboutModalBoxCloseButton.js.map +1 -1
  109. package/dist/esm/components/AboutModal/AboutModalBoxContent.d.ts +3 -7
  110. package/dist/esm/components/AboutModal/AboutModalBoxContent.d.ts.map +1 -1
  111. package/dist/esm/components/AboutModal/AboutModalBoxContent.js +3 -3
  112. package/dist/esm/components/AboutModal/AboutModalBoxContent.js.map +1 -1
  113. package/dist/esm/components/AboutModal/AboutModalBoxHeader.d.ts +2 -4
  114. package/dist/esm/components/AboutModal/AboutModalBoxHeader.d.ts.map +1 -1
  115. package/dist/esm/components/AboutModal/AboutModalBoxHeader.js +2 -2
  116. package/dist/esm/components/AboutModal/AboutModalBoxHeader.js.map +1 -1
  117. package/dist/esm/components/AboutModal/AboutModalBoxHero.d.ts +1 -3
  118. package/dist/esm/components/AboutModal/AboutModalBoxHero.d.ts.map +1 -1
  119. package/dist/esm/components/AboutModal/AboutModalBoxHero.js +2 -2
  120. package/dist/esm/components/AboutModal/AboutModalBoxHero.js.map +1 -1
  121. package/dist/esm/components/Accordion/Accordion.d.ts.map +1 -1
  122. package/dist/esm/components/Accordion/Accordion.js +2 -2
  123. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  124. package/dist/esm/components/Alert/Alert.d.ts +0 -2
  125. package/dist/esm/components/Alert/Alert.d.ts.map +1 -1
  126. package/dist/esm/components/Alert/Alert.js +2 -2
  127. package/dist/esm/components/Alert/Alert.js.map +1 -1
  128. package/dist/esm/components/BackToTop/BackToTop.d.ts +1 -1
  129. package/dist/esm/components/DataList/DataList.d.ts +3 -3
  130. package/dist/esm/components/DataList/DataList.d.ts.map +1 -1
  131. package/dist/esm/components/DataList/DataList.js +3 -3
  132. package/dist/esm/components/DataList/DataList.js.map +1 -1
  133. package/dist/esm/components/DataList/DataListItem.d.ts.map +1 -1
  134. package/dist/esm/components/DataList/DataListItem.js +6 -5
  135. package/dist/esm/components/DataList/DataListItem.js.map +1 -1
  136. package/dist/esm/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  137. package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
  138. package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
  139. package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
  140. package/dist/esm/components/Menu/Menu.d.ts +0 -2
  141. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  142. package/dist/esm/components/Menu/Menu.js +3 -3
  143. package/dist/esm/components/Menu/Menu.js.map +1 -1
  144. package/dist/esm/components/Menu/MenuContent.d.ts +1 -1
  145. package/dist/esm/components/Menu/MenuGroup.d.ts +1 -1
  146. package/dist/esm/components/Menu/MenuInput.d.ts +1 -1
  147. package/dist/esm/components/Menu/MenuItem.d.ts +2 -2
  148. package/dist/esm/components/Menu/MenuItem.d.ts.map +1 -1
  149. package/dist/esm/components/Menu/MenuItem.js +3 -3
  150. package/dist/esm/components/Menu/MenuItem.js.map +1 -1
  151. package/dist/esm/components/Menu/MenuList.d.ts +2 -0
  152. package/dist/esm/components/Menu/MenuList.d.ts.map +1 -1
  153. package/dist/esm/components/Menu/MenuList.js +2 -2
  154. package/dist/esm/components/Menu/MenuList.js.map +1 -1
  155. package/dist/esm/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
  156. package/dist/esm/components/NumberInput/NumberInput.d.ts +0 -2
  157. package/dist/esm/components/NumberInput/NumberInput.d.ts.map +1 -1
  158. package/dist/esm/components/NumberInput/NumberInput.js +1 -4
  159. package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
  160. package/dist/esm/components/Page/PageGroup.d.ts +1 -1
  161. package/dist/esm/components/Page/PageGroup.d.ts.map +1 -1
  162. package/dist/esm/components/Page/PageGroup.js +1 -1
  163. package/dist/esm/components/Page/PageGroup.js.map +1 -1
  164. package/dist/esm/components/Page/PageNavigation.d.ts +1 -1
  165. package/dist/esm/components/Page/PageNavigation.d.ts.map +1 -1
  166. package/dist/esm/components/Page/PageNavigation.js +1 -1
  167. package/dist/esm/components/Page/PageNavigation.js.map +1 -1
  168. package/dist/esm/components/Panel/Panel.d.ts +1 -1
  169. package/dist/esm/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
  170. package/dist/esm/components/ProgressStepper/ProgressStep.js +3 -1
  171. package/dist/esm/components/ProgressStepper/ProgressStep.js.map +1 -1
  172. package/dist/esm/components/Tabs/Tab.d.ts +1 -1
  173. package/dist/esm/components/TextInputGroup/TextInputGroupMain.d.ts +1 -1
  174. package/dist/esm/components/Wizard/Wizard.d.ts +6 -2
  175. package/dist/esm/components/Wizard/Wizard.d.ts.map +1 -1
  176. package/dist/esm/components/Wizard/Wizard.js.map +1 -1
  177. package/dist/esm/components/Wizard/WizardBody.d.ts +6 -2
  178. package/dist/esm/components/Wizard/WizardBody.d.ts.map +1 -1
  179. package/dist/esm/components/Wizard/WizardBody.js +28 -1
  180. package/dist/esm/components/Wizard/WizardBody.js.map +1 -1
  181. package/dist/esm/components/Wizard/WizardToggle.d.ts +6 -2
  182. package/dist/esm/components/Wizard/WizardToggle.d.ts.map +1 -1
  183. package/dist/esm/components/Wizard/WizardToggle.js.map +1 -1
  184. package/dist/esm/next/components/Wizard/WizardBody.d.ts +7 -3
  185. package/dist/esm/next/components/Wizard/WizardBody.d.ts.map +1 -1
  186. package/dist/esm/next/components/Wizard/WizardBody.js +35 -2
  187. package/dist/esm/next/components/Wizard/WizardBody.js.map +1 -1
  188. package/dist/js/components/AboutModal/AboutModal.d.ts +5 -23
  189. package/dist/js/components/AboutModal/AboutModal.d.ts.map +1 -1
  190. package/dist/js/components/AboutModal/AboutModal.js +27 -92
  191. package/dist/js/components/AboutModal/AboutModal.js.map +1 -1
  192. package/dist/js/components/AboutModal/AboutModalBox.d.ts +2 -2
  193. package/dist/js/components/AboutModal/AboutModalBox.d.ts.map +1 -1
  194. package/dist/js/components/AboutModal/AboutModalBox.js +2 -2
  195. package/dist/js/components/AboutModal/AboutModalBox.js.map +1 -1
  196. package/dist/js/components/AboutModal/AboutModalBoxBrand.d.ts +3 -5
  197. package/dist/js/components/AboutModal/AboutModalBoxBrand.d.ts.map +1 -1
  198. package/dist/js/components/AboutModal/AboutModalBoxBrand.js +2 -2
  199. package/dist/js/components/AboutModal/AboutModalBoxBrand.js.map +1 -1
  200. package/dist/js/components/AboutModal/AboutModalBoxCloseButton.d.ts +0 -2
  201. package/dist/js/components/AboutModal/AboutModalBoxCloseButton.d.ts.map +1 -1
  202. package/dist/js/components/AboutModal/AboutModalBoxCloseButton.js +2 -2
  203. package/dist/js/components/AboutModal/AboutModalBoxCloseButton.js.map +1 -1
  204. package/dist/js/components/AboutModal/AboutModalBoxContent.d.ts +3 -7
  205. package/dist/js/components/AboutModal/AboutModalBoxContent.d.ts.map +1 -1
  206. package/dist/js/components/AboutModal/AboutModalBoxContent.js +3 -3
  207. package/dist/js/components/AboutModal/AboutModalBoxContent.js.map +1 -1
  208. package/dist/js/components/AboutModal/AboutModalBoxHeader.d.ts +2 -4
  209. package/dist/js/components/AboutModal/AboutModalBoxHeader.d.ts.map +1 -1
  210. package/dist/js/components/AboutModal/AboutModalBoxHeader.js +2 -2
  211. package/dist/js/components/AboutModal/AboutModalBoxHeader.js.map +1 -1
  212. package/dist/js/components/AboutModal/AboutModalBoxHero.d.ts +1 -3
  213. package/dist/js/components/AboutModal/AboutModalBoxHero.d.ts.map +1 -1
  214. package/dist/js/components/AboutModal/AboutModalBoxHero.js +2 -2
  215. package/dist/js/components/AboutModal/AboutModalBoxHero.js.map +1 -1
  216. package/dist/js/components/Accordion/Accordion.d.ts.map +1 -1
  217. package/dist/js/components/Accordion/Accordion.js +2 -2
  218. package/dist/js/components/Accordion/Accordion.js.map +1 -1
  219. package/dist/js/components/Alert/Alert.d.ts +0 -2
  220. package/dist/js/components/Alert/Alert.d.ts.map +1 -1
  221. package/dist/js/components/Alert/Alert.js +2 -2
  222. package/dist/js/components/Alert/Alert.js.map +1 -1
  223. package/dist/js/components/BackToTop/BackToTop.d.ts +1 -1
  224. package/dist/js/components/DataList/DataList.d.ts +3 -3
  225. package/dist/js/components/DataList/DataList.d.ts.map +1 -1
  226. package/dist/js/components/DataList/DataList.js +3 -3
  227. package/dist/js/components/DataList/DataList.js.map +1 -1
  228. package/dist/js/components/DataList/DataListItem.d.ts.map +1 -1
  229. package/dist/js/components/DataList/DataListItem.js +6 -5
  230. package/dist/js/components/DataList/DataListItem.js.map +1 -1
  231. package/dist/js/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  232. package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
  233. package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
  234. package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
  235. package/dist/js/components/Menu/Menu.d.ts +0 -2
  236. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  237. package/dist/js/components/Menu/Menu.js +3 -3
  238. package/dist/js/components/Menu/Menu.js.map +1 -1
  239. package/dist/js/components/Menu/MenuContent.d.ts +1 -1
  240. package/dist/js/components/Menu/MenuGroup.d.ts +1 -1
  241. package/dist/js/components/Menu/MenuInput.d.ts +1 -1
  242. package/dist/js/components/Menu/MenuItem.d.ts +2 -2
  243. package/dist/js/components/Menu/MenuItem.d.ts.map +1 -1
  244. package/dist/js/components/Menu/MenuItem.js +3 -3
  245. package/dist/js/components/Menu/MenuItem.js.map +1 -1
  246. package/dist/js/components/Menu/MenuList.d.ts +2 -0
  247. package/dist/js/components/Menu/MenuList.d.ts.map +1 -1
  248. package/dist/js/components/Menu/MenuList.js +2 -2
  249. package/dist/js/components/Menu/MenuList.js.map +1 -1
  250. package/dist/js/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
  251. package/dist/js/components/NumberInput/NumberInput.d.ts +0 -2
  252. package/dist/js/components/NumberInput/NumberInput.d.ts.map +1 -1
  253. package/dist/js/components/NumberInput/NumberInput.js +1 -4
  254. package/dist/js/components/NumberInput/NumberInput.js.map +1 -1
  255. package/dist/js/components/Page/PageGroup.d.ts +1 -1
  256. package/dist/js/components/Page/PageGroup.d.ts.map +1 -1
  257. package/dist/js/components/Page/PageGroup.js +1 -1
  258. package/dist/js/components/Page/PageGroup.js.map +1 -1
  259. package/dist/js/components/Page/PageNavigation.d.ts +1 -1
  260. package/dist/js/components/Page/PageNavigation.d.ts.map +1 -1
  261. package/dist/js/components/Page/PageNavigation.js +1 -1
  262. package/dist/js/components/Page/PageNavigation.js.map +1 -1
  263. package/dist/js/components/Panel/Panel.d.ts +1 -1
  264. package/dist/js/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
  265. package/dist/js/components/ProgressStepper/ProgressStep.js +3 -1
  266. package/dist/js/components/ProgressStepper/ProgressStep.js.map +1 -1
  267. package/dist/js/components/Tabs/Tab.d.ts +1 -1
  268. package/dist/js/components/TextInputGroup/TextInputGroupMain.d.ts +1 -1
  269. package/dist/js/components/Wizard/Wizard.d.ts +6 -2
  270. package/dist/js/components/Wizard/Wizard.d.ts.map +1 -1
  271. package/dist/js/components/Wizard/Wizard.js.map +1 -1
  272. package/dist/js/components/Wizard/WizardBody.d.ts +6 -2
  273. package/dist/js/components/Wizard/WizardBody.d.ts.map +1 -1
  274. package/dist/js/components/Wizard/WizardBody.js +28 -1
  275. package/dist/js/components/Wizard/WizardBody.js.map +1 -1
  276. package/dist/js/components/Wizard/WizardToggle.d.ts +6 -2
  277. package/dist/js/components/Wizard/WizardToggle.d.ts.map +1 -1
  278. package/dist/js/components/Wizard/WizardToggle.js.map +1 -1
  279. package/dist/js/next/components/Wizard/WizardBody.d.ts +7 -3
  280. package/dist/js/next/components/Wizard/WizardBody.d.ts.map +1 -1
  281. package/dist/js/next/components/Wizard/WizardBody.js +35 -2
  282. package/dist/js/next/components/Wizard/WizardBody.js.map +1 -1
  283. package/dist/umd/react-core.min.js +4 -4
  284. package/next/components/Wizard/WizardBody.d.ts +7 -3
  285. package/next/components/Wizard/WizardBody.d.ts.map +1 -1
  286. package/next/components/Wizard/WizardBody.js +35 -2
  287. package/next/components/Wizard/WizardBody.js.map +1 -1
  288. package/package.json +2 -2
  289. package/src/components/AboutModal/AboutModal.tsx +71 -115
  290. package/src/components/AboutModal/AboutModalBox.tsx +4 -4
  291. package/src/components/AboutModal/AboutModalBoxBrand.tsx +5 -8
  292. package/src/components/AboutModal/AboutModalBoxCloseButton.tsx +1 -4
  293. package/src/components/AboutModal/AboutModalBoxContent.tsx +6 -12
  294. package/src/components/AboutModal/AboutModalBoxHeader.tsx +4 -7
  295. package/src/components/AboutModal/AboutModalBoxHero.tsx +2 -5
  296. package/src/components/AboutModal/__tests__/AboutModal.test.tsx +14 -8
  297. package/src/components/AboutModal/__tests__/AboutModalBox.test.tsx +1 -1
  298. package/src/components/AboutModal/__tests__/__snapshots__/AboutModalBox.test.tsx.snap +0 -3
  299. package/src/components/AboutModal/examples/AboutModalComplexUserPositionedContent.tsx +1 -1
  300. package/src/components/AboutModal/examples/AboutModalCustomBackgroundImage.tsx +1 -0
  301. package/src/components/AboutModal/examples/AboutModalWithoutProductName.tsx +1 -0
  302. package/src/components/Accordion/Accordion.tsx +2 -1
  303. package/src/components/Alert/Alert.tsx +0 -4
  304. package/src/components/Alert/__tests__/Alert.test.tsx +33 -25
  305. package/src/components/DataList/DataList.tsx +6 -6
  306. package/src/components/DataList/DataListItem.tsx +6 -5
  307. package/src/components/DataList/examples/DataListSelectableRows.tsx +2 -2
  308. package/src/components/Menu/Menu.tsx +0 -4
  309. package/src/components/Menu/MenuItem.tsx +4 -2
  310. package/src/components/Menu/MenuList.tsx +4 -0
  311. package/src/components/NumberInput/NumberInput.tsx +0 -6
  312. package/src/components/NumberInput/__tests__/NumberInput.test.tsx +0 -6
  313. package/src/components/NumberInput/examples/NumberInputCustomStep.tsx +0 -1
  314. package/src/components/NumberInput/examples/NumberInputCustomStepAndThreshold.tsx +0 -1
  315. package/src/components/NumberInput/examples/NumberInputDefault.tsx +0 -1
  316. package/src/components/NumberInput/examples/NumberInputDisabled.tsx +0 -1
  317. package/src/components/NumberInput/examples/NumberInputUnit.tsx +0 -2
  318. package/src/components/NumberInput/examples/NumberInputUnitThreshold.tsx +0 -1
  319. package/src/components/NumberInput/examples/NumberInputVaryingSizes.tsx +0 -4
  320. package/src/components/NumberInput/examples/NumberInputWithStatus.tsx +0 -1
  321. package/src/components/Page/PageGroup.tsx +2 -3
  322. package/src/components/Page/PageNavigation.tsx +2 -3
  323. package/src/components/Page/__tests__/Page.test.tsx +6 -1
  324. package/src/components/Page/__tests__/PageGroup.test.tsx +5 -1
  325. package/src/components/Page/__tests__/PageNavigation.test.tsx +5 -1
  326. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +3 -1
  327. package/src/components/Page/__tests__/__snapshots__/PageGroup.test.tsx.snap +1 -0
  328. package/src/components/Page/__tests__/__snapshots__/PageNavigation.test.tsx.snap +1 -0
  329. package/src/components/ProgressStepper/ProgressStep.tsx +3 -1
  330. package/src/components/ProgressStepper/__tests__/ProgressStep.test.tsx +2 -2
  331. package/src/components/Wizard/Wizard.tsx +6 -2
  332. package/src/components/Wizard/WizardBody.tsx +46 -3
  333. package/src/components/Wizard/WizardToggle.tsx +6 -2
  334. package/src/components/Wizard/__tests__/Generated/__snapshots__/WizardBody.test.tsx.snap +0 -2
  335. package/src/components/Wizard/__tests__/Generated/__snapshots__/WizardToggle.test.tsx.snap +0 -2
  336. package/src/components/Wizard/__tests__/Wizard.test.tsx +70 -132
  337. package/src/components/Wizard/__tests__/__snapshots__/Wizard.test.tsx.snap +0 -2
  338. package/src/components/Wizard/examples/WizardBasic.tsx +26 -1
  339. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +0 -1
  340. package/src/next/components/Wizard/WizardBody.tsx +57 -8
  341. package/src/next/components/Wizard/__tests__/WizardBody.test.tsx +0 -10
  342. package/src/next/components/Wizard/examples/Wizard.md +1 -1
  343. package/src/next/components/Wizard/examples/WizardBasic.tsx +19 -1
  344. package/components/AboutModal/AboutModalContainer.d.ts +0 -31
  345. package/components/AboutModal/AboutModalContainer.d.ts.map +0 -1
  346. package/components/AboutModal/AboutModalContainer.js +0 -28
  347. package/components/AboutModal/AboutModalContainer.js.map +0 -1
  348. package/dist/esm/components/AboutModal/AboutModalContainer.d.ts +0 -31
  349. package/dist/esm/components/AboutModal/AboutModalContainer.d.ts.map +0 -1
  350. package/dist/esm/components/AboutModal/AboutModalContainer.js +0 -28
  351. package/dist/esm/components/AboutModal/AboutModalContainer.js.map +0 -1
  352. package/dist/js/components/AboutModal/AboutModalContainer.d.ts +0 -31
  353. package/dist/js/components/AboutModal/AboutModalContainer.d.ts.map +0 -1
  354. package/dist/js/components/AboutModal/AboutModalContainer.js +0 -32
  355. package/dist/js/components/AboutModal/AboutModalContainer.js.map +0 -1
  356. package/src/components/AboutModal/AboutModalContainer.tsx +0 -91
  357. package/src/components/AboutModal/__tests__/AboutModalContainer.test.tsx +0 -38
  358. package/src/components/AboutModal/__tests__/__snapshots__/AboutModalContainer.test.tsx.snap +0 -101
  359. package/src/next/components/Wizard/examples/WizardKitchenSink.tsx +0 -236
@@ -4,15 +4,21 @@ import { css } from '@patternfly/react-styles';
4
4
  import { WizardDrawerWrapper } from './WizardDrawerWrapper';
5
5
  import { Drawer, DrawerContent } from '../Drawer';
6
6
  import { WizardStep } from './Wizard';
7
+ import { debounce } from '../../helpers/util';
8
+ import { getResizeObserver } from '../../helpers/resizeObserver';
7
9
 
8
10
  export interface WizardBodyProps {
9
11
  /** Anything that can be rendered in the Wizard body */
10
12
  children: any;
11
13
  /** Set to true to remove the default body padding */
12
14
  hasNoBodyPadding: boolean;
13
- /** An aria-label to use for the main element */
15
+ /** Adds an accessible name to the wizard body when the body content overflows and renders
16
+ * a scrollbar.
17
+ */
14
18
  'aria-label'?: string;
15
- /** Sets the aria-labelledby attribute for the main element */
19
+ /** Adds an accessible name to the wizard body by passing the the id of one or more elements.
20
+ * The aria-labelledby will only be applied when the body content overflows and renders a scrollbar.
21
+ */
16
22
  'aria-labelledby': string;
17
23
  /** Component used as the primary content container */
18
24
  mainComponent?: React.ElementType;
@@ -37,8 +43,45 @@ export const WizardBody: React.FunctionComponent<WizardBodyProps> = ({
37
43
  activeStep
38
44
  }: WizardBodyProps) => {
39
45
  const MainComponent = mainComponent;
46
+ const [hasScrollbar, setHasScrollbar] = React.useState(false);
47
+ const [previousWidth, setPreviousWidth] = React.useState<number | undefined>(undefined);
48
+ const wizardBodyRef = React.useRef(null);
49
+
50
+ React.useEffect(() => {
51
+ const resize = () => {
52
+ if (wizardBodyRef?.current) {
53
+ const { offsetWidth, offsetHeight, scrollHeight } = wizardBodyRef.current;
54
+
55
+ if (previousWidth !== offsetWidth) {
56
+ setPreviousWidth(offsetWidth);
57
+ setHasScrollbar(offsetHeight < scrollHeight);
58
+ }
59
+ }
60
+ };
61
+
62
+ const handleResizeWithDelay = debounce(resize, 250);
63
+ let observer = () => {};
64
+
65
+ if (wizardBodyRef?.current) {
66
+ observer = getResizeObserver(wizardBodyRef.current, handleResizeWithDelay);
67
+ const { offsetHeight, scrollHeight } = wizardBodyRef.current;
68
+
69
+ setHasScrollbar(offsetHeight < scrollHeight);
70
+ setPreviousWidth((wizardBodyRef.current as HTMLElement).offsetWidth);
71
+ }
72
+
73
+ return () => {
74
+ observer();
75
+ };
76
+ }, []);
77
+
40
78
  return (
41
- <MainComponent aria-label={ariaLabel} aria-labelledby={ariaLabelledBy} className={css(styles.wizardMain)}>
79
+ <MainComponent
80
+ {...(mainComponent === 'div' && hasScrollbar && { role: 'region' })}
81
+ {...(hasScrollbar && { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, tabIndex: 0 })}
82
+ ref={wizardBodyRef}
83
+ className={css(styles.wizardMain)}
84
+ >
42
85
  <WizardDrawerWrapper
43
86
  hasDrawer={hasDrawer && activeStep.drawerPanelContent}
44
87
  wrapper={(children: React.ReactNode) => (
@@ -23,9 +23,13 @@ export interface WizardToggleProps {
23
23
  onNavToggle: (isOpen: boolean) => void;
24
24
  /** The button's aria-label */
25
25
  'aria-label'?: string;
26
- /** Sets aria-labelledby on the main element */
26
+ /** Adds an accessible name to the wizard body by passing the the id of one or more elements.
27
+ * The aria-labelledby will only be applied when the body content overflows and renders a scrollbar.
28
+ */
27
29
  mainAriaLabelledBy?: string;
28
- /** The main's aria-label */
30
+ /** Adds an accessible name to the wizard body when the body content overflows and renders
31
+ * a scrollbar.
32
+ */
29
33
  mainAriaLabel?: string;
30
34
  /** If the wizard is in-page */
31
35
  isInPage?: boolean;
@@ -3,8 +3,6 @@
3
3
  exports[`WizardBody should match snapshot (auto-generated) 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- aria-label="null"
7
- aria-labelledby="string"
8
6
  class="pf-c-wizard__main"
9
7
  >
10
8
  <div
@@ -44,8 +44,6 @@ exports[`WizardToggle should match snapshot (auto-generated) 1`] = `
44
44
  class="pf-c-wizard__inner-wrap"
45
45
  >
46
46
  <div
47
- aria-label="null"
48
- aria-labelledby="null"
49
47
  class="pf-c-wizard__main"
50
48
  >
51
49
  <div
@@ -130,37 +130,12 @@ describe('Wizard', () => {
130
130
  expect(nav).toHaveAttribute('aria-labelledby', 'pf-wizard-title-5');
131
131
  });
132
132
 
133
- test('wiz with title, navAriaLabel, and mainAriaLabel combination', () => {
134
- const steps: WizardStep[] = [{ name: 'A', component: <p>Step 1</p> }];
135
- render(
136
- <Wizard
137
- title="Wizard"
138
- navAriaLabel="nav aria-label"
139
- mainAriaLabel="main aria-label"
140
- description="This wizard has a title"
141
- steps={steps}
142
- />
143
- );
144
-
145
- expect(screen.getByRole('heading', { name: 'Wizard' })).toBeInTheDocument();
146
- expect(screen.getByLabelText('nav aria-label')).toBeInTheDocument();
147
- expect(screen.getByLabelText('main aria-label')).toBeInTheDocument();
148
- });
149
-
150
133
  test('wiz with navAriaLabel and mainAriaLabel but without title', () => {
151
134
  const steps: WizardStep[] = [{ name: 'A', component: <p>Step 1</p> }];
152
135
 
153
- render(
154
- <Wizard
155
- navAriaLabel="nav aria-label"
156
- mainAriaLabel="main aria-label"
157
- description="This wizard has a title"
158
- steps={steps}
159
- />
160
- );
136
+ render(<Wizard navAriaLabel="nav aria-label" description="This wizard has a title" steps={steps} />);
161
137
 
162
138
  expect(screen.getByLabelText('nav aria-label')).toBeInTheDocument();
163
- expect(screen.getByLabelText('main aria-label')).toBeInTheDocument();
164
139
  });
165
140
 
166
141
  test('wiz with navAriaLabel and navAriaLabelledby and without title', () => {
@@ -170,7 +145,6 @@ describe('Wizard', () => {
170
145
  <Wizard
171
146
  navAriaLabelledBy="nav-aria-labelledby"
172
147
  navAriaLabel="nav aria-label"
173
- mainAriaLabel="main aria-label"
174
148
  description="This wizard has a title"
175
149
  steps={steps}
176
150
  />
@@ -182,11 +156,13 @@ describe('Wizard', () => {
182
156
  expect(nav).toHaveAttribute('aria-labelledby', 'nav-aria-labelledby');
183
157
  });
184
158
 
185
- test('wiz with navAriaLabel and navAriaLabelledby and without title', () => {
159
+ test('wiz with title, navAriaLabelledBy, and navAriaLabel', () => {
186
160
  const steps: WizardStep[] = [{ name: 'A', component: <p>Step 1</p> }];
187
161
  render(
188
162
  <Wizard
163
+ title="Wiz title"
189
164
  navAriaLabel="nav aria-label"
165
+ navAriaLabelledBy="nav-aria-labelledby"
190
166
  mainAriaLabel="main aria-label"
191
167
  mainAriaLabelledBy="main-aria-labelledby"
192
168
  description="This wizard has a title"
@@ -194,19 +170,17 @@ describe('Wizard', () => {
194
170
  />
195
171
  );
196
172
 
197
- const main = screen.getByLabelText('main aria-label');
198
-
199
- expect(main).toBeInTheDocument();
200
- expect(main).toHaveAttribute('aria-labelledby', 'main-aria-labelledby');
173
+ const nav = screen.getByLabelText('nav aria-label');
174
+ expect(nav).toBeInTheDocument();
175
+ expect(nav).toHaveAttribute('aria-labelledby', 'nav-aria-labelledby');
201
176
  });
202
177
 
203
- test('wiz with title, navAriaLabelledBy, navAriaLabel, mainAriaLabel, and mainAriaLabelledby', () => {
178
+ test('Does not render with mainAriaLabel or mainAriaLabelledby by default', () => {
204
179
  const steps: WizardStep[] = [{ name: 'A', component: <p>Step 1</p> }];
205
180
  render(
206
181
  <Wizard
182
+ data-testid="wizard-test-id"
207
183
  title="Wiz title"
208
- navAriaLabel="nav aria-label"
209
- navAriaLabelledBy="nav-aria-labelledby"
210
184
  mainAriaLabel="main aria-label"
211
185
  mainAriaLabelledBy="main-aria-labelledby"
212
186
  description="This wizard has a title"
@@ -214,13 +188,9 @@ describe('Wizard', () => {
214
188
  />
215
189
  );
216
190
 
217
- const nav = screen.getByLabelText('nav aria-label');
218
- expect(nav).toBeInTheDocument();
219
- expect(nav).toHaveAttribute('aria-labelledby', 'nav-aria-labelledby');
220
-
221
- const main = screen.getByLabelText('main aria-label');
222
- expect(main).toBeInTheDocument();
223
- expect(main).toHaveAttribute('aria-labelledby', 'main-aria-labelledby');
191
+ const main = screen.getByTestId('wizard-test-id');
192
+ expect(main).not.toHaveAttribute('aria-labelledby');
193
+ expect(main).not.toHaveAttribute('aria-label');
224
194
  });
225
195
 
226
196
  test('wiz with onCurrentStepChanged setter', async () => {
@@ -228,17 +198,11 @@ describe('Wizard', () => {
228
198
  const stepB = { name: 'B', component: <p>Step 2</p> };
229
199
  const stepC = { name: 'C', component: <p>Step 3</p> };
230
200
 
231
- const steps: WizardStep[] = [ stepA, stepB, stepC ];
201
+ const steps: WizardStep[] = [stepA, stepB, stepC];
232
202
  const setter = jest.fn();
233
203
  const user = userEvent.setup();
234
204
 
235
- render(
236
- <Wizard
237
- title="Wiz title"
238
- onCurrentStepChanged={ setter }
239
- steps={steps}
240
- />
241
- );
205
+ render(<Wizard title="Wiz title" onCurrentStepChanged={setter} steps={steps} />);
242
206
  expect(setter).toHaveBeenLastCalledWith(expect.objectContaining(stepA));
243
207
  await user.click(screen.getByText(/next/i));
244
208
  expect(setter).toHaveBeenLastCalledWith(expect.objectContaining(stepB));
@@ -253,98 +217,72 @@ describe('Wizard', () => {
253
217
  });
254
218
  });
255
219
 
256
- test('wiz with disabled steps', () => {
257
- const steps: WizardStep[] = [
258
- { name: 'A', component: <p>Step 1</p>},
259
- { name: 'B', component: <p>Step 2</p>, isDisabled: true },
260
- { name: 'C', component: <p>Step 3</p>},
261
- { name: 'E', component: <p>Step 4</p>, isDisabled: true },
262
- { name: 'G', component: <p>Step 5</p> },
220
+ test('wiz with disabled steps', () => {
221
+ const steps: WizardStep[] = [
222
+ { name: 'A', component: <p>Step 1</p> },
223
+ { name: 'B', component: <p>Step 2</p>, isDisabled: true },
224
+ { name: 'C', component: <p>Step 3</p> },
225
+ { name: 'E', component: <p>Step 4</p>, isDisabled: true },
226
+ { name: 'G', component: <p>Step 5</p> }
227
+ ];
263
228
 
264
- ];
265
-
266
- render(
267
- <Wizard
268
- navAriaLabel="nav aria-label"
269
- description="This wizard step is disabled"
270
- steps={steps}
271
- />
272
- );
229
+ render(<Wizard navAriaLabel="nav aria-label" description="This wizard step is disabled" steps={steps} />);
273
230
 
274
- expect(screen.getByRole('button',{ name: "B" })).toBeDisabled();
275
- expect(screen.getByRole('button',{ name: "E" })).toBeDisabled();
276
- });
231
+ expect(screen.getByRole('button', { name: 'B' })).toBeDisabled();
232
+ expect(screen.getByRole('button', { name: 'E' })).toBeDisabled();
233
+ });
277
234
 
278
- test('wiz skip the step disabled when press the next/back button', async () => {
279
- const steps: WizardStep[] = [
280
- { name: 'A', component: <p>Step 1</p>},
281
- { name: 'B', component: <p>Step 2</p>, isDisabled: true },
282
- { name: 'C', component: <p>Step 3</p>},
235
+ test('wiz skip the step disabled when press the next/back button', async () => {
236
+ const steps: WizardStep[] = [
237
+ { name: 'A', component: <p>Step 1</p> },
238
+ { name: 'B', component: <p>Step 2</p>, isDisabled: true },
239
+ { name: 'C', component: <p>Step 3</p> }
240
+ ];
241
+ const user = userEvent.setup();
283
242
 
284
- ];
285
- const user = userEvent.setup();
243
+ render(<Wizard navAriaLabel="nav aria-label" description="This wizard step is disabled" steps={steps} />);
286
244
 
287
- render(
288
- <Wizard
289
- navAriaLabel="nav aria-label"
290
- description="This wizard step is disabled"
291
- steps={steps}
292
- />
293
- );
245
+ await user.click(screen.getByRole('button', { name: 'Next' }));
246
+ expect(screen.getByRole('button', { name: 'C' })).toHaveClass('pf-m-current');
294
247
 
295
- await user.click(screen.getByRole('button', { name: 'Next' }));
296
- expect(screen.getByRole('button',{ name: "C" })).toHaveClass('pf-m-current')
248
+ await user.click(screen.getByRole('button', { name: 'Back' }));
249
+ expect(screen.getByRole('button', { name: 'A' })).toHaveClass('pf-m-current');
250
+ });
297
251
 
298
- await user.click(screen.getByRole('button', { name: 'Back' }));
299
- expect(screen.getByRole('button',{ name: "A" })).toHaveClass('pf-m-current')
300
- });
301
-
302
- test('wiz skip the step when click on the nav item disabled', async () => {
303
- const steps: WizardStep[] = [
304
- { name: 'A', component: <p>Step 1</p>},
305
- { name: 'B', component: <p>Step 2</p>, isDisabled: true },
306
- { name: 'C', component: <p>Step 3</p>}
307
- ];
308
- const user = userEvent.setup();
309
-
310
- render(
311
- <Wizard
312
- navAriaLabel="nav aria-label"
313
- description="This wizard step is disabled"
314
- steps={steps}
315
- />
316
- );
252
+ test('wiz skip the step when click on the nav item disabled', async () => {
253
+ const steps: WizardStep[] = [
254
+ { name: 'A', component: <p>Step 1</p> },
255
+ { name: 'B', component: <p>Step 2</p>, isDisabled: true },
256
+ { name: 'C', component: <p>Step 3</p> }
257
+ ];
258
+ const user = userEvent.setup();
317
259
 
318
- const navItemButton = screen.getByRole('button',{ name: "B" })
319
- const navItemButtonSelected = screen.getByRole('button',{ name: "A" })
320
-
321
- await user.click(navItemButton);
260
+ render(<Wizard navAriaLabel="nav aria-label" description="This wizard step is disabled" steps={steps} />);
322
261
 
323
- expect(navItemButton).not.toHaveClass('pf-m-current')
324
- expect(navItemButtonSelected).toHaveClass('pf-m-current')
325
- });
262
+ const navItemButton = screen.getByRole('button', { name: 'B' });
263
+ const navItemButtonSelected = screen.getByRole('button', { name: 'A' });
326
264
 
327
- test('wiz with disable sub step', () => {
328
- const steps: WizardStep[] = [
329
- {
330
- name: 'A',
331
- steps: [
332
- { name: 'A-1', component: <p>Substep A content</p> },
333
- { name: 'A-2', component: <p>Substep B content</p>, isDisabled: true }
334
- ]
335
- },
336
- ];
337
-
338
- render(
339
- <Wizard
340
- navAriaLabel="nav aria-label"
341
- description="This wizard step is disabled"
342
- steps={steps}
343
- />
344
- );
265
+ await user.click(navItemButton);
345
266
 
346
- expect(screen.getByRole('button',{ name: "A-2" })).toBeDisabled();
347
- });
267
+ expect(navItemButton).not.toHaveClass('pf-m-current');
268
+ expect(navItemButtonSelected).toHaveClass('pf-m-current');
269
+ });
270
+
271
+ test('wiz with disable sub step', () => {
272
+ const steps: WizardStep[] = [
273
+ {
274
+ name: 'A',
275
+ steps: [
276
+ { name: 'A-1', component: <p>Substep A content</p> },
277
+ { name: 'A-2', component: <p>Substep B content</p>, isDisabled: true }
278
+ ]
279
+ }
280
+ ];
281
+
282
+ render(<Wizard navAriaLabel="nav aria-label" description="This wizard step is disabled" steps={steps} />);
283
+
284
+ expect(screen.getByRole('button', { name: 'A-2' })).toBeDisabled();
285
+ });
348
286
 
349
287
  test('startAtStep can be used to externally control the current step of the wizard', async () => {
350
288
  const WizardTest = () => {
@@ -373,7 +311,7 @@ test('startAtStep can be used to externally control the current step of the wiza
373
311
 
374
312
  expect(screen.queryByText('Step 2')).not.toBeInTheDocument();
375
313
 
376
- await user.click(screen.getByRole('button', { name: 'Increment step'}))
314
+ await user.click(screen.getByRole('button', { name: 'Increment step' }));
377
315
 
378
316
  expect(screen.getByText('Step 2')).toBeVisible();
379
317
  });
@@ -212,7 +212,6 @@ exports[`Wizard Expandable Nav Wizard should match snapshot 1`] = `
212
212
  </ol>
213
213
  </nav>
214
214
  <div
215
- aria-labelledby="pf-wizard-title-1"
216
215
  class="pf-c-wizard__main"
217
216
  >
218
217
  <div
@@ -460,7 +459,6 @@ exports[`Wizard Wizard should match snapshot 1`] = `
460
459
  </ol>
461
460
  </nav>
462
461
  <div
463
- aria-labelledby="pf-wizard-title-0"
464
462
  class="pf-c-wizard__main"
465
463
  >
466
464
  <div
@@ -3,7 +3,32 @@ import { Wizard } from '@patternfly/react-core';
3
3
 
4
4
  export const WizardBasic: React.FunctionComponent = () => {
5
5
  const steps = [
6
- { name: 'First step', component: <p>Step 1 content</p> },
6
+ {
7
+ name: 'First step',
8
+ component: (
9
+ <>
10
+ <p>
11
+ The content of this step overflows and creates a scrollbar, which causes a tabindex of "0", a role of
12
+ "region", and an aria-label or aria-labelledby to be applied.
13
+ </p>
14
+ <p>
15
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer bibendum in neque nec pharetra. Duis
16
+ lacinia vel sapien ut imperdiet. Nunc ultrices mollis dictum. Duis tempus, massa nec tincidunt tempor, enim
17
+ ex porttitor odio, eu facilisis dolor tortor id sapien. Etiam sit amet molestie lacus. Nulla facilisi. Duis
18
+ eget finibus ipsum. Quisque dictum enim sed sodales porta. Curabitur eget orci eu risus posuere pulvinar id
19
+ nec turpis. Morbi mattis orci vel posuere tincidunt. Fusce bibendum et libero a auctor.
20
+ </p>
21
+ <p>
22
+ Proin elementum commodo sodales. Quisque eget libero mattis, ornare augue at, egestas nisi. Mauris ultrices
23
+ orci fringilla pretium mattis. Aliquam erat volutpat. Sed pharetra condimentum dui, nec bibendum ante.
24
+ Vestibulum sollicitudin, sem accumsan pharetra molestie, purus turpis lacinia lorem, commodo sodales quam
25
+ lectus a urna. Nam gravida, felis a lacinia varius, ex ipsum ultrices orci, non egestas diam velit in mi. Ut
26
+ sit amet commodo orci. Duis sed diam odio. Duis mi metus, dignissim in odio nec, ornare aliquet libero. Sed
27
+ luctus elit nibh. Quisque et felis diam. Integer ac metus dolor.
28
+ </p>
29
+ </>
30
+ )
31
+ },
7
32
  { name: 'Second step', component: <p>Step 2 content</p> },
8
33
  { name: 'Third step', component: <p>Step 3 content</p> },
9
34
  { name: 'Fourth step', component: <p>Step 4 content</p> },
@@ -349,7 +349,6 @@ export const AlertGroupToastWithNotificationDrawer: React.FunctionComponent = ()
349
349
  minusBtnAriaLabel="minus"
350
350
  plusBtnAriaLabel="plus"
351
351
  style={{ margin: '12px 0' }}
352
- allowEmptyInput
353
352
  />
354
353
  </PageSection>
355
354
  <PageSection variant={PageSectionVariants.light}>
@@ -2,6 +2,9 @@ import React from 'react';
2
2
 
3
3
  import styles from '@patternfly/react-styles/css/components/Wizard/wizard';
4
4
  import { css } from '@patternfly/react-styles';
5
+ import { WizardContext } from './WizardContext';
6
+ import { debounce } from '../../../helpers/util';
7
+ import { getResizeObserver } from '../../../helpers/resizeObserver';
5
8
 
6
9
  /**
7
10
  * Used as a wrapper for WizardStep content, where the wrapping element is customizable.
@@ -11,9 +14,13 @@ export interface WizardBodyProps {
11
14
  children: React.ReactNode | React.ReactNode[];
12
15
  /** Set to true to remove the default body padding */
13
16
  hasNoPadding?: boolean;
14
- /** An aria-label to use for the wrapper element */
17
+ /** Adds an accessible name to the wrapper element when the content overflows and renders
18
+ * a scrollbar.
19
+ */
15
20
  'aria-label'?: string;
16
- /** Sets the aria-labelledby attribute for the wrapper element */
21
+ /** Adds an accessible name to the wrapper element by passing the the id of one or more elements.
22
+ * The aria-labelledby will only be applied when the content overflows and renders a scrollbar.
23
+ */
17
24
  'aria-labelledby'?: string;
18
25
  /** Component used as the wrapping content container */
19
26
  component?: React.ElementType;
@@ -24,11 +31,53 @@ export const WizardBody = ({
24
31
  hasNoPadding = false,
25
32
  'aria-label': ariaLabel,
26
33
  'aria-labelledby': ariaLabelledBy,
27
- component: WrapperComponent = 'div'
28
- }: WizardBodyProps) => (
29
- <WrapperComponent aria-label={ariaLabel} aria-labelledby={ariaLabelledBy} className={css(styles.wizardMain)}>
30
- <div className={css(styles.wizardMainBody, hasNoPadding && styles.modifiers.noPadding)}>{children}</div>
31
- </WrapperComponent>
32
- );
34
+ component = 'div'
35
+ }: WizardBodyProps) => {
36
+ const [hasScrollbar, setHasScrollbar] = React.useState(false);
37
+ const [previousWidth, setPreviousWidth] = React.useState<number | undefined>(undefined);
38
+ const wrapperRef = React.useRef(null);
39
+ const WrapperComponent = component;
40
+ const { activeStep } = React.useContext(WizardContext);
41
+ const defaultAriaLabel = ariaLabel || `${activeStep?.name} content`;
42
+
43
+ React.useEffect(() => {
44
+ const resize = () => {
45
+ if (wrapperRef?.current) {
46
+ const { offsetWidth, offsetHeight, scrollHeight } = wrapperRef.current;
47
+
48
+ if (previousWidth !== offsetWidth) {
49
+ setPreviousWidth(offsetWidth);
50
+ setHasScrollbar(offsetHeight < scrollHeight);
51
+ }
52
+ }
53
+ };
54
+
55
+ const handleResizeWithDelay = debounce(resize, 250);
56
+ let observer = () => {};
57
+
58
+ if (wrapperRef?.current) {
59
+ observer = getResizeObserver(wrapperRef.current, handleResizeWithDelay);
60
+ const { offsetHeight, scrollHeight } = wrapperRef.current;
61
+
62
+ setHasScrollbar(offsetHeight < scrollHeight);
63
+ setPreviousWidth((wrapperRef.current as HTMLElement).offsetWidth);
64
+ }
65
+
66
+ return () => {
67
+ observer();
68
+ };
69
+ }, []);
70
+
71
+ return (
72
+ <WrapperComponent
73
+ ref={wrapperRef}
74
+ {...(component === 'div' && hasScrollbar && { role: 'region' })}
75
+ {...(hasScrollbar && { 'aria-label': defaultAriaLabel, 'aria-labelledby': ariaLabelledBy, tabIndex: 0 })}
76
+ className={css(styles.wizardMain)}
77
+ >
78
+ <div className={css(styles.wizardMainBody, hasNoPadding && styles.modifiers.noPadding)}>{children}</div>
79
+ </WrapperComponent>
80
+ );
81
+ };
33
82
 
34
83
  WizardBody.displayName = 'WizardBody';
@@ -20,16 +20,6 @@ test('has padding className when hasNoPadding is specified', () => {
20
20
  expect(screen.getByText('content')).toHaveClass('pf-m-no-padding');
21
21
  });
22
22
 
23
- test('has aria-label when one is specified', () => {
24
- render(<WizardBody aria-label="Body label">content</WizardBody>);
25
- expect(screen.getByLabelText('Body label')).toBeVisible();
26
- });
27
-
28
- test('has aria-labelledby when one is specified', () => {
29
- const { container } = render(<WizardBody aria-labelledby="some-id">content</WizardBody>);
30
- expect(container.firstElementChild).toHaveAttribute('aria-labelledby', 'some-id');
31
- });
32
-
33
23
  test('wrapper element is of type div when component is not specified', () => {
34
24
  const { container } = render(<WizardBody aria-label="Wizard body">content</WizardBody>);
35
25
  expect(container.firstElementChild?.tagName).toEqual('DIV');
@@ -164,7 +164,7 @@ const StepContent = () => {
164
164
 
165
165
  ### useWizardFooter
166
166
 
167
- Used to set a unique footer for the wizard on any given step. See step 3 of [Kitchen sink](#kitchen-sink) for a live example.
167
+ Used to set a unique footer for the wizard on any given step.
168
168
 
169
169
  ```noLive
170
170
  import { useWizardFooter } from '@patternfly/react-core/next';
@@ -4,7 +4,25 @@ import { Wizard, WizardStep } from '@patternfly/react-core/next';
4
4
  export const WizardBasic: React.FunctionComponent = () => (
5
5
  <Wizard height={400} title="Basic wizard">
6
6
  <WizardStep name="Step 1" id="basic-first-step">
7
- Step 1 content
7
+ <p>
8
+ The content of this step overflows and creates a scrollbar, which causes a tabindex of "0", a role of "region",
9
+ and an aria-label or aria-labelledby to be applied.
10
+ </p>
11
+ <p>
12
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer bibendum in neque nec pharetra. Duis lacinia
13
+ vel sapien ut imperdiet. Nunc ultrices mollis dictum. Duis tempus, massa nec tincidunt tempor, enim ex porttitor
14
+ odio, eu facilisis dolor tortor id sapien. Etiam sit amet molestie lacus. Nulla facilisi. Duis eget finibus
15
+ ipsum. Quisque dictum enim sed sodales porta. Curabitur eget orci eu risus posuere pulvinar id nec turpis. Morbi
16
+ mattis orci vel posuere tincidunt. Fusce bibendum et libero a auctor.
17
+ </p>
18
+ <p>
19
+ Proin elementum commodo sodales. Quisque eget libero mattis, ornare augue at, egestas nisi. Mauris ultrices orci
20
+ fringilla pretium mattis. Aliquam erat volutpat. Sed pharetra condimentum dui, nec bibendum ante. Vestibulum
21
+ sollicitudin, sem accumsan pharetra molestie, purus turpis lacinia lorem, commodo sodales quam lectus a urna.
22
+ Nam gravida, felis a lacinia varius, ex ipsum ultrices orci, non egestas diam velit in mi. Ut sit amet commodo
23
+ orci. Duis sed diam odio. Duis mi metus, dignissim in odio nec, ornare aliquet libero. Sed luctus elit nibh.
24
+ Quisque et felis diam. Integer ac metus dolor.
25
+ </p>
8
26
  </WizardStep>
9
27
  <WizardStep name="Step 2" id="basic-second-step">
10
28
  Step 2 content
@@ -1,31 +0,0 @@
1
- import * as React from 'react';
2
- export interface AboutModalContainerProps extends React.HTMLProps<HTMLDivElement> {
3
- /** content rendered inside the About Modal Box Content. */
4
- children: React.ReactNode;
5
- /** additional classes added to the About Modal Box */
6
- className?: string;
7
- /** Flag to show the About Modal */
8
- isOpen?: boolean;
9
- /** A callback for when the close button is clicked */
10
- onClose?: (event: React.MouseEvent | MouseEvent | KeyboardEvent) => void;
11
- /** Product Name */
12
- productName?: string;
13
- /** Trademark information */
14
- trademark?: string;
15
- /** the URL of the image for the Brand. */
16
- brandImageSrc: string;
17
- /** the alternate text of the Brand image. */
18
- brandImageAlt: string;
19
- /** the URL of the image for the background. */
20
- backgroundImageSrc?: string;
21
- /** id to use for About Modal Box aria labeled by */
22
- aboutModalBoxHeaderId: string;
23
- /** id to use for About Modal Box aria described by */
24
- aboutModalBoxContentId: string;
25
- /** Set close button aria label */
26
- closeButtonAriaLabel?: string;
27
- /** Flag to disable focus trap */
28
- disableFocusTrap?: boolean;
29
- }
30
- export declare const AboutModalContainer: React.FunctionComponent<AboutModalContainerProps>;
31
- //# sourceMappingURL=AboutModalContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AboutModalContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/AboutModal/AboutModalContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IAC/E,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC;IACzE,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,wBAAwB,CA+CjF,CAAC"}