@patternfly/react-core 6.4.1-prerelease.9 → 6.4.1

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 (344) hide show
  1. package/CHANGELOG.md +2 -48
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Content/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/TimePicker/package.json +1 -1
  74. package/dist/dynamic/components/Timestamp/package.json +1 -1
  75. package/dist/dynamic/components/Title/package.json +1 -1
  76. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  77. package/dist/dynamic/components/Toolbar/package.json +1 -1
  78. package/dist/dynamic/components/Tooltip/package.json +1 -1
  79. package/dist/dynamic/components/TreeView/package.json +1 -1
  80. package/dist/dynamic/components/Truncate/package.json +1 -1
  81. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/package.json +1 -1
  83. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
  91. package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
  92. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  93. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  94. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  95. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  96. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  97. package/dist/dynamic/helpers/constants/package.json +1 -1
  98. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  99. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  100. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  101. package/dist/dynamic/helpers/package.json +1 -1
  102. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  103. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  104. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  105. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  106. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  107. package/dist/dynamic/helpers/util/package.json +1 -1
  108. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  109. package/dist/dynamic/layouts/Flex/package.json +1 -1
  110. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  111. package/dist/dynamic/layouts/Grid/package.json +1 -1
  112. package/dist/dynamic/layouts/Level/package.json +1 -1
  113. package/dist/dynamic/layouts/Split/package.json +1 -1
  114. package/dist/dynamic/layouts/Stack/package.json +1 -1
  115. package/dist/dynamic/styles/package.json +1 -1
  116. package/dist/esm/components/Checkbox/Checkbox.d.ts +0 -3
  117. package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
  118. package/dist/esm/components/Checkbox/Checkbox.js +4 -14
  119. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  120. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  121. package/dist/esm/components/Drawer/DrawerPanelContent.js +4 -2
  122. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  123. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +0 -4
  124. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  125. package/dist/esm/components/ExpandableSection/ExpandableSection.js +3 -5
  126. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  127. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +0 -4
  128. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  129. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js +2 -2
  130. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  131. package/dist/esm/components/Modal/Modal.d.ts +0 -2
  132. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  133. package/dist/esm/components/Modal/Modal.js.map +1 -1
  134. package/dist/esm/components/Modal/ModalContent.d.ts +0 -2
  135. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  136. package/dist/esm/components/Modal/ModalContent.js +2 -2
  137. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  138. package/dist/esm/components/Progress/ProgressContainer.js +2 -2
  139. package/dist/esm/components/Progress/ProgressContainer.js.map +1 -1
  140. package/dist/esm/components/Radio/Radio.d.ts +0 -3
  141. package/dist/esm/components/Radio/Radio.d.ts.map +1 -1
  142. package/dist/esm/components/Radio/Radio.js +5 -15
  143. package/dist/esm/components/Radio/Radio.js.map +1 -1
  144. package/dist/esm/components/Wizard/WizardNavInternal.js +3 -3
  145. package/dist/esm/components/Wizard/WizardNavInternal.js.map +1 -1
  146. package/dist/esm/components/Wizard/WizardNavItem.d.ts +1 -1
  147. package/dist/esm/components/Wizard/WizardNavItem.d.ts.map +1 -1
  148. package/dist/esm/components/Wizard/WizardNavItem.js +1 -2
  149. package/dist/esm/components/Wizard/WizardNavItem.js.map +1 -1
  150. package/dist/esm/components/Wizard/WizardStep.d.ts +1 -1
  151. package/dist/esm/components/Wizard/WizardStep.d.ts.map +1 -1
  152. package/dist/esm/components/Wizard/types.d.ts +2 -3
  153. package/dist/esm/components/Wizard/types.d.ts.map +1 -1
  154. package/dist/esm/components/Wizard/types.js +0 -1
  155. package/dist/esm/components/Wizard/types.js.map +1 -1
  156. package/dist/esm/helpers/FocusTrap/FocusTrap.d.ts +0 -2
  157. package/dist/esm/helpers/FocusTrap/FocusTrap.d.ts.map +1 -1
  158. package/dist/esm/helpers/FocusTrap/FocusTrap.js.map +1 -1
  159. package/dist/esm/helpers/resizeObserver.js +2 -2
  160. package/dist/esm/helpers/resizeObserver.js.map +1 -1
  161. package/dist/js/components/Checkbox/Checkbox.d.ts +0 -3
  162. package/dist/js/components/Checkbox/Checkbox.d.ts.map +1 -1
  163. package/dist/js/components/Checkbox/Checkbox.js +4 -14
  164. package/dist/js/components/Checkbox/Checkbox.js.map +1 -1
  165. package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  166. package/dist/js/components/Drawer/DrawerPanelContent.js +4 -2
  167. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  168. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +0 -4
  169. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  170. package/dist/js/components/ExpandableSection/ExpandableSection.js +3 -5
  171. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  172. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +0 -4
  173. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  174. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +2 -2
  175. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  176. package/dist/js/components/Modal/Modal.d.ts +0 -2
  177. package/dist/js/components/Modal/Modal.d.ts.map +1 -1
  178. package/dist/js/components/Modal/Modal.js.map +1 -1
  179. package/dist/js/components/Modal/ModalContent.d.ts +0 -2
  180. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  181. package/dist/js/components/Modal/ModalContent.js +2 -2
  182. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  183. package/dist/js/components/Progress/ProgressContainer.js +2 -2
  184. package/dist/js/components/Progress/ProgressContainer.js.map +1 -1
  185. package/dist/js/components/Radio/Radio.d.ts +0 -3
  186. package/dist/js/components/Radio/Radio.d.ts.map +1 -1
  187. package/dist/js/components/Radio/Radio.js +5 -15
  188. package/dist/js/components/Radio/Radio.js.map +1 -1
  189. package/dist/js/components/Wizard/WizardNavInternal.js +3 -3
  190. package/dist/js/components/Wizard/WizardNavInternal.js.map +1 -1
  191. package/dist/js/components/Wizard/WizardNavItem.d.ts +1 -1
  192. package/dist/js/components/Wizard/WizardNavItem.d.ts.map +1 -1
  193. package/dist/js/components/Wizard/WizardNavItem.js +1 -2
  194. package/dist/js/components/Wizard/WizardNavItem.js.map +1 -1
  195. package/dist/js/components/Wizard/WizardStep.d.ts +1 -1
  196. package/dist/js/components/Wizard/WizardStep.d.ts.map +1 -1
  197. package/dist/js/components/Wizard/types.d.ts +2 -3
  198. package/dist/js/components/Wizard/types.d.ts.map +1 -1
  199. package/dist/js/components/Wizard/types.js +0 -1
  200. package/dist/js/components/Wizard/types.js.map +1 -1
  201. package/dist/js/helpers/FocusTrap/FocusTrap.d.ts +0 -2
  202. package/dist/js/helpers/FocusTrap/FocusTrap.d.ts.map +1 -1
  203. package/dist/js/helpers/FocusTrap/FocusTrap.js.map +1 -1
  204. package/dist/js/helpers/resizeObserver.js +1 -1
  205. package/dist/js/helpers/resizeObserver.js.map +1 -1
  206. package/dist/umd/assets/{output-CJfbZNQh.css → output-Bj1Aarly.css} +14883 -14883
  207. package/dist/umd/react-core.min.js +1 -1
  208. package/helpers/package.json +1 -1
  209. package/layouts/package.json +1 -1
  210. package/next/package.json +1 -1
  211. package/package.json +2 -2
  212. package/src/components/Alert/examples/Alert.md +275 -26
  213. package/src/components/Checkbox/Checkbox.tsx +2 -21
  214. package/src/components/Checkbox/__tests__/Checkbox.test.tsx +0 -34
  215. package/src/components/Drawer/DrawerPanelContent.tsx +3 -5
  216. package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +0 -37
  217. package/src/components/ExpandableSection/ExpandableSection.tsx +0 -10
  218. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +0 -8
  219. package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +0 -17
  220. package/src/components/ExpandableSection/__tests__/ExpandableSectionToggle.test.tsx +0 -17
  221. package/src/components/MenuToggle/examples/MenuToggle.md +96 -13
  222. package/src/components/Modal/Modal.tsx +0 -2
  223. package/src/components/Modal/ModalContent.tsx +0 -4
  224. package/src/components/Modal/__tests__/Modal.test.tsx +0 -9
  225. package/src/components/Modal/__tests__/ModalContent.test.tsx +1 -17
  226. package/src/components/Modal/examples/Modal.md +5 -14
  227. package/src/components/Modal/examples/ModalWithDropdown.tsx +7 -34
  228. package/src/components/Panel/examples/Panel.md +159 -10
  229. package/src/components/Progress/ProgressContainer.tsx +2 -2
  230. package/src/components/Progress/__tests__/Generated/__snapshots__/ProgressContainer.test.tsx.snap +1 -1
  231. package/src/components/Progress/__tests__/__snapshots__/Progress.test.tsx.snap +1 -1
  232. package/src/components/Radio/Radio.tsx +3 -21
  233. package/src/components/Radio/__tests__/Radio.test.tsx +0 -44
  234. package/src/components/Tabs/__tests__/Tabs.test.tsx +1 -109
  235. package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +2 -2
  236. package/src/components/Tabs/examples/Tabs.md +4 -38
  237. package/src/components/Tabs/examples/TabsSeparateContent.tsx +2 -3
  238. package/src/components/Wizard/WizardNavInternal.tsx +3 -3
  239. package/src/components/Wizard/WizardNavItem.tsx +2 -5
  240. package/src/components/Wizard/WizardStep.tsx +1 -1
  241. package/src/components/Wizard/__tests__/Wizard.test.tsx +39 -0
  242. package/src/components/Wizard/__tests__/WizardNavItem.test.tsx +0 -6
  243. package/src/components/Wizard/__tests__/WizardStep.test.tsx +0 -2
  244. package/src/components/Wizard/examples/WizardStepStatus.tsx +7 -28
  245. package/src/components/Wizard/types.tsx +2 -3
  246. package/src/demos/AlertGroup.md +1 -1
  247. package/src/demos/BackToTop.md +1 -1
  248. package/src/demos/{Button/examples/ButtonProgress.tsx → Button.md} +19 -1
  249. package/src/demos/CardView/CardView.md +1 -1
  250. package/src/demos/DataListDemo.md +4 -4
  251. package/src/demos/DescriptionList/DescriptionList.md +2 -2
  252. package/src/demos/Nav.md +9 -9
  253. package/src/demos/{PasswordGenerator/examples/PasswordGenerator.tsx → PasswordGenerator.md} +19 -3
  254. package/src/demos/PrimaryDetail.md +6 -6
  255. package/src/demos/RTL/RTL.md +1 -1
  256. package/src/demos/SearchInput/SearchInput.md +487 -2
  257. package/src/demos/Toolbar.md +1 -1
  258. package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +1 -1
  259. package/src/helpers/FocusTrap/FocusTrap.tsx +0 -2
  260. package/src/helpers/FocusTrap/__tests__/Generated/FocusTrap.test.tsx +3 -3
  261. package/src/helpers/OUIA/OUIA.md +10 -2
  262. package/src/helpers/resizeObserver.tsx +2 -2
  263. package/src/layouts/Bullseye/examples/Bullseye.md +5 -1
  264. package/src/layouts/Flex/examples/Flex.md +442 -42
  265. package/src/layouts/Level/examples/Level.md +15 -3
  266. package/src/layouts/Split/examples/Split.md +34 -4
  267. package/src/components/Alert/examples/AlertCustomIcons.tsx +0 -17
  268. package/src/components/Alert/examples/AlertExpandable.tsx +0 -36
  269. package/src/components/Alert/examples/AlertInlineVariants.tsx +0 -12
  270. package/src/components/Alert/examples/AlertInlineVariations.tsx +0 -45
  271. package/src/components/Alert/examples/AlertPlainInlineVariants.tsx +0 -12
  272. package/src/components/Alert/examples/AlertPlainInlineVariations.tsx +0 -7
  273. package/src/components/Alert/examples/AlertStaticLiveRegion.tsx +0 -29
  274. package/src/components/Alert/examples/AlertTimeout.tsx +0 -45
  275. package/src/components/Alert/examples/AlertTruncated.tsx +0 -28
  276. package/src/components/Alert/examples/AlertVariants.tsx +0 -12
  277. package/src/components/Alert/examples/AlertVariations.tsx +0 -43
  278. package/src/components/MenuToggle/examples/MenuToggleAvatarText.tsx +0 -15
  279. package/src/components/MenuToggle/examples/MenuToggleBadge.tsx +0 -9
  280. package/src/components/MenuToggle/examples/MenuToggleCollapsed.tsx +0 -3
  281. package/src/components/MenuToggle/examples/MenuToggleDisabled.tsx +0 -3
  282. package/src/components/MenuToggle/examples/MenuToggleExpanded.tsx +0 -3
  283. package/src/components/MenuToggle/examples/MenuToggleFullHeight.tsx +0 -9
  284. package/src/components/MenuToggle/examples/MenuToggleFullWidth.tsx +0 -7
  285. package/src/components/MenuToggle/examples/MenuTogglePlainIcon.tsx +0 -11
  286. package/src/components/MenuToggle/examples/MenuTogglePlainTextLabel.tsx +0 -16
  287. package/src/components/MenuToggle/examples/MenuToggleVariantStyles.tsx +0 -14
  288. package/src/components/Panel/examples/PanelBasic.tsx +0 -9
  289. package/src/components/Panel/examples/PanelBordered.tsx +0 -9
  290. package/src/components/Panel/examples/PanelFooterExample.tsx +0 -10
  291. package/src/components/Panel/examples/PanelHeaderExample.tsx +0 -11
  292. package/src/components/Panel/examples/PanelHeaderFooter.tsx +0 -12
  293. package/src/components/Panel/examples/PanelNoBody.tsx +0 -7
  294. package/src/components/Panel/examples/PanelRaised.tsx +0 -9
  295. package/src/components/Panel/examples/PanelScrollable.tsx +0 -35
  296. package/src/components/Panel/examples/PanelScrollableHeaderFooter.tsx +0 -38
  297. package/src/components/Panel/examples/PanelSecondaryVariant.tsx +0 -9
  298. package/src/demos/Button/Button.md +0 -19
  299. package/src/demos/PasswordGenerator/PasswordGenerator.md +0 -16
  300. package/src/demos/SearchInput/examples/SearchInputAdvancedComposable.tsx +0 -322
  301. package/src/demos/SearchInput/examples/SearchInputAutocomplete.tsx +0 -165
  302. package/src/helpers/FocusTrap/__tests__/FocusTrap.test.tsx +0 -17
  303. package/src/helpers/OUIA/examples/OuiaExample.tsx +0 -11
  304. package/src/layouts/Bullseye/examples/BullseyeBasic.tsx +0 -7
  305. package/src/layouts/Flex/examples/FlexAdjustingWidth.tsx +0 -18
  306. package/src/layouts/Flex/examples/FlexAlignAdjacentContent.tsx +0 -16
  307. package/src/layouts/Flex/examples/FlexAlignRightMultipleGroups.tsx +0 -18
  308. package/src/layouts/Flex/examples/FlexAlignRightSingleItem.tsx +0 -8
  309. package/src/layouts/Flex/examples/FlexAlignSelfBaseline.tsx +0 -15
  310. package/src/layouts/Flex/examples/FlexAlignSelfCenter.tsx +0 -15
  311. package/src/layouts/Flex/examples/FlexAlignSelfFlexEnd.tsx +0 -15
  312. package/src/layouts/Flex/examples/FlexAlignSelfStretch.tsx +0 -15
  313. package/src/layouts/Flex/examples/FlexAligningRight.tsx +0 -11
  314. package/src/layouts/Flex/examples/FlexAlternative.tsx +0 -11
  315. package/src/layouts/Flex/examples/FlexBasic.tsx +0 -11
  316. package/src/layouts/Flex/examples/FlexCanGrow.tsx +0 -18
  317. package/src/layouts/Flex/examples/FlexColumnGap.tsx +0 -16
  318. package/src/layouts/Flex/examples/FlexColumnLayout.tsx +0 -9
  319. package/src/layouts/Flex/examples/FlexColumnWidths.tsx +0 -18
  320. package/src/layouts/Flex/examples/FlexControlTextWidth.tsx +0 -17
  321. package/src/layouts/Flex/examples/FlexDefaultLayout.tsx +0 -11
  322. package/src/layouts/Flex/examples/FlexFirstLastOrder.tsx +0 -13
  323. package/src/layouts/Flex/examples/FlexGap.tsx +0 -16
  324. package/src/layouts/Flex/examples/FlexIndividuallySpaced.tsx +0 -14
  325. package/src/layouts/Flex/examples/FlexInline.tsx +0 -11
  326. package/src/layouts/Flex/examples/FlexJustifyContentEnd.tsx +0 -10
  327. package/src/layouts/Flex/examples/FlexJustifyContentFlexStart.tsx +0 -9
  328. package/src/layouts/Flex/examples/FlexJustifyContentSpaceBetween.tsx +0 -9
  329. package/src/layouts/Flex/examples/FlexNestedItems.tsx +0 -15
  330. package/src/layouts/Flex/examples/FlexNesting.tsx +0 -15
  331. package/src/layouts/Flex/examples/FlexNestingInColumns.tsx +0 -15
  332. package/src/layouts/Flex/examples/FlexOrdering.tsx +0 -24
  333. package/src/layouts/Flex/examples/FlexResponsiveFirstLastOrder.tsx +0 -15
  334. package/src/layouts/Flex/examples/FlexResponsiveOrdering.tsx +0 -25
  335. package/src/layouts/Flex/examples/FlexRowGap.tsx +0 -16
  336. package/src/layouts/Flex/examples/FlexSpacingNone.tsx +0 -11
  337. package/src/layouts/Flex/examples/FlexSpacingXl.tsx +0 -11
  338. package/src/layouts/Flex/examples/FlexStackingElements.tsx +0 -18
  339. package/src/layouts/Flex/examples/FlexSwitchingColumnRow.tsx +0 -16
  340. package/src/layouts/Level/examples/LevelBasic.tsx +0 -9
  341. package/src/layouts/Level/examples/LevelWithGutters.tsx +0 -9
  342. package/src/layouts/Split/examples/SplitBasic.tsx +0 -9
  343. package/src/layouts/Split/examples/SplitWithGutter.tsx +0 -9
  344. package/src/layouts/Split/examples/SplitWrappable.tsx +0 -20
@@ -3,7 +3,7 @@ import progressStyle from '@patternfly/react-styles/css/components/Progress/prog
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import { Tooltip, TooltipPosition } from '../Tooltip';
5
5
  import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
6
- import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
6
+ import TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';
7
7
  import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
8
8
  import { AriaProps, ProgressBar } from './ProgressBar';
9
9
  import { ProgressHelperText } from './ProgressHelperText';
@@ -61,7 +61,7 @@ export interface ProgressContainerProps extends Omit<React.HTMLProps<HTMLDivElem
61
61
  }
62
62
 
63
63
  const variantToIcon = {
64
- danger: ExclamationCircleIcon,
64
+ danger: TimesCircleIcon,
65
65
  success: CheckCircleIcon,
66
66
  warning: ExclamationTriangleIcon
67
67
  };
@@ -31,7 +31,7 @@ exports[`ProgressContainer should match snapshot (auto-generated) 1`] = `
31
31
  width="1em"
32
32
  >
33
33
  <path
34
- d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
34
+ d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"
35
35
  />
36
36
  </svg>
37
37
  </span>
@@ -298,7 +298,7 @@ exports[`Progress variant danger 1`] = `
298
298
  width="1em"
299
299
  >
300
300
  <path
301
- d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
301
+ d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"
302
302
  />
303
303
  </svg>
304
304
  </span>
@@ -3,7 +3,6 @@ import styles from '@patternfly/react-styles/css/components/Radio/radio';
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import { PickOptional } from '../../helpers/typeUtils';
5
5
  import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
6
- import { getUniqueId } from '../../helpers/util';
7
6
 
8
7
  export interface RadioProps
9
8
  extends Omit<React.HTMLProps<HTMLInputElement>, 'disabled' | 'label' | 'onChange' | 'type'>,
@@ -40,8 +39,6 @@ export interface RadioProps
40
39
  description?: React.ReactNode;
41
40
  /** Body of the radio. */
42
41
  body?: React.ReactNode;
43
- /** Custom aria-describedby value for the radio input. If not provided and description is set, a unique ID will be generated automatically. */
44
- 'aria-describedby'?: string;
45
42
  /** Sets the radio wrapper component to render. Defaults to "div". If set to "label", behaves the same as if isLabelWrapped prop was specified. */
46
43
  component?: React.ElementType;
47
44
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
@@ -50,7 +47,7 @@ export interface RadioProps
50
47
  ouiaSafe?: boolean;
51
48
  }
52
49
 
53
- class Radio extends Component<RadioProps, { ouiaStateId: string; descriptionId: string }> {
50
+ class Radio extends Component<RadioProps, { ouiaStateId: string }> {
54
51
  static displayName = 'Radio';
55
52
  static defaultProps: PickOptional<RadioProps> = {
56
53
  className: '',
@@ -66,8 +63,7 @@ class Radio extends Component<RadioProps, { ouiaStateId: string; descriptionId:
66
63
  console.error('Radio:', 'Radio requires an aria-label to be specified');
67
64
  }
68
65
  this.state = {
69
- ouiaStateId: getDefaultOUIAId(Radio.displayName),
70
- descriptionId: getUniqueId('pf-radio-description')
66
+ ouiaStateId: getDefaultOUIAId(Radio.displayName)
71
67
  };
72
68
  }
73
69
 
@@ -78,7 +74,6 @@ class Radio extends Component<RadioProps, { ouiaStateId: string; descriptionId:
78
74
  render() {
79
75
  const {
80
76
  'aria-label': ariaLabel,
81
- 'aria-describedby': ariaDescribedBy,
82
77
  checked,
83
78
  className,
84
79
  inputClassName,
@@ -103,14 +98,6 @@ class Radio extends Component<RadioProps, { ouiaStateId: string; descriptionId:
103
98
  console.error('Radio:', 'id is required to make input accessible');
104
99
  }
105
100
 
106
- // Handle aria-describedby logic
107
- let ariaDescribedByValue: string | undefined;
108
- if (ariaDescribedBy !== undefined) {
109
- ariaDescribedByValue = ariaDescribedBy === '' ? undefined : ariaDescribedBy;
110
- } else if (description) {
111
- ariaDescribedByValue = this.state.descriptionId;
112
- }
113
-
114
101
  const inputRendered = (
115
102
  <input
116
103
  {...props}
@@ -118,7 +105,6 @@ class Radio extends Component<RadioProps, { ouiaStateId: string; descriptionId:
118
105
  type="radio"
119
106
  onChange={this.handleChange}
120
107
  aria-invalid={!isValid}
121
- aria-describedby={ariaDescribedByValue}
122
108
  disabled={isDisabled}
123
109
  checked={checked || isChecked}
124
110
  {...(checked === undefined && { defaultChecked })}
@@ -157,11 +143,7 @@ class Radio extends Component<RadioProps, { ouiaStateId: string; descriptionId:
157
143
  {labelRendered}
158
144
  </>
159
145
  )}
160
- {description && (
161
- <span id={this.state.descriptionId} className={css(styles.radioDescription)}>
162
- {description}
163
- </span>
164
- )}
146
+ {description && <span className={css(styles.radioDescription)}>{description}</span>}
165
147
  {body && <span className={css(styles.radioBody)}>{body}</span>}
166
148
  </Component>
167
149
  );
@@ -139,48 +139,4 @@ describe('Radio', () => {
139
139
  expect(wrapper.children[0].tagName).toBe('LABEL');
140
140
  expect(wrapper.children[1].tagName).toBe('INPUT');
141
141
  });
142
-
143
- test('Sets aria-describedby when description is provided', () => {
144
- render(<Radio id="test-id" name="check" aria-label="test radio" description="test description" />);
145
-
146
- const radio = screen.getByRole('radio');
147
- const descriptionElement = screen.getByText('test description');
148
-
149
- expect(radio).toHaveAttribute('aria-describedby', descriptionElement.id);
150
- expect(descriptionElement).toHaveAttribute('id');
151
- });
152
-
153
- test('Sets custom aria-describedby when provided', () => {
154
- render(
155
- <Radio
156
- id="test-id"
157
- name="check"
158
- aria-label="test radio"
159
- description="test description"
160
- aria-describedby="custom-id"
161
- />
162
- );
163
-
164
- const radio = screen.getByRole('radio');
165
-
166
- expect(radio).toHaveAttribute('aria-describedby', 'custom-id');
167
- });
168
-
169
- test('Does not set aria-describedby when no description is provided', () => {
170
- render(<Radio id="test-id" name="check" aria-label="test radio" />);
171
-
172
- const radio = screen.getByRole('radio');
173
-
174
- expect(radio).not.toHaveAttribute('aria-describedby');
175
- });
176
-
177
- test('Does not set aria-describedby when description is provided but aria-describedby is empty string', () => {
178
- render(
179
- <Radio id="test-id" name="check" aria-label="test radio" description="test description" aria-describedby="" />
180
- );
181
-
182
- const radio = screen.getByRole('radio');
183
-
184
- expect(radio).not.toHaveAttribute('aria-describedby');
185
- });
186
142
  });
@@ -1,83 +1,15 @@
1
1
  import { render, screen, act } from '@testing-library/react';
2
2
  import userEvent from '@testing-library/user-event';
3
- import { Tabs, TabsProps } from '../Tabs';
3
+ import { Tabs } from '../Tabs';
4
4
  import styles from '@patternfly/react-styles/css/components/Tabs/tabs';
5
5
  import { Tab } from '../Tab';
6
6
  import { TabTitleText } from '../TabTitleText';
7
7
  import { TabTitleIcon } from '../TabTitleIcon';
8
8
  import { TabContent } from '../TabContent';
9
9
  import { TabContentBody } from '../TabContentBody';
10
- import { createRef } from 'react';
11
10
 
12
11
  jest.mock('../../../helpers/GenerateId/GenerateId');
13
12
 
14
- const renderSeparateTabs = (props?: Pick<TabsProps, 'activeKey' | 'defaultActiveKey'>) => {
15
- const contentRef1 = createRef<HTMLElement>();
16
- const contentRef2 = createRef<HTMLElement>();
17
- const contentRef3 = createRef<HTMLElement>();
18
-
19
- let calculatedActiveKey;
20
- if (props?.defaultActiveKey) {
21
- calculatedActiveKey = props?.defaultActiveKey;
22
- } else {
23
- calculatedActiveKey = props?.activeKey;
24
- }
25
-
26
- return (
27
- <>
28
- <Tabs id="separateTabs" {...props}>
29
- <Tab
30
- eventKey={0}
31
- title={<TabTitleText>Tab item 1</TabTitleText>}
32
- tabContentId="refTab1Section"
33
- tabContentRef={contentRef1}
34
- />
35
- <Tab
36
- eventKey={1}
37
- title={<TabTitleText>Tab item 2</TabTitleText>}
38
- tabContentId="refTab2Section"
39
- tabContentRef={contentRef2}
40
- />
41
- <Tab
42
- eventKey={2}
43
- title={<TabTitleText>Tab item 3</TabTitleText>}
44
- tabContentId="refTab3Section"
45
- tabContentRef={contentRef3}
46
- />
47
- </Tabs>
48
- <div>
49
- <TabContent
50
- eventKey={0}
51
- id="refTab1Section"
52
- ref={contentRef1}
53
- aria-label="Tab item 1"
54
- hidden={calculatedActiveKey !== 0}
55
- >
56
- Tab 1 section
57
- </TabContent>
58
- <TabContent
59
- eventKey={1}
60
- id="refTab2Section"
61
- ref={contentRef2}
62
- aria-label="Tab item 2"
63
- hidden={calculatedActiveKey !== 1}
64
- >
65
- <TabContentBody>Tab 2 section</TabContentBody>
66
- </TabContent>
67
- <TabContent
68
- eventKey={2}
69
- id="refTab3Section"
70
- ref={contentRef3}
71
- aria-label="Tab item 3"
72
- hidden={calculatedActiveKey !== 2}
73
- >
74
- <TabContentBody hasPadding>Tab 3 section with padding </TabContentBody>
75
- </TabContent>
76
- </div>
77
- </>
78
- );
79
- };
80
-
81
13
  test(`Renders with classes ${styles.tabs} and ${styles.modifiers.animateCurrent} by default`, () => {
82
14
  render(
83
15
  <Tabs role="region">
@@ -497,46 +429,6 @@ test('should render tabs with separate content', () => {
497
429
  expect(asFragment()).toMatchSnapshot();
498
430
  });
499
431
 
500
- test('should render correct tab content for uncontrolled tabs with separate content', () => {
501
- render(renderSeparateTabs({ defaultActiveKey: 1 }));
502
-
503
- expect(screen.getByText(/Tab 1 section/i)).not.toBeVisible();
504
- expect(screen.getByText(/Tab 2 section/i)).toBeVisible();
505
- expect(screen.getByText(/Tab 3 section with padding/i)).not.toBeVisible();
506
- });
507
-
508
- test('should correctly advance tab content for uncontrolled tabs with separate content', async () => {
509
- render(renderSeparateTabs({ defaultActiveKey: 1 }));
510
-
511
- userEvent.setup();
512
- expect(screen.getByText(/Tab 1 section/i)).not.toBeVisible();
513
- expect(screen.getByText(/Tab 2 section/i)).toBeVisible();
514
- expect(screen.getByText(/Tab 3 section with padding/i)).not.toBeVisible();
515
- await userEvent.click(screen.getByRole('tab', { name: /Tab item 1/i }));
516
- expect(screen.getByText(/Tab 1 section/i)).toBeVisible();
517
- expect(screen.getByText(/Tab 2 section/i)).not.toBeVisible();
518
- });
519
-
520
- test('should render correct tab content for controlled tabs with separate content', () => {
521
- render(renderSeparateTabs({ activeKey: 1 }));
522
-
523
- expect(screen.getByText(/Tab 1 section/i)).not.toBeVisible();
524
- expect(screen.getByText(/Tab 2 section/i)).toBeVisible();
525
- expect(screen.getByText(/Tab 3 section with padding/i)).not.toBeVisible();
526
- });
527
-
528
- test('should correctly advance tab content for controlled tabs with separate content', async () => {
529
- render(renderSeparateTabs({ activeKey: 1 }));
530
-
531
- userEvent.setup();
532
- expect(screen.getByText(/Tab 1 section/i)).not.toBeVisible();
533
- expect(screen.getByText(/Tab 2 section/i)).toBeVisible();
534
- expect(screen.getByText(/Tab 3 section with padding/i)).not.toBeVisible();
535
- await userEvent.click(screen.getByRole('tab', { name: /Tab item 1/i }));
536
- expect(screen.getByText(/Tab 1 section/i)).toBeVisible();
537
- expect(screen.getByText(/Tab 2 section/i)).not.toBeVisible();
538
- });
539
-
540
432
  test('should render box tabs of secondary variant', () => {
541
433
  const { asFragment } = render(
542
434
  <Tabs id="boxSecondaryVariantTabs" isBox variant="secondary">
@@ -281,7 +281,7 @@ exports[`should render box tabs of secondary variant 1`] = `
281
281
  <DocumentFragment>
282
282
  <div
283
283
  class="pf-v6-c-tabs pf-m-animate-current pf-m-box pf-m-secondary pf-m-initializing-accent"
284
- data-ouia-component-id="OUIA-Generated-Tabs-24"
284
+ data-ouia-component-id="OUIA-Generated-Tabs-20"
285
285
  data-ouia-component-type="PF6/Tabs"
286
286
  data-ouia-safe="true"
287
287
  id="boxSecondaryVariantTabs"
@@ -1228,7 +1228,7 @@ exports[`should render tabs with no bottom border 1`] = `
1228
1228
  <DocumentFragment>
1229
1229
  <div
1230
1230
  class="pf-v6-c-tabs pf-m-animate-current pf-m-no-border-bottom pf-m-initializing-accent"
1231
- data-ouia-component-id="OUIA-Generated-Tabs-25"
1231
+ data-ouia-component-id="OUIA-Generated-Tabs-21"
1232
1232
  data-ouia-component-type="PF6/Tabs"
1233
1233
  data-ouia-safe="true"
1234
1234
  id="noBottomBorderTabs"
@@ -2,18 +2,7 @@
2
2
  id: Tabs
3
3
  section: components
4
4
  cssPrefix: pf-v6-c-tabs
5
- propComponents:
6
- [
7
- 'Tabs',
8
- 'Tab',
9
- 'TabContent',
10
- 'TabContentBody',
11
- 'TabTitleText',
12
- 'TabTitleIcon',
13
- 'HorizontalOverflowObject',
14
- 'TabAction',
15
- 'PopperOptions'
16
- ]
5
+ propComponents: ['Tabs', 'Tab', 'TabContent', 'TabContentBody', 'TabTitleText', 'TabTitleIcon', 'HorizontalOverflowObject', 'TabAction', 'PopperOptions']
17
6
  ouia: true
18
7
  ---
19
8
 
@@ -46,7 +35,6 @@ Tabs can be styled as 'default' or 'boxed':
46
35
  - Boxed tabs are outlined to emphasize the area that a tab spans. To preview boxed tabs in the following examples, select the 'isBox' checkbox, which sets the `isBox` property to true.
47
36
 
48
37
  ```ts file="./TabsDefault.tsx"
49
-
50
38
  ```
51
39
 
52
40
  ### Boxed secondary tabs
@@ -56,7 +44,6 @@ To change the background color of boxed tabs or the tab content, use the `varian
56
44
  Toggle the tab color by selecting the 'Tabs secondary variant' checkbox in the following example.
57
45
 
58
46
  ```ts file="./TabsBoxSecondary.tsx"
59
-
60
47
  ```
61
48
 
62
49
  ### Vertical tabs
@@ -66,7 +53,6 @@ Vertical tabs are placed on the left-hand side of a page or container and may ap
66
53
  To style tabs vertically, use the `isVertical` property.
67
54
 
68
55
  ```ts file="./TabsVertical.tsx"
69
-
70
56
  ```
71
57
 
72
58
  ### Vertical expandable tabs
@@ -78,7 +64,6 @@ Expandable tabs can be enabled at different breakpoints. The following example p
78
64
  To flag vertical tabs when they're expanded, use the `isExpanded` property.
79
65
 
80
66
  ```ts file="./TabsVerticalExpandable.tsx"
81
-
82
67
  ```
83
68
 
84
69
  ### Vertical expandable uncontrolled
@@ -86,7 +71,6 @@ To flag vertical tabs when they're expanded, use the `isExpanded` property.
86
71
  To flag the default expanded state for uncontrolled tabs, use the `defaultIsExpanded` property.
87
72
 
88
73
  ```ts file="./TabsVerticalExpandableUncontrolled.tsx"
89
-
90
74
  ```
91
75
 
92
76
  ### Default overflow tabs
@@ -94,7 +78,6 @@ To flag the default expanded state for uncontrolled tabs, use the `defaultIsExpa
94
78
  By default, overflow is applied when there are too many tabs for the width of the container they are in. This overflow can be navigated by side-scrolling within the tabs section, or by selecting the left and right arrows.
95
79
 
96
80
  ```ts file="./TabsDefaultOverflow.tsx"
97
-
98
81
  ```
99
82
 
100
83
  ### Horizontal overflow tabs
@@ -106,7 +89,6 @@ To enable horizontal overflow, use the `isOverflowHorizontal` property.
106
89
  In the following example, select the 'Show overflowing tab count' checkbox to add a count of overflow items to the final “more” tab.
107
90
 
108
91
  ```ts file="./TabsHorizontalOverflow.tsx"
109
-
110
92
  ```
111
93
 
112
94
  ### With tooltip react ref
@@ -116,15 +98,14 @@ When using a React ref to link a tooltip to a tab component via the `reference`
116
98
  The tooltip should also have the `id` property passed in. The value of `id` should be passed into the tab's `aria-describedby` property. This ensures a tooltip used with a React ref will be announced by the JAWS and NVDA screen readers.
117
99
 
118
100
  ```ts file="./TabsTooltipReactRef.tsx"
119
-
120
101
  ```
121
102
 
122
103
  ### Uncontrolled tabs
123
104
 
124
105
  To allow the `<Tabs>` component to manage setting the active tab and displaying correct content itself, use uncontrolled tabs, as shown in the following example.
125
106
 
126
- ```ts file="./TabsUncontrolled.tsx"
127
107
 
108
+ ```ts file="./TabsUncontrolled.tsx"
128
109
  ```
129
110
 
130
111
  ### With adjusted inset
@@ -132,7 +113,6 @@ To allow the `<Tabs>` component to manage setting the active tab and displaying
132
113
  To adjust the inset of tabs and visually separate them more, use the `inset` property. You can set the inset to "insetNone", "insetSm", "insetMd", "insetLg", "insetXl", or "inset2xl" at "default", "sm", "md", "lg, "xl, and "2xl" breakpoints.
133
114
 
134
115
  ```ts file="./TabsInset.tsx"
135
-
136
116
  ```
137
117
 
138
118
  ### With page insets
@@ -140,7 +120,6 @@ To adjust the inset of tabs and visually separate them more, use the `inset` pro
140
120
  To adjust the left padding of tabs, use the `usePageInsets` property. This property aligns the tabs padding with the default padding of the page section, which makes it easier to align tabs with page section content.
141
121
 
142
122
  ```ts file="./TabsPageInsets.tsx"
143
-
144
123
  ```
145
124
 
146
125
  ### With icons and text
@@ -150,7 +129,6 @@ You can render different content in the `title` property of a tab to add icons a
150
129
  To add an icon to a tab, pass a `<TabTitleIcon>` component that contains the icon of your choice into the `title`. To use an icon alongside styled text, keep the text in the `<TabTitleText>` component.
151
130
 
152
131
  ```ts file="./TabsIconAndText.tsx"
153
-
154
132
  ```
155
133
 
156
134
  ### Subtabs
@@ -160,7 +138,6 @@ Use subtabs within other components, like modals. Subtabs have less visually pro
160
138
  To apply subtab styling to tabs, use the `isSubtab` property.
161
139
 
162
140
  ```ts file="./TabsSubtabs.tsx"
163
-
164
141
  ```
165
142
 
166
143
  ### Filled tabs with icons
@@ -168,7 +145,6 @@ To apply subtab styling to tabs, use the `isSubtab` property.
168
145
  To allow tabs to fill the available width of the page section, use the `isFilled` property.
169
146
 
170
147
  ```ts file="./TabsFilledWithIcons.tsx"
171
-
172
148
  ```
173
149
 
174
150
  ### Tabs linked to nav elements
@@ -178,7 +154,6 @@ To let tabs link to nav elements, pass `{TabsComponent.nav}` into the `component
178
154
  Nav tabs should use the `href` property to link the tab to the URL of another page or page section. A tab with an `href` will render as an `<a>` instead of a `<button>`.
179
155
 
180
156
  ```ts file="./TabsNav.tsx"
181
-
182
157
  ```
183
158
 
184
159
  ### Subtabs linked to nav elements
@@ -186,15 +161,13 @@ Nav tabs should use the `href` property to link the tab to the URL of another pa
186
161
  Subtabs can also link to nav elements.
187
162
 
188
163
  ```ts file="./TabsNavSubtab.tsx"
189
-
190
164
  ```
191
165
 
192
166
  ### With separate content
193
167
 
194
- If a `<TabContent>` component is defined outside of a `<Tabs>` component, use the `tabContentRef` and `tabContentId` properties. The `hidden` property is used on `TabContent` to set the initial visible content.
168
+ If a `<TabContent>` component is defined outside of a `<Tabs>` component, use the `tabContentRef` and `tabContentId` properties
195
169
 
196
170
  ```ts file="./TabsSeparateContent.tsx"
197
-
198
171
  ```
199
172
 
200
173
  ### With tab content with body and padding
@@ -202,7 +175,6 @@ If a `<TabContent>` component is defined outside of a `<Tabs>` component, use th
202
175
  To add a content body to a `<TabContent>` component, pass a `<TabContentBody>`. To add padding to the body section, use the `hasPadding` property.
203
176
 
204
177
  ```ts file="./TabsContentWithBodyPadding.tsx"
205
-
206
178
  ```
207
179
 
208
180
  ### Children mounting on click
@@ -212,7 +184,6 @@ To mount tab children (add to the DOM) when a tab is clicked, use the `mountOnEn
212
184
  Note that this property does not create the tab children until the tab is clicked, so they are not preloaded into the DOM.
213
185
 
214
186
  ```ts file="./TabsChildrenMounting.tsx"
215
-
216
187
  ```
217
188
 
218
189
  ### Unmounting invisible children
@@ -220,17 +191,15 @@ Note that this property does not create the tab children until the tab is clicke
220
191
  To unmount tab children (remove from the DOM) when they are no longer visible, use the `unmountOnExit` property.
221
192
 
222
193
  ```ts file="./TabsUnmountingInvisibleChildren.tsx"
223
-
224
194
  ```
225
195
 
226
196
  ### Toggled tab content
227
197
 
228
- You may control tabs from outside of the tabs component. For example, select the "Hide tab 2" button below to make "Tab item 2" invisible.
198
+ You may control tabs from outside of the tabs component. For example, select the "Hide tab 2" button below to make "Tab item 2" invisible.
229
199
 
230
200
  The tab its content should only be mounted when the tab is visible.
231
201
 
232
202
  ```ts file="./TabsToggledSeparateContent.tsx"
233
-
234
203
  ```
235
204
 
236
205
  ### Dynamic tabs
@@ -238,7 +207,6 @@ The tab its content should only be mounted when the tab is visible.
238
207
  To enable closeable tabs, pass the `onClose` property to the `<Tabs>` component. To enable a button that adds new tabs, pass the `onAdd` property to `<Tabs>`.
239
208
 
240
209
  ```ts file="./TabsDynamic.tsx"
241
-
242
210
  ```
243
211
 
244
212
  ### With help action popover
@@ -248,7 +216,6 @@ You may add a help action to a tab to provide users with additional context in a
248
216
  To render an action beside the tab content, use the `actions` property of a `<Tab>`. Pass a popover and a `<TabsAction>` component into the `actions` property.
249
217
 
250
218
  ```ts file="./TabsHelp.tsx"
251
-
252
219
  ```
253
220
 
254
221
  ### With help and close actions
@@ -258,5 +225,4 @@ To add multiple actions to a tab, create a `<TabAction>` component for each acti
258
225
  The following example passes in both help popover and close actions.
259
226
 
260
227
  ```ts file="./TabsHelpAndClose.tsx"
261
-
262
228
  ```
@@ -48,7 +48,6 @@ export const TabsSeparateContent: React.FunctionComponent = () => {
48
48
  id="refTab1Section"
49
49
  ref={contentRef1}
50
50
  aria-label="This is content for the first separate content tab"
51
- hidden={activeTabKey !== 0}
52
51
  >
53
52
  Tab 1 section
54
53
  </TabContent>
@@ -57,7 +56,7 @@ export const TabsSeparateContent: React.FunctionComponent = () => {
57
56
  id="refTab2Section"
58
57
  ref={contentRef2}
59
58
  aria-label="This is content for the second separate content tab"
60
- hidden={activeTabKey !== 1}
59
+ hidden
61
60
  >
62
61
  Tab 2 section
63
62
  </TabContent>
@@ -66,7 +65,7 @@ export const TabsSeparateContent: React.FunctionComponent = () => {
66
65
  id="refTab3Section"
67
66
  ref={contentRef3}
68
67
  aria-label="This is content for the third separate content tab"
69
- hidden={activeTabKey !== 2}
68
+ hidden
70
69
  >
71
70
  Tab 3 section
72
71
  </TabContent>
@@ -48,7 +48,7 @@ export const WizardNavInternal = ({
48
48
  let firstSubStepIndex: number;
49
49
  let hasActiveChild = false;
50
50
 
51
- const subNavItems = step.subStepIds?.map((subStepId, subStepIndex) => {
51
+ const subNavItems = step.subStepIds?.map((subStepId, _subStepIndex) => {
52
52
  const subStep = steps.find((step) => step.id === subStepId);
53
53
  const hasVisitedNextStep = steps.some((step) => step.index > subStep.index && step.isVisited);
54
54
  const isSubStepDisabled =
@@ -66,8 +66,8 @@ export const WizardNavInternal = ({
66
66
  return;
67
67
  }
68
68
 
69
- // Store the first sub-step index so that when its parent is clicked, the first sub-step is focused
70
- if (subStepIndex === 0) {
69
+ // Store the first visible sub-step index so that when its parent is clicked, the first sub-step is focused
70
+ if (firstSubStepIndex === undefined) {
71
71
  firstSubStepIndex = subStep.index;
72
72
  }
73
73
 
@@ -4,7 +4,6 @@ import styles from '@patternfly/react-styles/css/components/Wizard/wizard';
4
4
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
5
5
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
6
6
  import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
7
- import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
8
7
 
9
8
  import { OUIAProps, useOUIAProps } from '../../helpers';
10
9
  import { WizardNavItemStatus } from './types';
@@ -39,7 +38,7 @@ export interface WizardNavItemProps
39
38
  /** The id for the navigation item */
40
39
  id?: string | number;
41
40
  /** Used to determine the icon displayed next to content. Default has no icon. */
42
- status?: 'default' | 'error' | 'success' | 'warning';
41
+ status?: 'default' | 'error' | 'success';
43
42
  }
44
43
 
45
44
  export const WizardNavItem = ({
@@ -98,8 +97,7 @@ export const WizardNavItem = ({
98
97
  isCurrent && styles.modifiers.current,
99
98
  isDisabled && styles.modifiers.disabled,
100
99
  status === WizardNavItemStatus.Error && styles.modifiers.danger,
101
- status === WizardNavItemStatus.Success && styles.modifiers.success,
102
- status === WizardNavItemStatus.Warning && styles.modifiers.warning
100
+ status === WizardNavItemStatus.Success && styles.modifiers.success
103
101
  )}
104
102
  aria-disabled={isDisabled ? true : null}
105
103
  aria-current={isCurrent && !children ? 'step' : false}
@@ -112,7 +110,6 @@ export const WizardNavItem = ({
112
110
  <span className={css(styles.wizardNavLinkStatusIcon)}>
113
111
  {status === WizardNavItemStatus.Error && <ExclamationCircleIcon />}
114
112
  {status === WizardNavItemStatus.Success && <CheckCircleIcon />}
115
- {status === WizardNavItemStatus.Warning && <ExclamationTriangleIcon />}
116
113
  </span>
117
114
  </>
118
115
  )}
@@ -28,7 +28,7 @@ export interface WizardStepProps {
28
28
  /** Replaces the step's footer. The step's footer takes precedence over the wizard's footer. */
29
29
  footer?: React.ReactElement<any> | Partial<WizardFooterProps>;
30
30
  /** Used to determine icon next to the step's navigation item */
31
- status?: 'default' | 'error' | 'success' | 'warning';
31
+ status?: 'default' | 'error' | 'success';
32
32
  /** Flag to determine whether parent steps can expand or not. Defaults to false. */
33
33
  isExpandable?: boolean;
34
34
  }
@@ -627,3 +627,42 @@ test('onStepChange skips over disabled or hidden steps and substeps', async () =
627
627
  WizardStepChangeScope.Back
628
628
  );
629
629
  });
630
+
631
+ test('clicking parent step navigates to first visible sub-step when first sub-step is hidden', async () => {
632
+ const user = userEvent.setup();
633
+ const onStepChange = jest.fn();
634
+
635
+ render(
636
+ <Wizard onStepChange={onStepChange}>
637
+ <WizardStep id="step-1" name="Test step 1" />
638
+ <WizardStep
639
+ id="step-2"
640
+ name="Test step 2"
641
+ steps={[
642
+ <WizardStep id="step2-sub1" name="Hidden sub step" isHidden />,
643
+ <WizardStep id="step2-sub2" name="Visible sub step 1" />,
644
+ <WizardStep id="step2-sub3" name="Visible sub step 2" />
645
+ ]}
646
+ />
647
+ <WizardStep id="step-3" name="Test step 3" />
648
+ </Wizard>
649
+ );
650
+
651
+ // Navigate to step 3 first
652
+ await user.click(screen.getByRole('button', { name: 'Test step 3' }));
653
+ expect(onStepChange).toHaveBeenCalledWith(
654
+ null,
655
+ expect.objectContaining({ id: 'step-3' }),
656
+ expect.objectContaining({ id: 'step-1' }),
657
+ WizardStepChangeScope.Nav
658
+ );
659
+
660
+ // Click on parent step 2 - should navigate to the first VISIBLE sub-step (step2-sub2), not crash
661
+ await user.click(screen.getByRole('button', { name: 'Test step 2' }));
662
+ expect(onStepChange).toHaveBeenCalledWith(
663
+ null,
664
+ expect.objectContaining({ id: 'step2-sub2' }),
665
+ expect.objectContaining({ id: 'step-3' }),
666
+ WizardStepChangeScope.Nav
667
+ );
668
+ });