@patternfly/react-core 6.3.1 → 6.4.0-prerelease.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 (459) hide show
  1. package/CHANGELOG.md +136 -1
  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 -0
  91. package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -0
  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/dynamic-modules.json +6 -0
  117. package/dist/esm/components/Alert/AlertGroup.d.ts +2 -13
  118. package/dist/esm/components/Alert/AlertGroup.d.ts.map +1 -1
  119. package/dist/esm/components/Alert/AlertGroup.js +33 -38
  120. package/dist/esm/components/Alert/AlertGroup.js.map +1 -1
  121. package/dist/esm/components/Alert/AlertGroupInline.d.ts.map +1 -1
  122. package/dist/esm/components/Alert/AlertGroupInline.js +3 -1
  123. package/dist/esm/components/Alert/AlertGroupInline.js.map +1 -1
  124. package/dist/esm/components/Card/Card.d.ts +3 -1
  125. package/dist/esm/components/Card/Card.d.ts.map +1 -1
  126. package/dist/esm/components/Card/Card.js +5 -4
  127. package/dist/esm/components/Card/Card.js.map +1 -1
  128. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts +2 -0
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  130. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +3 -3
  131. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  132. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.d.ts +2 -2
  133. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
  134. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js +2 -2
  135. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
  136. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts +0 -1
  137. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  138. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +2 -2
  139. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  140. package/dist/esm/components/DataList/DataListItem.d.ts.map +1 -1
  141. package/dist/esm/components/DataList/DataListItem.js +8 -0
  142. package/dist/esm/components/DataList/DataListItem.js.map +1 -1
  143. package/dist/esm/components/Dropdown/Dropdown.d.ts +6 -20
  144. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  145. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  146. package/dist/esm/components/DualListSelector/DualListSelector.d.ts +2 -9
  147. package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  148. package/dist/esm/components/DualListSelector/DualListSelector.js +6 -16
  149. package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
  150. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
  151. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.js +3 -1
  152. package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
  153. package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
  154. package/dist/esm/components/Form/FormFieldGroupExpandable.js +3 -1
  155. package/dist/esm/components/Form/FormFieldGroupExpandable.js.map +1 -1
  156. package/dist/esm/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
  157. package/dist/esm/components/Form/InternalFormFieldGroup.js +3 -1
  158. package/dist/esm/components/Form/InternalFormFieldGroup.js.map +1 -1
  159. package/dist/esm/components/JumpLinks/JumpLinks.d.ts +2 -0
  160. package/dist/esm/components/JumpLinks/JumpLinks.d.ts.map +1 -1
  161. package/dist/esm/components/JumpLinks/JumpLinks.js +15 -3
  162. package/dist/esm/components/JumpLinks/JumpLinks.js.map +1 -1
  163. package/dist/esm/components/Label/LabelGroup.js +2 -2
  164. package/dist/esm/components/Label/LabelGroup.js.map +1 -1
  165. package/dist/esm/components/Menu/Menu.d.ts +2 -1
  166. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  167. package/dist/esm/components/Menu/Menu.js +0 -1
  168. package/dist/esm/components/Menu/Menu.js.map +1 -1
  169. package/dist/esm/components/Menu/MenuContainer.d.ts +4 -17
  170. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  171. package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
  172. package/dist/esm/components/Menu/MenuGroup.d.ts.map +1 -1
  173. package/dist/esm/components/Menu/MenuGroup.js +3 -2
  174. package/dist/esm/components/Menu/MenuGroup.js.map +1 -1
  175. package/dist/esm/components/Menu/MenuItem.js +3 -2
  176. package/dist/esm/components/Menu/MenuItem.js.map +1 -1
  177. package/dist/esm/components/Menu/MenuItemAction.d.ts.map +1 -1
  178. package/dist/esm/components/Menu/MenuItemAction.js +1 -2
  179. package/dist/esm/components/Menu/MenuItemAction.js.map +1 -1
  180. package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts +2 -0
  181. package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts.map +1 -1
  182. package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.js +2 -2
  183. package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.js.map +1 -1
  184. package/dist/esm/components/Progress/Progress.d.ts +2 -0
  185. package/dist/esm/components/Progress/Progress.d.ts.map +1 -1
  186. package/dist/esm/components/Progress/Progress.js +6 -2
  187. package/dist/esm/components/Progress/Progress.js.map +1 -1
  188. package/dist/esm/components/Progress/ProgressBar.d.ts +1 -0
  189. package/dist/esm/components/Progress/ProgressBar.d.ts.map +1 -1
  190. package/dist/esm/components/Progress/ProgressBar.js +1 -1
  191. package/dist/esm/components/Progress/ProgressBar.js.map +1 -1
  192. package/dist/esm/components/Progress/ProgressContainer.js +1 -1
  193. package/dist/esm/components/Progress/ProgressContainer.js.map +1 -1
  194. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  195. package/dist/esm/components/SearchInput/SearchInput.js +3 -1
  196. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  197. package/dist/esm/components/Select/Select.d.ts +6 -26
  198. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  199. package/dist/esm/components/Select/Select.js.map +1 -1
  200. package/dist/esm/components/Tabs/OverflowTab.d.ts +4 -25
  201. package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
  202. package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
  203. package/dist/esm/components/Tabs/Tabs.d.ts +2 -2
  204. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  205. package/dist/esm/components/Tabs/Tabs.js +4 -1
  206. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  207. package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
  208. package/dist/esm/components/Tooltip/Tooltip.js +68 -3
  209. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  210. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  211. package/dist/esm/components/TreeView/TreeView.js +3 -1
  212. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  213. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  214. package/dist/esm/components/TreeView/TreeViewListItem.js +3 -1
  215. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  216. package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
  217. package/dist/esm/components/Truncate/Truncate.js +3 -2
  218. package/dist/esm/components/Truncate/Truncate.js.map +1 -1
  219. package/dist/esm/components/Wizard/WizardNavItem.js +1 -1
  220. package/dist/esm/components/Wizard/WizardNavItem.js.map +1 -1
  221. package/dist/esm/deprecated/components/Wizard/WizardNavItem.js +1 -1
  222. package/dist/esm/deprecated/components/Wizard/WizardNavItem.js.map +1 -1
  223. package/dist/esm/helpers/AnimationsProvider/AnimationsProvider.d.ts +76 -0
  224. package/dist/esm/helpers/AnimationsProvider/AnimationsProvider.d.ts.map +1 -0
  225. package/dist/esm/helpers/AnimationsProvider/AnimationsProvider.js +83 -0
  226. package/dist/esm/helpers/AnimationsProvider/AnimationsProvider.js.map +1 -0
  227. package/dist/esm/helpers/AnimationsProvider/index.d.ts +2 -0
  228. package/dist/esm/helpers/AnimationsProvider/index.d.ts.map +1 -0
  229. package/dist/esm/helpers/AnimationsProvider/index.js +2 -0
  230. package/dist/esm/helpers/AnimationsProvider/index.js.map +1 -0
  231. package/dist/esm/helpers/Popper/Popper.d.ts +28 -21
  232. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  233. package/dist/esm/helpers/Popper/Popper.js +2 -2
  234. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  235. package/dist/esm/helpers/index.d.ts +1 -0
  236. package/dist/esm/helpers/index.d.ts.map +1 -1
  237. package/dist/esm/helpers/index.js +1 -0
  238. package/dist/esm/helpers/index.js.map +1 -1
  239. package/dist/js/components/Alert/AlertGroup.d.ts +2 -13
  240. package/dist/js/components/Alert/AlertGroup.d.ts.map +1 -1
  241. package/dist/js/components/Alert/AlertGroup.js +33 -37
  242. package/dist/js/components/Alert/AlertGroup.js.map +1 -1
  243. package/dist/js/components/Alert/AlertGroupInline.d.ts.map +1 -1
  244. package/dist/js/components/Alert/AlertGroupInline.js +3 -1
  245. package/dist/js/components/Alert/AlertGroupInline.js.map +1 -1
  246. package/dist/js/components/Card/Card.d.ts +3 -1
  247. package/dist/js/components/Card/Card.d.ts.map +1 -1
  248. package/dist/js/components/Card/Card.js +4 -4
  249. package/dist/js/components/Card/Card.js.map +1 -1
  250. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts +2 -0
  251. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  252. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +3 -3
  253. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  254. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.d.ts +2 -2
  255. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
  256. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js +2 -2
  257. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
  258. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts +0 -1
  259. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  260. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +2 -2
  261. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  262. package/dist/js/components/DataList/DataListItem.d.ts.map +1 -1
  263. package/dist/js/components/DataList/DataListItem.js +8 -0
  264. package/dist/js/components/DataList/DataListItem.js.map +1 -1
  265. package/dist/js/components/Dropdown/Dropdown.d.ts +6 -20
  266. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  267. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  268. package/dist/js/components/DualListSelector/DualListSelector.d.ts +2 -9
  269. package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  270. package/dist/js/components/DualListSelector/DualListSelector.js +7 -16
  271. package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
  272. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
  273. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js +3 -1
  274. package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
  275. package/dist/js/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
  276. package/dist/js/components/Form/FormFieldGroupExpandable.js +3 -1
  277. package/dist/js/components/Form/FormFieldGroupExpandable.js.map +1 -1
  278. package/dist/js/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
  279. package/dist/js/components/Form/InternalFormFieldGroup.js +3 -1
  280. package/dist/js/components/Form/InternalFormFieldGroup.js.map +1 -1
  281. package/dist/js/components/JumpLinks/JumpLinks.d.ts +2 -0
  282. package/dist/js/components/JumpLinks/JumpLinks.d.ts.map +1 -1
  283. package/dist/js/components/JumpLinks/JumpLinks.js +14 -2
  284. package/dist/js/components/JumpLinks/JumpLinks.js.map +1 -1
  285. package/dist/js/components/Label/LabelGroup.js +2 -2
  286. package/dist/js/components/Label/LabelGroup.js.map +1 -1
  287. package/dist/js/components/Menu/Menu.d.ts +2 -1
  288. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  289. package/dist/js/components/Menu/Menu.js +0 -1
  290. package/dist/js/components/Menu/Menu.js.map +1 -1
  291. package/dist/js/components/Menu/MenuContainer.d.ts +4 -17
  292. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  293. package/dist/js/components/Menu/MenuContainer.js.map +1 -1
  294. package/dist/js/components/Menu/MenuGroup.d.ts.map +1 -1
  295. package/dist/js/components/Menu/MenuGroup.js +3 -2
  296. package/dist/js/components/Menu/MenuGroup.js.map +1 -1
  297. package/dist/js/components/Menu/MenuItem.js +3 -2
  298. package/dist/js/components/Menu/MenuItem.js.map +1 -1
  299. package/dist/js/components/Menu/MenuItemAction.d.ts.map +1 -1
  300. package/dist/js/components/Menu/MenuItemAction.js +1 -2
  301. package/dist/js/components/Menu/MenuItemAction.js.map +1 -1
  302. package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts +2 -0
  303. package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts.map +1 -1
  304. package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.js +2 -2
  305. package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.js.map +1 -1
  306. package/dist/js/components/Progress/Progress.d.ts +2 -0
  307. package/dist/js/components/Progress/Progress.d.ts.map +1 -1
  308. package/dist/js/components/Progress/Progress.js +6 -2
  309. package/dist/js/components/Progress/Progress.js.map +1 -1
  310. package/dist/js/components/Progress/ProgressBar.d.ts +1 -0
  311. package/dist/js/components/Progress/ProgressBar.d.ts.map +1 -1
  312. package/dist/js/components/Progress/ProgressBar.js +1 -1
  313. package/dist/js/components/Progress/ProgressBar.js.map +1 -1
  314. package/dist/js/components/Progress/ProgressContainer.js +1 -1
  315. package/dist/js/components/Progress/ProgressContainer.js.map +1 -1
  316. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  317. package/dist/js/components/SearchInput/SearchInput.js +3 -1
  318. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  319. package/dist/js/components/Select/Select.d.ts +6 -26
  320. package/dist/js/components/Select/Select.d.ts.map +1 -1
  321. package/dist/js/components/Select/Select.js.map +1 -1
  322. package/dist/js/components/Tabs/OverflowTab.d.ts +4 -25
  323. package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
  324. package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
  325. package/dist/js/components/Tabs/Tabs.d.ts +2 -2
  326. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  327. package/dist/js/components/Tabs/Tabs.js +4 -1
  328. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  329. package/dist/js/components/Tooltip/Tooltip.d.ts.map +1 -1
  330. package/dist/js/components/Tooltip/Tooltip.js +68 -3
  331. package/dist/js/components/Tooltip/Tooltip.js.map +1 -1
  332. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  333. package/dist/js/components/TreeView/TreeView.js +3 -1
  334. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  335. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  336. package/dist/js/components/TreeView/TreeViewListItem.js +3 -1
  337. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  338. package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
  339. package/dist/js/components/Truncate/Truncate.js +2 -1
  340. package/dist/js/components/Truncate/Truncate.js.map +1 -1
  341. package/dist/js/components/Wizard/WizardNavItem.js +1 -1
  342. package/dist/js/components/Wizard/WizardNavItem.js.map +1 -1
  343. package/dist/js/deprecated/components/Wizard/WizardNavItem.js +1 -1
  344. package/dist/js/deprecated/components/Wizard/WizardNavItem.js.map +1 -1
  345. package/dist/js/helpers/AnimationsProvider/AnimationsProvider.d.ts +76 -0
  346. package/dist/js/helpers/AnimationsProvider/AnimationsProvider.d.ts.map +1 -0
  347. package/dist/js/helpers/AnimationsProvider/AnimationsProvider.js +89 -0
  348. package/dist/js/helpers/AnimationsProvider/AnimationsProvider.js.map +1 -0
  349. package/dist/js/helpers/AnimationsProvider/index.d.ts +2 -0
  350. package/dist/js/helpers/AnimationsProvider/index.d.ts.map +1 -0
  351. package/dist/js/helpers/AnimationsProvider/index.js +5 -0
  352. package/dist/js/helpers/AnimationsProvider/index.js.map +1 -0
  353. package/dist/js/helpers/Popper/Popper.d.ts +28 -21
  354. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  355. package/dist/js/helpers/Popper/Popper.js +2 -2
  356. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  357. package/dist/js/helpers/index.d.ts +1 -0
  358. package/dist/js/helpers/index.d.ts.map +1 -1
  359. package/dist/js/helpers/index.js +1 -0
  360. package/dist/js/helpers/index.js.map +1 -1
  361. package/dist/styles/base-no-reset.css +1172 -1
  362. package/dist/styles/base.css +1176 -1
  363. package/dist/umd/assets/{output-DA1g6ZAx.css → output-NiN4FQqb.css} +20663 -20252
  364. package/dist/umd/react-core.min.js +3 -3
  365. package/helpers/package.json +1 -1
  366. package/layouts/package.json +1 -1
  367. package/next/package.json +1 -1
  368. package/package.json +6 -6
  369. package/src/components/Alert/AlertGroup.tsx +59 -63
  370. package/src/components/Alert/AlertGroupInline.tsx +3 -1
  371. package/src/components/Alert/__tests__/AlertGroup.test.tsx +55 -4
  372. package/src/components/Card/Card.tsx +9 -3
  373. package/src/components/Card/__tests__/Card.test.tsx +11 -0
  374. package/src/components/ClipboardCopy/ClipboardCopy.tsx +5 -5
  375. package/src/components/ClipboardCopy/ClipboardCopyButton.tsx +2 -4
  376. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +0 -3
  377. package/src/components/ClipboardCopy/__tests__/ClipboardCopy.test.tsx +16 -0
  378. package/src/components/ClipboardCopy/__tests__/ClipboardCopyButton.test.tsx +5 -28
  379. package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +3 -4
  380. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopy.test.tsx.snap +1 -1
  381. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyButton.test.tsx.snap +0 -1
  382. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +0 -1
  383. package/src/components/ClipboardCopy/examples/ClipboardCopyBasic.tsx +1 -1
  384. package/src/components/ClipboardCopy/examples/ClipboardCopyExpanded.tsx +7 -1
  385. package/src/components/ClipboardCopy/examples/ClipboardCopyExpandedWithArray.tsx +7 -1
  386. package/src/components/ClipboardCopy/examples/ClipboardCopyInlineCompact.tsx +1 -1
  387. package/src/components/ClipboardCopy/examples/ClipboardCopyInlineCompactCode.tsx +7 -1
  388. package/src/components/ClipboardCopy/examples/ClipboardCopyInlineCompactInSentence.tsx +19 -3
  389. package/src/components/ClipboardCopy/examples/ClipboardCopyInlineCompactTruncation.tsx +14 -2
  390. package/src/components/ClipboardCopy/examples/ClipboardCopyInlineCompactWithAdditionalAction.tsx +1 -0
  391. package/src/components/ClipboardCopy/examples/ClipboardCopyJSONObject.tsx +8 -1
  392. package/src/components/ClipboardCopy/examples/ClipboardCopyReadOnly.tsx +1 -1
  393. package/src/components/ClipboardCopy/examples/ClipboardCopyReadOnlyExpanded.tsx +8 -1
  394. package/src/components/ClipboardCopy/examples/ClipboardCopyReadOnlyExpandedByDefault.tsx +9 -1
  395. package/src/components/DataList/DataListItem.tsx +12 -0
  396. package/src/components/Dropdown/Dropdown.tsx +6 -21
  397. package/src/components/Dropdown/examples/Dropdown.md +2 -2
  398. package/src/components/DualListSelector/DualListSelector.tsx +32 -39
  399. package/src/components/DualListSelector/DualListSelectorTreeItem.tsx +3 -1
  400. package/src/components/DualListSelector/__tests__/DualListSelector.test.tsx +28 -0
  401. package/src/components/Form/FormFieldGroupExpandable.tsx +3 -1
  402. package/src/components/Form/InternalFormFieldGroup.tsx +3 -1
  403. package/src/components/Form/__tests__/FormFieldGroupExpandable.test.tsx +30 -0
  404. package/src/components/JumpLinks/JumpLinks.tsx +33 -5
  405. package/src/components/JumpLinks/__tests__/JumpLinks.test.tsx +196 -1
  406. package/src/components/JumpLinks/__tests__/__snapshots__/JumpLinks.test.tsx.snap +9 -9
  407. package/src/components/JumpLinks/examples/JumpLinksBasic.tsx +1 -1
  408. package/src/components/JumpLinks/examples/JumpLinksExpandableVerticalWithSubsection.tsx +2 -2
  409. package/src/components/JumpLinks/examples/JumpLinksVertical.tsx +1 -1
  410. package/src/components/JumpLinks/examples/JumpLinksVerticalWithLabel.tsx +1 -1
  411. package/src/components/JumpLinks/examples/JumpLinksWithCenteredList.tsx +1 -1
  412. package/src/components/JumpLinks/examples/JumpLinksWithLabel.tsx +2 -2
  413. package/src/components/Label/LabelGroup.tsx +3 -3
  414. package/src/components/Label/__tests__/__snapshots__/LabelGroup.test.tsx.snap +3 -3
  415. package/src/components/Menu/Menu.tsx +2 -2
  416. package/src/components/Menu/MenuContainer.tsx +4 -17
  417. package/src/components/Menu/MenuGroup.tsx +13 -7
  418. package/src/components/Menu/MenuItem.tsx +2 -2
  419. package/src/components/Menu/MenuItemAction.tsx +3 -2
  420. package/src/components/Menu/__tests__/Menu.test.tsx +39 -1
  421. package/src/components/Menu/examples/Menu.md +3 -3
  422. package/src/components/MultipleFileUpload/MultipleFileUploadStatusItem.tsx +4 -0
  423. package/src/components/MultipleFileUpload/examples/MultipleFileUploadBasic.tsx +5 -4
  424. package/src/components/Progress/Progress.tsx +9 -1
  425. package/src/components/Progress/ProgressBar.tsx +2 -1
  426. package/src/components/Progress/ProgressContainer.tsx +1 -1
  427. package/src/components/Progress/__tests__/Generated/__snapshots__/ProgressBar.test.tsx.snap +1 -0
  428. package/src/components/Progress/__tests__/ProgressBar.test.tsx +19 -0
  429. package/src/components/Progress/examples/Progress.md +67 -23
  430. package/src/components/Progress/examples/ProgressHelperText.tsx +8 -2
  431. package/src/components/SearchInput/SearchInput.tsx +3 -1
  432. package/src/components/SearchInput/__tests__/SearchInput.test.tsx +52 -0
  433. package/src/components/Select/Select.tsx +6 -27
  434. package/src/components/Select/examples/Select.md +1 -1
  435. package/src/components/Tabs/OverflowTab.tsx +4 -26
  436. package/src/components/Tabs/Tabs.tsx +11 -3
  437. package/src/components/Tabs/__tests__/Tabs.test.tsx +60 -0
  438. package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +14 -14
  439. package/src/components/Tabs/examples/Tabs.md +27 -27
  440. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +3 -3
  441. package/src/components/Tooltip/Tooltip.tsx +76 -3
  442. package/src/components/Tooltip/__tests__/Tooltip.test.tsx +126 -0
  443. package/src/components/TreeView/TreeView.tsx +3 -1
  444. package/src/components/TreeView/TreeViewListItem.tsx +3 -1
  445. package/src/components/TreeView/__tests__/TreeView.test.tsx +28 -0
  446. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +1 -1
  447. package/src/components/Truncate/Truncate.tsx +3 -1
  448. package/src/components/Truncate/examples/TruncateExamples.css +2 -2
  449. package/src/components/Wizard/WizardNavItem.tsx +1 -1
  450. package/src/demos/DataList/examples/DataListBasic.tsx +74 -19
  451. package/src/demos/DataList/examples/DataListStaticBottomPagination.tsx +16 -3
  452. package/src/demos/DataListDemo.md +5 -2
  453. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +1 -1
  454. package/src/deprecated/components/Wizard/WizardNavItem.tsx +1 -1
  455. package/src/helpers/AnimationsProvider/AnimationsProvider.tsx +104 -0
  456. package/src/helpers/AnimationsProvider/__tests__/AnimationsProvider.test.tsx +157 -0
  457. package/src/helpers/AnimationsProvider/index.ts +1 -0
  458. package/src/helpers/Popper/Popper.tsx +31 -22
  459. package/src/helpers/index.ts +1 -0
@@ -1,7 +1,10 @@
1
- import { render } from '@testing-library/react';
1
+ import { render, screen } from '@testing-library/react';
2
2
  import { JumpLinks } from '../JumpLinks';
3
3
  import { JumpLinksItem } from '../JumpLinksItem';
4
4
  import { JumpLinksList } from '../JumpLinksList';
5
+ import * as utils from '../../../helpers/util';
6
+
7
+ jest.spyOn(utils, 'getUniqueId').mockReturnValue('unique_id_mock');
5
8
 
6
9
  test('simple jumplinks', () => {
7
10
  const { asFragment } = render(
@@ -75,3 +78,195 @@ test('expandable vertical with subsection', () => {
75
78
  );
76
79
  expect(asFragment()).toMatchSnapshot();
77
80
  });
81
+
82
+ // Revamped tests begin here
83
+
84
+ const jumpLinksItems = (
85
+ <>
86
+ <JumpLinksItem href="#">Inactive section</JumpLinksItem>
87
+ <JumpLinksItem href="#" isActive>
88
+ Active section
89
+ </JumpLinksItem>
90
+ <JumpLinksItem href="#">Inactive section</JumpLinksItem>
91
+ </>
92
+ );
93
+
94
+ const expandableJumpLinksItems = (
95
+ <>
96
+ <JumpLinksItem href="#">Inactive section</JumpLinksItem>
97
+ <JumpLinksItem href="#">
98
+ Section with active subsection
99
+ <JumpLinksList>
100
+ <JumpLinksItem href="#" isActive>
101
+ Active subsection
102
+ </JumpLinksItem>
103
+ <JumpLinksItem href="#">Inactive subsection</JumpLinksItem>
104
+ <JumpLinksItem href="#">Inactive subsection</JumpLinksItem>
105
+ </JumpLinksList>
106
+ </JumpLinksItem>
107
+ <JumpLinksItem href="#">Inactive section</JumpLinksItem>
108
+ <JumpLinksItem href="#">Inactive section</JumpLinksItem>
109
+ </>
110
+ );
111
+
112
+ test('renders label be default', () => {
113
+ render(<JumpLinks label="Jump to section">{jumpLinksItems}</JumpLinks>);
114
+ expect(screen.getByText(/Jump to section/i)).toBeTruthy();
115
+ });
116
+
117
+ test('does not render label when alwaysShowLabel is false', () => {
118
+ render(
119
+ <JumpLinks label="Jump to section" alwaysShowLabel={false}>
120
+ {jumpLinksItems}
121
+ </JumpLinks>
122
+ );
123
+ expect(screen.queryByText(/Jump to section/i)).toBeFalsy();
124
+ });
125
+
126
+ test('uses aria-labelledby over aria-label when label and alwaysShowLabel are passed in', () => {
127
+ render(<JumpLinks label="Jump to section">{expandableJumpLinksItems}</JumpLinks>);
128
+ const navigation = screen.getByRole('navigation', { name: /Jump to section/i });
129
+ expect(navigation).toHaveAttribute('aria-labelledby');
130
+ expect(navigation).not.toHaveAttribute('aria-label');
131
+ });
132
+
133
+ test('uses aria-labelledby over aria-label when expandable is passed in', () => {
134
+ render(<JumpLinks expandable={{ default: 'expandable' }}>{expandableJumpLinksItems}</JumpLinks>);
135
+ const navigation = screen.getByRole('navigation', { name: /Toggle jump links/i });
136
+ expect(navigation).toHaveAttribute('aria-labelledby');
137
+ expect(navigation).not.toHaveAttribute('aria-label');
138
+ });
139
+
140
+ test('random id is used with aria-labelledby by default in expandable case', () => {
141
+ render(<JumpLinks expandable={{ default: 'expandable' }}>{expandableJumpLinksItems}</JumpLinks>);
142
+ const navigation = screen.getByRole('navigation', { name: /Toggle jump links/i });
143
+ expect(navigation).toHaveAttribute('aria-labelledby', 'unique_id_mock');
144
+ });
145
+
146
+ test('random id is used with aria-labelledby by default in label case', () => {
147
+ render(
148
+ <JumpLinks label="Jump to section" alwaysShowLabel>
149
+ {expandableJumpLinksItems}
150
+ </JumpLinks>
151
+ );
152
+ const navigation = screen.getByRole('navigation', { name: /Jump to section/i });
153
+ expect(navigation).toHaveAttribute('aria-labelledby', 'unique_id_mock');
154
+ });
155
+
156
+ test('custom labelId is used with aria-labelledby when it is passed in in expandable case', () => {
157
+ render(
158
+ <JumpLinks labelId="custom-id" expandable={{ default: 'expandable' }}>
159
+ {expandableJumpLinksItems}
160
+ </JumpLinks>
161
+ );
162
+ const navigation = screen.getByRole('navigation', { name: /Toggle jump links/i });
163
+ expect(navigation).toHaveAttribute('aria-labelledby', 'custom-id');
164
+ });
165
+
166
+ test('custom labelId is used with aria-labelledby when it is passed in in label case', () => {
167
+ render(
168
+ <JumpLinks label="Jump to section" labelId="custom-id" alwaysShowLabel>
169
+ {expandableJumpLinksItems}
170
+ </JumpLinks>
171
+ );
172
+ const navigation = screen.getByRole('navigation', { name: /Jump to section/i });
173
+ expect(navigation).toHaveAttribute('aria-labelledby', 'custom-id');
174
+ });
175
+
176
+ test('uses aria-label instead of aria-labelledby by default', () => {
177
+ render(<JumpLinks aria-label="Custom aria label">{jumpLinksItems}</JumpLinks>);
178
+ const navigation = screen.getByRole('navigation', { name: /Custom aria label/i });
179
+ expect(navigation).toHaveAttribute('aria-label', 'Custom aria label');
180
+ expect(navigation).not.toHaveAttribute('aria-labelledby');
181
+ });
182
+
183
+ test('uses aria-label instead of aria-labelledby when label is provided but alwaysShowLabel is false', () => {
184
+ render(
185
+ <JumpLinks label="Jump to section" aria-label="Custom aria label" alwaysShowLabel={false}>
186
+ {jumpLinksItems}
187
+ </JumpLinks>
188
+ );
189
+ const navigation = screen.getByRole('navigation', { name: /Custom aria label/i });
190
+ expect(navigation).toHaveAttribute('aria-label', 'Custom aria label');
191
+ expect(navigation).not.toHaveAttribute('aria-labelledby');
192
+ });
193
+
194
+ test('aria-labelledby is used with provided labelId even when aria-label is also provided in expandable case', () => {
195
+ render(
196
+ <JumpLinks labelId="custom-id" aria-label="Custom aria label" expandable={{ default: 'expandable' }}>
197
+ {expandableJumpLinksItems}
198
+ </JumpLinks>
199
+ );
200
+ const navigation = screen.getByRole('navigation');
201
+ expect(navigation).toHaveAttribute('aria-labelledby', 'custom-id');
202
+ expect(navigation).not.toHaveAttribute('aria-label');
203
+ });
204
+
205
+ test('aria-labelledby is used with provided labelId even when aria-label is also provided in label case', () => {
206
+ render(
207
+ <JumpLinks labelId="custom-id" aria-label="Custom aria label" label="Jump to section">
208
+ {jumpLinksItems}
209
+ </JumpLinks>
210
+ );
211
+ const navigation = screen.getByRole('navigation');
212
+ expect(navigation).toHaveAttribute('aria-labelledby', 'custom-id');
213
+ expect(navigation).not.toHaveAttribute('aria-label');
214
+ });
215
+
216
+ test('does not throw error when there is a label passed in"', () => {
217
+ const warnMock = jest.fn() as any;
218
+ global.console = { warn: warnMock } as any;
219
+ render(
220
+ <JumpLinks alwaysShowLabel label="Jump to section">
221
+ {jumpLinksItems}
222
+ </JumpLinks>
223
+ );
224
+ expect(warnMock).not.toHaveBeenCalled();
225
+ });
226
+
227
+ test('does not throw error when there is an aria-label passed in"', () => {
228
+ const warnMock = jest.fn() as any;
229
+ global.console = { warn: warnMock } as any;
230
+ render(
231
+ <JumpLinks alwaysShowLabel aria-label="Jump to section">
232
+ {jumpLinksItems}
233
+ </JumpLinks>
234
+ );
235
+ expect(warnMock).not.toHaveBeenCalled();
236
+ });
237
+
238
+ test('throws error when no label or ariaLabel are passed in', () => {
239
+ const warnMock = jest.fn() as any;
240
+ global.console = { warn: warnMock } as any;
241
+ render(<JumpLinks alwaysShowLabel>{jumpLinksItems}</JumpLinks>);
242
+ expect(warnMock).toHaveBeenCalled();
243
+ });
244
+
245
+ test('does not throw error when there is a toggleAriaLabel and expandable prop passed in', () => {
246
+ const warnMock = jest.fn() as any;
247
+ global.console = { warn: warnMock } as any;
248
+ render(
249
+ <JumpLinks label="Jump to section" toggleAriaLabel="Jump to section" expandable={{ default: 'expandable' }}>
250
+ {expandableJumpLinksItems}
251
+ </JumpLinks>
252
+ );
253
+ expect(warnMock).not.toHaveBeenCalled();
254
+ });
255
+
256
+ test('does not throw error when there is an aria-label and expandable prop passed in', () => {
257
+ const warnMock = jest.fn() as any;
258
+ global.console = { warn: warnMock } as any;
259
+ render(
260
+ <JumpLinks aria-label="Jump to section" expandable={{ default: 'expandable' }}>
261
+ {expandableJumpLinksItems}
262
+ </JumpLinks>
263
+ );
264
+ expect(warnMock).not.toHaveBeenCalled();
265
+ });
266
+
267
+ test('throws error when there is no toggle aria-label or aria-label but expandable is passed in', () => {
268
+ const warnMock = jest.fn() as any;
269
+ global.console = { warn: warnMock } as any;
270
+ render(<JumpLinks expandable={{ default: 'expandable' }}>{expandableJumpLinksItems}</JumpLinks>);
271
+ expect(warnMock).toHaveBeenCalled();
272
+ });
@@ -3,7 +3,7 @@
3
3
  exports[`expandable vertical with subsection 1`] = `
4
4
  <DocumentFragment>
5
5
  <nav
6
- aria-label="Jump to section"
6
+ aria-labelledby="unique_id_mock"
7
7
  class="pf-v6-c-jump-links pf-m-vertical pf-m-expandable"
8
8
  >
9
9
  <div
@@ -17,11 +17,11 @@ exports[`expandable vertical with subsection 1`] = `
17
17
  >
18
18
  <button
19
19
  aria-expanded="false"
20
- aria-label="Toggle jump links"
21
20
  class="pf-v6-c-button pf-m-plain"
22
21
  data-ouia-component-id="OUIA-Generated-Button-plain-1"
23
22
  data-ouia-component-type="PF6/Button"
24
23
  data-ouia-safe="true"
24
+ id="unique_id_mock"
25
25
  type="button"
26
26
  >
27
27
  <span
@@ -52,13 +52,9 @@ exports[`expandable vertical with subsection 1`] = `
52
52
  </span>
53
53
  </button>
54
54
  </div>
55
- <div
56
- class="pf-v6-c-jump-links__label"
57
- >
58
- Jump to section
59
- </div>
60
55
  </div>
61
56
  <ul
57
+ aria-labelledby="unique_id_mock"
62
58
  class="pf-v6-c-jump-links__list"
63
59
  role="list"
64
60
  >
@@ -349,7 +345,7 @@ exports[`jumplinks centered 1`] = `
349
345
  exports[`jumplinks with label 1`] = `
350
346
  <DocumentFragment>
351
347
  <nav
352
- aria-label="Jump to section"
348
+ aria-labelledby="unique_id_mock"
353
349
  class="pf-v6-c-jump-links pf-m-center"
354
350
  >
355
351
  <div
@@ -360,11 +356,13 @@ exports[`jumplinks with label 1`] = `
360
356
  >
361
357
  <div
362
358
  class="pf-v6-c-jump-links__label"
359
+ id="unique_id_mock"
363
360
  >
364
361
  Jump to section
365
362
  </div>
366
363
  </div>
367
364
  <ul
365
+ aria-labelledby="unique_id_mock"
368
366
  class="pf-v6-c-jump-links__list"
369
367
  role="list"
370
368
  >
@@ -550,7 +548,7 @@ exports[`simple jumplinks 1`] = `
550
548
  exports[`vertical with label 1`] = `
551
549
  <DocumentFragment>
552
550
  <nav
553
- aria-label="Jump to section"
551
+ aria-labelledby="unique_id_mock"
554
552
  class="pf-v6-c-jump-links pf-m-vertical"
555
553
  >
556
554
  <div
@@ -561,11 +559,13 @@ exports[`vertical with label 1`] = `
561
559
  >
562
560
  <div
563
561
  class="pf-v6-c-jump-links__label"
562
+ id="unique_id_mock"
564
563
  >
565
564
  Jump to section
566
565
  </div>
567
566
  </div>
568
567
  <ul
568
+ aria-labelledby="unique_id_mock"
569
569
  class="pf-v6-c-jump-links__list"
570
570
  role="list"
571
571
  >
@@ -1,7 +1,7 @@
1
1
  import { JumpLinks, JumpLinksItem } from '@patternfly/react-core';
2
2
 
3
3
  export const JumpLinksBasic: React.FunctionComponent = () => (
4
- <JumpLinks>
4
+ <JumpLinks aria-label="Jump to basic example sections">
5
5
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
6
6
  <JumpLinksItem href="#" isActive>
7
7
  Active section
@@ -1,11 +1,11 @@
1
1
  import { JumpLinks, JumpLinksItem, JumpLinksList } from '@patternfly/react-core';
2
2
 
3
3
  export const JumpLinksExpandableVerticalWithSubsection: React.FunctionComponent = () => (
4
- <JumpLinks isVertical label="Jump to section" expandable={{ default: 'expandable' }}>
4
+ <JumpLinks isVertical label="Jump to expandable vertical section" expandable={{ default: 'expandable' }}>
5
5
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
6
6
  <JumpLinksItem href="#">
7
7
  Section with active subsection
8
- <JumpLinksList>
8
+ <JumpLinksList aria-label="Expandable vertical section subsection">
9
9
  <JumpLinksItem href="#" isActive>
10
10
  Active subsection
11
11
  </JumpLinksItem>
@@ -1,7 +1,7 @@
1
1
  import { JumpLinks, JumpLinksItem } from '@patternfly/react-core';
2
2
 
3
3
  export const JumpLinksVertical: React.FunctionComponent = () => (
4
- <JumpLinks isVertical>
4
+ <JumpLinks isVertical aria-label="Jump to vertical example sections">
5
5
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
6
6
  <JumpLinksItem href="#" isActive>
7
7
  Active section
@@ -1,7 +1,7 @@
1
1
  import { JumpLinks, JumpLinksItem } from '@patternfly/react-core';
2
2
 
3
3
  export const JumpLinksVerticalWithLabel: React.FunctionComponent = () => (
4
- <JumpLinks isVertical label="Jump to section">
4
+ <JumpLinks isVertical label="Jump to vertical example sections with labels">
5
5
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
6
6
  <JumpLinksItem href="#" isActive>
7
7
  Active section
@@ -1,7 +1,7 @@
1
1
  import { JumpLinks, JumpLinksItem } from '@patternfly/react-core';
2
2
 
3
3
  export const JumpLinksWithCenteredList: React.FunctionComponent = () => (
4
- <JumpLinks isCentered>
4
+ <JumpLinks isCentered aria-label="Jump to centered example sections">
5
5
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
6
6
  <JumpLinksItem href="#" isActive>
7
7
  Active section
@@ -2,14 +2,14 @@ import { JumpLinks, JumpLinksItem } from '@patternfly/react-core';
2
2
 
3
3
  export const JumpLinksWithLabel: React.FunctionComponent = () => (
4
4
  <>
5
- <JumpLinks label="Jump to section">
5
+ <JumpLinks label="Jump to first section in jump links with label example">
6
6
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
7
7
  <JumpLinksItem href="#" isActive>
8
8
  Active section
9
9
  </JumpLinksItem>
10
10
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
11
11
  </JumpLinks>
12
- <JumpLinks isCentered label="Jump to section">
12
+ <JumpLinks isCentered label="Jump to second section in jump links with label example">
13
13
  <JumpLinksItem href="#">Inactive section</JumpLinksItem>
14
14
  <JumpLinksItem href="#" isActive>
15
15
  Active section
@@ -5,7 +5,7 @@ import { css } from '@patternfly/react-styles';
5
5
  import { Button } from '../Button';
6
6
  import { Label } from './Label';
7
7
  import { Tooltip, TooltipPosition } from '../Tooltip';
8
- import TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';
8
+ import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
9
9
  import { fillTemplate } from '../../helpers';
10
10
  import { GenerateId } from '../../helpers/GenerateId/GenerateId';
11
11
 
@@ -205,12 +205,12 @@ class LabelGroup extends Component<LabelGroupProps, LabelGroupState> {
205
205
  <div className={css(styles.labelGroupClose)}>
206
206
  <Button
207
207
  variant="plain"
208
- hasNoPadding
208
+ size="sm"
209
209
  aria-label={closeBtnAriaLabel}
210
210
  onClick={onClick}
211
211
  id={`remove_group_${id}`}
212
212
  aria-labelledby={`remove_group_${id} ${id}`}
213
- icon={<TimesCircleIcon />}
213
+ icon={<TimesIcon />}
214
214
  />
215
215
  </div>
216
216
  );
@@ -255,7 +255,7 @@ exports[`LabelGroup label group with closable category 1`] = `
255
255
  <button
256
256
  aria-label="Close label group"
257
257
  aria-labelledby="remove_group_generated-id generated-id"
258
- class="pf-v6-c-button pf-m-plain pf-m-no-padding"
258
+ class="pf-v6-c-button pf-m-plain pf-m-small"
259
259
  data-ouia-component-id="OUIA-Generated-Button-plain-1"
260
260
  data-ouia-component-type="PF6/Button"
261
261
  data-ouia-safe="true"
@@ -271,11 +271,11 @@ exports[`LabelGroup label group with closable category 1`] = `
271
271
  fill="currentColor"
272
272
  height="1em"
273
273
  role="img"
274
- viewBox="0 0 512 512"
274
+ viewBox="0 0 352 512"
275
275
  width="1em"
276
276
  >
277
277
  <path
278
- 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"
278
+ d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
279
279
  />
280
280
  </svg>
281
281
  </span>
@@ -4,6 +4,7 @@ import breadcrumbStyles from '@patternfly/react-styles/css/components/Breadcrumb
4
4
  import { css } from '@patternfly/react-styles';
5
5
  import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
6
6
  import { MenuContext } from './MenuContext';
7
+ import type { MenuItemProps } from './MenuItem';
7
8
  import { canUseDOM } from '../../helpers/util';
8
9
  import { KeyboardHandler } from '../../helpers';
9
10
  export interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'ref' | 'onSelect'>, OUIAProps {
@@ -14,7 +15,7 @@ export interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'r
14
15
  /** ID of the menu */
15
16
  id?: string;
16
17
  /** Callback for updating when item selection changes. You can also specify onClick on the MenuItem. */
17
- onSelect?: (event?: React.MouseEvent, itemId?: string | number) => void;
18
+ onSelect?: (event?: React.MouseEvent, itemId?: MenuItemProps['itemId']) => void;
18
19
  /** Single itemId for single select menus, or array of itemIds for multi select. You can also specify isSelected on the MenuItem. */
19
20
  selected?: any | any[];
20
21
  /** Callback called when an MenuItems's action button is clicked. You can also specify it within a MenuItemAction. */
@@ -183,7 +184,6 @@ class MenuBase extends Component<MenuProps, MenuState> {
183
184
  !(event.target as HTMLElement).classList.contains(breadcrumbStyles.breadcrumbLink)
184
185
  ) {
185
186
  this.activeMenu = (event.target as HTMLElement).closest(`.${styles.menu}`);
186
- this.setState({ disableHover: true });
187
187
  }
188
188
 
189
189
  if ((event.target as HTMLElement).tagName === 'INPUT') {
@@ -1,22 +1,9 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
  import { onToggleArrowKeydownDefault, Popper } from '../../helpers';
3
+ import type { PopperOptions } from '../../helpers/Popper/Popper';
3
4
 
4
- export interface MenuPopperProps {
5
- /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
6
- direction?: 'up' | 'down';
7
- /** Horizontal position of the popper */
8
- position?: 'right' | 'left' | 'center' | 'start' | 'end';
9
- /** Custom width of the popper. If the value is "trigger", it will set the width to the dropdown toggle's width */
10
- width?: string | 'trigger';
11
- /** Minimum width of the popper. If the value is "trigger", it will set the min width to the dropdown toggle's width */
12
- minWidth?: string | 'trigger';
13
- /** Maximum width of the popper. If the value is "trigger", it will set the max width to the dropdown toggle's width */
14
- maxWidth?: string | 'trigger';
15
- /** Enable to flip the popper when it reaches the boundary */
16
- enableFlip?: boolean;
17
- /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
18
- preventOverflow?: boolean;
19
- }
5
+ /** @deprecated Use PopperOptions instead */
6
+ export type MenuPopperProps = PopperOptions;
20
7
 
21
8
  export interface MenuContainerProps {
22
9
  /** Menu to be rendered */
@@ -39,7 +26,7 @@ export interface MenuContainerProps {
39
26
  /** z-index of the dropdown menu */
40
27
  zIndex?: number;
41
28
  /** Additional properties to pass to the Popper */
42
- popperProps?: MenuPopperProps;
29
+ popperProps?: PopperOptions;
43
30
  /** @beta Flag indicating the first menu item should be focused after opening the dropdown. */
44
31
  shouldFocusFirstItemOnOpen?: boolean;
45
32
  /** Flag indicating if scroll on focus of the first menu item should occur. */
@@ -20,22 +20,28 @@ export interface MenuGroupProps extends Omit<React.HTMLProps<HTMLElement>, 'labe
20
20
  const MenuGroupBase: React.FunctionComponent<MenuGroupProps> = ({
21
21
  children,
22
22
  className = '',
23
- label = '',
23
+ label,
24
24
  titleId,
25
25
  innerRef,
26
26
  labelHeadingLevel: HeadingLevel = 'h1',
27
27
  ...props
28
28
  }: MenuGroupProps) => {
29
29
  const Wrapper = typeof label === 'function' ? label : HeadingLevel;
30
+ const hasLabel = label !== undefined && label !== null && label !== '';
31
+
30
32
  return (
31
33
  <section {...props} className={css(styles.menuGroup, className)} ref={innerRef}>
32
34
  <>
33
- {['function', 'string'].includes(typeof label) ? (
34
- <Wrapper className={css(styles.menuGroupTitle)} id={titleId}>
35
- {label}
36
- </Wrapper>
37
- ) : (
38
- label
35
+ {hasLabel && (
36
+ <>
37
+ {['function', 'string'].includes(typeof label) ? (
38
+ <Wrapper className={css(styles.menuGroupTitle)} id={titleId}>
39
+ {label}
40
+ </Wrapper>
41
+ ) : (
42
+ label
43
+ )}
44
+ </>
39
45
  )}
40
46
  {children}
41
47
  </>
@@ -210,10 +210,10 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
210
210
  if (flyoutTarget) {
211
211
  if (flyoutVisible) {
212
212
  const flyoutMenu = (flyoutTarget as HTMLElement).nextElementSibling;
213
- const flyoutItems = Array.from(flyoutMenu.getElementsByTagName('UL')[0].children).filter(
213
+ const flyoutItems = Array.from(flyoutMenu?.getElementsByTagName('UL')[0]?.children || []).filter(
214
214
  (el) => !(el.classList.contains('pf-m-disabled') || el.classList.contains(styles.divider))
215
215
  );
216
- (flyoutItems[0].firstChild as HTMLElement).focus();
216
+ (flyoutItems[0]?.firstChild as HTMLElement)?.focus();
217
217
  } else {
218
218
  flyoutTarget.focus();
219
219
  }
@@ -1,7 +1,6 @@
1
1
  import { forwardRef } from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Menu/menu';
3
3
  import { css } from '@patternfly/react-styles';
4
- import StarIcon from '@patternfly/react-icons/dist/esm/icons/star-icon';
5
4
  import { MenuContext, MenuItemContext } from './MenuContext';
6
5
  import { Button } from '../Button';
7
6
  export interface MenuItemActionProps extends React.HTMLProps<HTMLDivElement> {
@@ -60,9 +59,11 @@ const MenuItemActionBase: React.FunctionComponent<MenuItemActionProps> = ({
60
59
  ref={innerRef}
61
60
  role="menuitem"
62
61
  variant="plain"
62
+ isFavorite={isFavorited !== null}
63
+ isFavorited={isFavorited ?? false}
63
64
  tabIndex={-1}
64
65
  isDisabled={isDisabled || isDisabledContext}
65
- icon={icon === 'favorites' || isFavorited !== null ? <StarIcon /> : icon}
66
+ icon={isFavorited === null ? icon : undefined}
66
67
  />
67
68
  </div>
68
69
  );
@@ -2,7 +2,7 @@ import { render, screen } from '@testing-library/react';
2
2
  import '@testing-library/jest-dom';
3
3
 
4
4
  import { Menu } from '../Menu';
5
- import { MenuItem } from '../MenuItem';
5
+ import { MenuItem, MenuItemProps } from '../MenuItem';
6
6
  import { MenuList } from '../MenuList';
7
7
  import { MenuContent } from '../MenuContent';
8
8
 
@@ -16,6 +16,44 @@ describe('Menu', () => {
16
16
  expect(asFragment()).toMatchSnapshot();
17
17
  });
18
18
 
19
+ test('should accept onSelect with various types', () => {
20
+ const onSelectMock = jest.fn();
21
+
22
+ const items: MenuItemProps[] = [
23
+ { itemId: 1, children: 'Item 1', key: 'item1' },
24
+ { itemId: new Date(1), children: 'Item 2', key: 'item2' },
25
+ { itemId: 'item3', children: 'Item 3', key: 'item3' },
26
+ { itemId: { some: 'object' }, children: 'Item 4', key: 'item4' },
27
+ { itemId: NaN, children: 'Item 5', key: 'item5' },
28
+ { itemId: null, children: 'Item 6', key: 'item6' },
29
+ { itemId: 0n, children: 'Item 7', key: 'item7' },
30
+ { itemId: true, children: 'Item 8', key: 'item8' },
31
+ { itemId: false, children: 'Item 9', key: 'item9' },
32
+ { itemId: -0, children: 'Item 10', key: 'item10' },
33
+ { itemId: '', children: 'Item 11', key: 'item11' }
34
+ ];
35
+
36
+ render(
37
+ <Menu activeItemId={0} onSelect={onSelectMock}>
38
+ <MenuContent>
39
+ <MenuList>
40
+ {items.map((item) => (
41
+ <MenuItem key={item.key} itemId={item.itemId}>
42
+ {item.children}
43
+ </MenuItem>
44
+ ))}
45
+ </MenuList>
46
+ </MenuContent>
47
+ </Menu>
48
+ );
49
+
50
+ for (const item of items) {
51
+ const menuItem = screen.getByText(item.children as string);
52
+ menuItem.click();
53
+ expect(onSelectMock).toHaveBeenCalledWith(expect.anything(), item.itemId);
54
+ }
55
+ });
56
+
19
57
  describe('with isPlain', () => {
20
58
  test('should render Menu with plain styles applied', () => {
21
59
  render(
@@ -14,8 +14,8 @@ propComponents:
14
14
  'MenuSearchInput',
15
15
  'MenuGroup',
16
16
  'MenuContainer',
17
- 'MenuPopperProps',
18
- 'TooltipProps'
17
+ 'TooltipProps',
18
+ 'PopperOptions'
19
19
  ]
20
20
  ouia: true
21
21
  ---
@@ -241,4 +241,4 @@ Router links can be used for in-app linking in React environments to prevent pag
241
241
  >
242
242
  {...Link Content}
243
243
  </MenuItem>
244
- ```
244
+ ```
@@ -50,6 +50,8 @@ export interface MultipleFileUploadStatusItemProps extends React.HTMLProps<HTMLL
50
50
  progressAriaLabel?: string;
51
51
  /** Associates the progress bar with it's label for accessibility purposes. Required when title not used */
52
52
  progressAriaLabelledBy?: string;
53
+ /** Adds an accessible description to the ProgressBar via space separated list of ids. Required when helperText is passed in. */
54
+ progressAriaDescribedBy?: string;
53
55
  /** Modifies the text announced by assistive technologies when the progress bar updates. */
54
56
  progressAriaLiveMessage?: string | ((loadPercentage: number) => string);
55
57
  /** Unique identifier for progress. Generated if not specified. */
@@ -74,6 +76,7 @@ export const MultipleFileUploadStatusItem: React.FunctionComponent<MultipleFileU
74
76
  progressVariant,
75
77
  progressAriaLabel,
76
78
  progressAriaLabelledBy,
79
+ progressAriaDescribedBy,
77
80
  progressId,
78
81
  progressAriaLiveMessage,
79
82
  buttonAriaLabel = 'Remove from list',
@@ -161,6 +164,7 @@ export const MultipleFileUploadStatusItem: React.FunctionComponent<MultipleFileU
161
164
  variant={variant}
162
165
  aria-label={progressAriaLabel}
163
166
  aria-labelledby={progressAriaLabelledBy}
167
+ aria-describedby={progressAriaDescribedBy}
164
168
  id={progressId}
165
169
  helperText={progressHelperText}
166
170
  />