@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
@@ -96,11 +96,11 @@ export const MultipleFileUploadBasic: React.FunctionComponent = () => {
96
96
  };
97
97
 
98
98
  // add helper text to a status item showing any error encountered during the file reading process
99
- const createHelperText = (file: File) => {
99
+ const createHelperText = (file: File, fileIndex: number) => {
100
100
  const fileResult = readFileData.find((readFile) => readFile.fileName === file.name);
101
101
  if (fileResult?.loadError) {
102
102
  return (
103
- <HelperText isLiveRegion>
103
+ <HelperText id={`multiple-file-upload-basic-example-help-text-${fileIndex}`} isLiveRegion>
104
104
  <HelperTextItem variant="error">{fileResult.loadError.toString()}</HelperTextItem>
105
105
  </HelperText>
106
106
  );
@@ -135,14 +135,15 @@ export const MultipleFileUploadBasic: React.FunctionComponent = () => {
135
135
  statusToggleIcon={statusIcon}
136
136
  aria-label="Current uploads"
137
137
  >
138
- {currentFiles.map((file) => (
138
+ {currentFiles.map((file, index) => (
139
139
  <MultipleFileUploadStatusItem
140
140
  file={file}
141
141
  key={file.name}
142
142
  onClearClick={() => removeFiles([file.name])}
143
143
  onReadSuccess={handleReadSuccess}
144
144
  onReadFail={handleReadFail}
145
- progressHelperText={createHelperText(file)}
145
+ progressHelperText={createHelperText(file, index)}
146
+ progressAriaDescribedBy={`multiple-file-upload-basic-example-help-text-${index}`}
146
147
  />
147
148
  ))}
148
149
  </MultipleFileUploadStatus>
@@ -42,6 +42,8 @@ export interface ProgressProps extends Omit<React.HTMLProps<HTMLDivElement>, 'si
42
42
  'aria-label'?: string;
43
43
  /** Associates the ProgressBar with it's label for accessibility purposes. Required when title not used */
44
44
  'aria-labelledby'?: string;
45
+ /** Adds an accessible description to the ProgressBar via space separated list of ids. Required when helperText is passed in. */
46
+ 'aria-describedby'?: string;
45
47
  /** Content which can be used to convey additional information about the progress component.
46
48
  * We recommend the helper text component as it was designed for this purpose.
47
49
  */
@@ -65,7 +67,8 @@ class Progress extends Component<ProgressProps> {
65
67
  isTitleTruncated: false,
66
68
  tooltipPosition: 'top' as 'auto' | 'top' | 'bottom' | 'left' | 'right',
67
69
  'aria-label': null as string,
68
- 'aria-labelledby': null as string
70
+ 'aria-labelledby': null as string,
71
+ 'aria-describedby': null as string
69
72
  };
70
73
 
71
74
  id = this.props.id || getUniqueId();
@@ -89,6 +92,7 @@ class Progress extends Component<ProgressProps> {
89
92
  tooltipPosition,
90
93
  'aria-label': ariaLabel,
91
94
  'aria-labelledby': ariaLabelledBy,
95
+ 'aria-describedby': ariaDescribedBy,
92
96
  helperText,
93
97
  ...props
94
98
  } = this.props;
@@ -107,6 +111,10 @@ class Progress extends Component<ProgressProps> {
107
111
  progressBarAriaProps['aria-label'] = ariaLabel;
108
112
  }
109
113
 
114
+ if (ariaDescribedBy) {
115
+ progressBarAriaProps['aria-describedby'] = ariaDescribedBy;
116
+ }
117
+
110
118
  if (valueText) {
111
119
  progressBarAriaProps['aria-valuetext'] = valueText;
112
120
  }
@@ -4,6 +4,7 @@ import { css } from '@patternfly/react-styles';
4
4
  export interface AriaProps {
5
5
  'aria-labelledby'?: string;
6
6
  'aria-label'?: string;
7
+ 'aria-describedby'?: string;
7
8
  'aria-valuemin'?: number;
8
9
  'aria-valuenow'?: number;
9
10
  'aria-valuemax'?: number;
@@ -28,7 +29,7 @@ export const ProgressBar: React.FunctionComponent<ProgressBarProps> = ({
28
29
  value,
29
30
  ...props
30
31
  }: ProgressBarProps) => (
31
- <div {...props} className={css(styles.progressBar, className)} {...progressBarAriaProps}>
32
+ <div role="progressbar" {...props} className={css(styles.progressBar, className)} {...progressBarAriaProps}>
32
33
  <div className={css(styles.progressIndicator)} style={{ width: `${value}%` }}>
33
34
  <span className={css(styles.progressMeasure)}>{children}</span>
34
35
  </div>
@@ -130,7 +130,7 @@ export const ProgressContainer: React.FunctionComponent<ProgressContainerProps>
130
130
  )}
131
131
  </div>
132
132
  )}
133
- <ProgressBar role="progressbar" progressBarAriaProps={progressBarAriaProps} value={value}>
133
+ <ProgressBar progressBarAriaProps={progressBarAriaProps} value={value}>
134
134
  {measureLocation === ProgressMeasureLocation.inside && `${value}%`}
135
135
  </ProgressBar>
136
136
  {helperText && <ProgressHelperText>{helperText}</ProgressHelperText>}
@@ -4,6 +4,7 @@ exports[`ProgressBar should match snapshot (auto-generated) 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
6
  class="pf-v6-c-progress__bar ''"
7
+ role="progressbar"
7
8
  >
8
9
  <div
9
10
  class="pf-v6-c-progress__indicator"
@@ -0,0 +1,19 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import { ProgressBar } from '../ProgressBar';
3
+
4
+ test('Does not render with aria-describedby by default', () => {
5
+ render(<ProgressBar value={33} />);
6
+
7
+ expect(screen.getByRole('progressbar')).not.toHaveAccessibleDescription();
8
+ });
9
+
10
+ test('Renders with aria-describedby when progressBarAriaProps is passed in', () => {
11
+ render(
12
+ <>
13
+ <div id="test-id">Test description</div>
14
+ <ProgressBar value={33} progressBarAriaProps={{ 'aria-describedby': 'test-id' }} />
15
+ </>
16
+ );
17
+
18
+ expect(screen.getByRole('progressbar')).toHaveAccessibleDescription('Test description');
19
+ });
@@ -8,75 +8,119 @@ propComponents: ['Progress']
8
8
  import { useState } from 'react';
9
9
 
10
10
  ## Examples
11
+
11
12
  ### Basic
13
+
12
14
  ```ts file="./ProgressBasic.tsx"
15
+
13
16
  ```
14
17
 
15
18
  ### Small
19
+
16
20
  ```ts file="./ProgressSmall.tsx"
21
+
17
22
  ```
18
23
 
19
24
  ### Large
25
+
20
26
  ```ts file="./ProgressLarge.tsx"
21
- ```
22
27
 
23
- ### Outside
24
- ```ts file="./ProgressOutside.tsx"
25
28
  ```
26
29
 
27
- ### Inside
28
- ```ts file="./ProgressInside.tsx"
29
- ```
30
+ ### Outside
30
31
 
31
- ### Success
32
- ```ts file="./ProgressSuccess.tsx"
33
- ```
32
+ ```ts file="./ProgressOutside.tsx"
34
33
 
35
- ### Failure
36
- ```ts file="./ProgressFailure.tsx"
37
34
  ```
38
35
 
39
- ### Warning
40
- ```ts file="./ProgressWarning.tsx"
41
- ```
36
+ ### Inside
42
37
 
43
- ### Inside success
44
- ```ts file="./ProgressInsideSuccess.tsx"
45
- ```
38
+ ```ts file="./ProgressInside.tsx"
46
39
 
47
- ### Outside failure
48
- ```ts file="./ProgressOutsideFailure.tsx"
49
40
  ```
50
41
 
51
42
  ### Single line
43
+
52
44
  ```ts file="./ProgressSingleLine.tsx"
45
+
53
46
  ```
54
47
 
55
48
  ### Without measure
49
+
56
50
  ```ts file="./ProgressWithoutMeasure.tsx"
57
- ```
58
51
 
59
- ### Failure without measure
60
- ```ts file="./ProgressFailureWithoutMeasure.tsx"
61
52
  ```
62
53
 
63
-
64
54
  ### Finite step
55
+
65
56
  ```ts file="./ProgressFiniteStep.tsx"
57
+
66
58
  ```
67
59
 
68
60
  ### Progress with step instructions
61
+
69
62
  ```ts file="./ProgressStepInstruction.tsx"
63
+
70
64
  ```
71
65
 
72
66
  ### Truncate title
67
+
73
68
  ```ts file="./ProgressTruncateTitle.tsx"
69
+
74
70
  ```
75
71
 
76
72
  ### Title outside of progress bar
73
+
77
74
  ```ts file="./ProgressTitleOutsideOfProgressBar.tsx"
75
+
78
76
  ```
79
77
 
80
78
  ### Helper text
79
+
81
80
  ```ts file="./ProgressHelperText.tsx"
81
+
82
+ ```
83
+
84
+ ## Status examples
85
+
86
+ When conveying status, you should ensure:
87
+
88
+ - There is visible helper text that explains the status.
89
+ - The helper text includes the status icon, as seen in our [basic helper text example](/components/helper-text#basic).
90
+ - The helper text is linked to the `<Progress>` component via the `aria-describedby` property, as seen in the [progress helper text example](#helper-text).
91
+
92
+ ### Success
93
+
94
+ ```ts file="./ProgressSuccess.tsx"
95
+
96
+ ```
97
+
98
+ ### Failure
99
+
100
+ ```ts file="./ProgressFailure.tsx"
101
+
102
+ ```
103
+
104
+ ### Warning
105
+
106
+ ```ts file="./ProgressWarning.tsx"
107
+
108
+ ```
109
+
110
+ ### Inside success
111
+
112
+ ```ts file="./ProgressInsideSuccess.tsx"
113
+
114
+ ```
115
+
116
+ ### Outside failure
117
+
118
+ ```ts file="./ProgressOutsideFailure.tsx"
119
+
120
+ ```
121
+
122
+ ### Failure without measure
123
+
124
+ ```ts file="./ProgressFailureWithoutMeasure.tsx"
125
+
82
126
  ```
@@ -25,7 +25,7 @@ export const ProgressHelperText: React.FunctionComponent = () => {
25
25
  const helperTextVariant = selectedVariant === 'danger' ? 'error' : selectedVariant;
26
26
 
27
27
  const helperText = (
28
- <HelperText>
28
+ <HelperText id="progress-helper-text-example-help-text">
29
29
  <HelperTextItem variant={helperTextVariant}>
30
30
  {`${formatVariantName(selectedVariant)} variant is being displayed`}
31
31
  </HelperTextItem>
@@ -36,7 +36,13 @@ export const ProgressHelperText: React.FunctionComponent = () => {
36
36
  <>
37
37
  {variantOptions}
38
38
  <br />
39
- <Progress value={33} title="Title" helperText={helperText} variant={selectedVariant} />
39
+ <Progress
40
+ aria-describedby="progress-helper-text-example-help-text"
41
+ value={33}
42
+ title="Title"
43
+ helperText={helperText}
44
+ variant={selectedVariant}
45
+ />
40
46
  </>
41
47
  );
42
48
  };
@@ -13,6 +13,7 @@ import { AdvancedSearchMenu } from './AdvancedSearchMenu';
13
13
  import { TextInputGroup, TextInputGroupMain, TextInputGroupUtilities } from '../TextInputGroup';
14
14
  import { InputGroup, InputGroupItem } from '../InputGroup';
15
15
  import { Popper } from '../../helpers';
16
+ import { useHasAnimations } from '../../helpers';
16
17
  import textInputGroupStyles from '@patternfly/react-styles/css/components/TextInputGroup/text-input-group';
17
18
  import inputGroupStyles from '@patternfly/react-styles/css/components/InputGroup/input-group';
18
19
 
@@ -180,7 +181,8 @@ const SearchInputBase: React.FunctionComponent<SearchInputProps> = ({
180
181
  const popperRef = useRef(null);
181
182
  const [focusAfterExpandChange, setFocusAfterExpandChange] = useState(false);
182
183
 
183
- const { isExpanded, onToggleExpand, toggleAriaLabel, hasAnimations } = expandableInput || {};
184
+ const { isExpanded, onToggleExpand, toggleAriaLabel, hasAnimations: hasAnimationsProp } = expandableInput || {};
185
+ const hasAnimations = useHasAnimations(hasAnimationsProp);
184
186
 
185
187
  useEffect(() => {
186
188
  // this effect and the focusAfterExpandChange variable are needed to focus the input/toggle as needed when the
@@ -5,6 +5,7 @@ import userEvent from '@testing-library/user-event';
5
5
  import { SearchInput } from '../SearchInput';
6
6
  import { FormGroup } from '../../Form';
7
7
  import { Button } from '../../Button';
8
+ import { AnimationsProvider } from '../../../helpers/AnimationsProvider';
8
9
  import ExternalLinkSquareAltIcon from '@patternfly/react-icons/dist/esm/icons/external-link-square-alt-icon';
9
10
  import badgeStyles from '@patternfly/react-styles/css/components/Badge/badge';
10
11
  import textInputGroupStyles from '@patternfly/react-styles/css/components/TextInputGroup/text-input-group';
@@ -363,3 +364,54 @@ test('Additional props are spread when inputProps prop is passed', () => {
363
364
  render(<SearchInput aria-label="Test input" inputProps={{ autofocus: 'true' }} />);
364
365
  expect(screen.getByLabelText('Test input')).toHaveAttribute('autofocus', 'true');
365
366
  });
367
+
368
+ // Animation context tests
369
+ test('respects AnimationsProvider context when no local hasAnimations prop for expandable input', () => {
370
+ render(
371
+ <AnimationsProvider config={{ hasAnimations: true }}>
372
+ <SearchInput
373
+ data-testid="test-id"
374
+ expandableInput={{
375
+ isExpanded: false,
376
+ onToggleExpand: () => {},
377
+ toggleAriaLabel: 'Test label'
378
+ }}
379
+ />
380
+ </AnimationsProvider>
381
+ );
382
+
383
+ expect(screen.getByTestId('test-id')).toHaveClass(`${inputGroupStyles.modifiers.searchExpandable}`);
384
+ });
385
+
386
+ test('local hasAnimations prop takes precedence over context for expandable input', () => {
387
+ render(
388
+ <AnimationsProvider config={{ hasAnimations: true }}>
389
+ <SearchInput
390
+ data-testid="test-id"
391
+ expandableInput={{
392
+ hasAnimations: false,
393
+ isExpanded: false,
394
+ onToggleExpand: () => {},
395
+ toggleAriaLabel: 'Test label'
396
+ }}
397
+ />
398
+ </AnimationsProvider>
399
+ );
400
+
401
+ expect(screen.getByTestId('test-id')).not.toHaveClass(`${inputGroupStyles.modifiers.searchExpandable}`);
402
+ });
403
+
404
+ test('works without AnimationsProvider for expandable input (backward compatibility)', () => {
405
+ render(
406
+ <SearchInput
407
+ data-testid="test-id"
408
+ expandableInput={{
409
+ isExpanded: false,
410
+ onToggleExpand: () => {},
411
+ toggleAriaLabel: 'Test label'
412
+ }}
413
+ />
414
+ );
415
+
416
+ expect(screen.getByTestId('test-id')).not.toHaveClass(`${inputGroupStyles.modifiers.searchExpandable}`);
417
+ });
@@ -1,33 +1,12 @@
1
1
  import { forwardRef, useEffect, useRef } from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import { Menu, MenuContent, MenuProps } from '../Menu';
4
- import { Popper } from '../../helpers/Popper/Popper';
4
+ import { Popper, PopperOptions } from '../../helpers/Popper/Popper';
5
5
  import { getOUIAProps, OUIAProps, getDefaultOUIAId, onToggleArrowKeydownDefault } from '../../helpers';
6
+ import type { SelectOptionProps } from './SelectOption';
6
7
 
7
- export interface SelectPopperProps {
8
- /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
9
- direction?: 'up' | 'down';
10
- /** Horizontal position of the popper */
11
- position?: 'right' | 'left' | 'center' | 'start' | 'end';
12
- /** Custom width of the popper. If the value is "trigger", it will set the width to the select toggle's width */
13
- width?: string | 'trigger';
14
- /** Minimum width of the popper. If the value is "trigger", it will set the min width to the select toggle's width */
15
- minWidth?: string | 'trigger';
16
- /** Maximum width of the popper. If the value is "trigger", it will set the max width to the select toggle's width */
17
- maxWidth?: string | 'trigger';
18
- /** Enable to flip the popper when it reaches the boundary */
19
- enableFlip?: boolean;
20
- /** The container to append the select to. Defaults to document.body.
21
- * If your select is being cut off you can append it to an element higher up the DOM tree.
22
- * Some examples:
23
- * appendTo="inline"
24
- * appendTo={() => document.body}
25
- * appendTo={document.getElementById('target')}
26
- */
27
- appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
28
- /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
29
- preventOverflow?: boolean;
30
- }
8
+ /** @deprecated Use PopperOptions instead */
9
+ export type SelectPopperProps = PopperOptions;
31
10
 
32
11
  export interface SelectToggleProps {
33
12
  /** Select toggle node. */
@@ -56,7 +35,7 @@ export interface SelectProps extends MenuProps, OUIAProps {
56
35
  /** @beta Flag indicating the first menu item should be focused after opening the menu. */
57
36
  shouldFocusFirstItemOnOpen?: boolean;
58
37
  /** Function callback when user selects an option. */
59
- onSelect?: (event?: React.MouseEvent<Element, MouseEvent>, value?: string | number) => void;
38
+ onSelect?: (event?: React.MouseEvent<Element, MouseEvent>, value?: SelectOptionProps['value']) => void;
60
39
  /** Callback to allow the select component to change the open state of the menu.
61
40
  * Triggered by clicking outside of the menu, or by pressing any keys specified in onOpenChangeKeys. */
62
41
  onOpenChange?: (isOpen: boolean) => void;
@@ -75,7 +54,7 @@ export interface SelectProps extends MenuProps, OUIAProps {
75
54
  /** Determines the accessible role of the select. For a checkbox select pass in "menu". */
76
55
  role?: string;
77
56
  /** Additional properties to pass to the popper */
78
- popperProps?: SelectPopperProps;
57
+ popperProps?: PopperOptions;
79
58
  /** Height of the select menu */
80
59
  menuHeight?: string;
81
60
  /** Maximum height of select menu */
@@ -4,7 +4,7 @@ section: components
4
4
  subsection: menus
5
5
  cssPrefix: pf-v6-c-select
6
6
  propComponents:
7
- ['Select', 'SelectOption', 'SelectGroup', 'SelectList', 'MenuToggle', 'SelectToggleProps', 'SelectPopperProps']
7
+ ['Select', 'SelectOption', 'SelectGroup', 'SelectList', 'MenuToggle', 'SelectToggleProps', 'PopperOptions']
8
8
  ouia: true
9
9
  ---
10
10
 
@@ -2,36 +2,14 @@ import { Fragment, useContext, useEffect, useRef, useState } from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Tabs/tabs';
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
5
- import { Popper } from '../../helpers';
5
+ import { Popper, PopperOptions } from '../../helpers';
6
6
  import { Menu, MenuContent, MenuList, MenuItem } from '../Menu';
7
7
  import { TabsContext } from './TabsContext';
8
8
  import { TabProps } from './Tab';
9
9
  import { TabTitleText } from './TabTitleText';
10
10
 
11
- export interface HorizontalOverflowPopperProps {
12
- /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
13
- direction?: 'up' | 'down';
14
- /** Horizontal position of the popper */
15
- position?: 'right' | 'left' | 'center' | 'start' | 'end';
16
- /** Custom width of the popper. If the value is "trigger", it will set the width to the select toggle's width */
17
- width?: string | 'trigger';
18
- /** Minimum width of the popper. If the value is "trigger", it will set the min width to the select toggle's width */
19
- minWidth?: string | 'trigger';
20
- /** Maximum width of the popper. If the value is "trigger", it will set the max width to the select toggle's width */
21
- maxWidth?: string | 'trigger';
22
- /** Enable to flip the popper when it reaches the boundary */
23
- enableFlip?: boolean;
24
- /** The container to append the select to. Defaults to document.body.
25
- * If your select is being cut off you can append it to an element higher up the DOM tree.
26
- * Some examples:
27
- * appendTo="inline"
28
- * appendTo={() => document.body}
29
- * appendTo={document.getElementById('target')}
30
- */
31
- appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
32
- /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
33
- preventOverflow?: boolean;
34
- }
11
+ /** @deprecated Use PopperOptions instead */
12
+ export type HorizontalOverflowPopperProps = PopperOptions;
35
13
 
36
14
  export interface OverflowTabProps extends React.HTMLProps<HTMLLIElement> {
37
15
  /** Additional classes added to the overflow tab */
@@ -51,7 +29,7 @@ export interface OverflowTabProps extends React.HTMLProps<HTMLLIElement> {
51
29
  /** Time in ms to wait before firing the toggles' focus event. Defaults to 0 */
52
30
  focusTimeoutDelay?: number;
53
31
  /** Additional props to spread to the popper menu. */
54
- popperProps?: HorizontalOverflowPopperProps;
32
+ popperProps?: PopperOptions;
55
33
  }
56
34
 
57
35
  export const OverflowTab: React.FunctionComponent<OverflowTabProps> = ({
@@ -54,9 +54,9 @@ export interface TabsProps
54
54
  /** The index of the default active tab. Set this for uncontrolled Tabs */
55
55
  defaultActiveKey?: number | string;
56
56
  /** Callback to handle tab selection */
57
- onSelect?: (event: React.MouseEvent<HTMLElement, MouseEvent>, eventKey: number | string) => void;
57
+ onSelect?: (event: React.MouseEvent<HTMLElement, MouseEvent>, eventKey: TabProps['eventKey']) => void;
58
58
  /** Callback to handle tab closing and adds a basic close button to all tabs. This is overridden by the tab actions property. */
59
- onClose?: (event: React.MouseEvent<HTMLElement, MouseEvent>, eventKey: number | string) => void;
59
+ onClose?: (event: React.MouseEvent<HTMLElement, MouseEvent>, eventKey: TabProps['eventKey']) => void;
60
60
  /** Callback for the add button. Passing this property inserts the add button */
61
61
  onAdd?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
62
62
  /** Aria-label for the add button */
@@ -438,6 +438,10 @@ class Tabs extends Component<TabsProps, TabsState> {
438
438
  } else if (prevState.enableScrollButtons && !enableScrollButtons) {
439
439
  this.setState({ showScrollButtons: false });
440
440
  }
441
+
442
+ if (prevState.uncontrolledIsExpandedLocal !== this.state.uncontrolledIsExpandedLocal) {
443
+ this.setAccentStyles(true);
444
+ }
441
445
  }
442
446
 
443
447
  static getDerivedStateFromProps(nextProps: TabsProps, prevState: TabsState) {
@@ -572,8 +576,12 @@ class Tabs extends Component<TabsProps, TabsState> {
572
576
  )}
573
577
  {...getOUIAProps(Tabs.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe)}
574
578
  id={id && id}
575
- style={{ [linkAccentLength.name]: currentLinkAccentLength, [linkAccentStart.name]: currentLinkAccentStart }}
576
579
  {...props}
580
+ style={{
581
+ [linkAccentLength.name]: currentLinkAccentLength,
582
+ [linkAccentStart.name]: currentLinkAccentStart,
583
+ ...props.style
584
+ }}
577
585
  >
578
586
  {expandable && isVertical && (
579
587
  <GenerateId>
@@ -1,4 +1,5 @@
1
1
  import { render, screen, act } from '@testing-library/react';
2
+ import userEvent from '@testing-library/user-event';
2
3
  import { Tabs } from '../Tabs';
3
4
  import styles from '@patternfly/react-styles/css/components/Tabs/tabs';
4
5
  import { Tab } from '../Tab';
@@ -50,6 +51,53 @@ test(`Does not render with class ${styles.modifiers.initializingAccent} when com
50
51
  jest.useRealTimers();
51
52
  });
52
53
 
54
+ test(`Renders with class ${styles.modifiers.initializingAccent} when uncontrolled expandable component initially mounts`, async () => {
55
+ const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime });
56
+
57
+ render(
58
+ <Tabs
59
+ isVertical
60
+ expandable={{ default: 'expandable' }}
61
+ toggleText="Jump to section"
62
+ defaultIsExpanded={false}
63
+ role="region"
64
+ >
65
+ <Tab title="Test title" eventKey={0}>
66
+ Tab Content
67
+ </Tab>
68
+ </Tabs>
69
+ );
70
+
71
+ jest.useFakeTimers();
72
+ await user.click(screen.getByRole('button', { name: 'Jump to section' }));
73
+ act(() => {
74
+ jest.advanceTimersByTime(100);
75
+ });
76
+ expect(screen.getByRole('region')).toHaveClass(styles.modifiers.initializingAccent);
77
+ jest.useRealTimers();
78
+ });
79
+
80
+ test(`Does not render with class ${styles.modifiers.initializingAccent} when uncontrolled expandable component is finished mounting`, async () => {
81
+ const user = userEvent.setup();
82
+
83
+ render(
84
+ <Tabs
85
+ isVertical
86
+ expandable={{ default: 'expandable' }}
87
+ toggleText="Jump to section"
88
+ defaultIsExpanded={false}
89
+ role="region"
90
+ >
91
+ <Tab title="Test title" eventKey={0}>
92
+ Tab Content
93
+ </Tab>
94
+ </Tabs>
95
+ );
96
+
97
+ await user.click(screen.getByRole('button', { name: 'Jump to section' }));
98
+ expect(screen.getByRole('region')).not.toHaveClass(styles.modifiers.initializingAccent);
99
+ });
100
+
53
101
  test('should render simple tabs', () => {
54
102
  const { asFragment } = render(
55
103
  <Tabs id="simpleTabs">
@@ -514,3 +562,15 @@ test('should render an enabled add button', () => {
514
562
  const addButton = screen.getByLabelText('add-label');
515
563
  expect(addButton).not.toBeDisabled();
516
564
  });
565
+
566
+ test(`should render with custom inline style and accent position inline style`, () => {
567
+ render(
568
+ <Tabs role="region" style="background-color: #12345;">
569
+ <Tab title="Test title" eventKey={0}>
570
+ Tab Content
571
+ </Tab>
572
+ </Tabs>
573
+ );
574
+
575
+ expect(screen.getByRole('region')).toHaveStyle(`background-color: #12345;--pf-v6-c-tabs--link-accent--start: 0px;`);
576
+ });