@patternfly/react-core 5.3.0-prerelease.2 → 5.3.0-prerelease.20

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 (479) hide show
  1. package/CHANGELOG.md +107 -0
  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/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/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/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/DualListSelector/package.json +1 -0
  119. package/dist/dynamic/next/components/Modal/package.json +1 -1
  120. package/dist/dynamic/next/components/package.json +1 -1
  121. package/dist/dynamic/styles/package.json +1 -1
  122. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  123. package/dist/esm/components/CalendarMonth/CalendarMonth.js +30 -12
  124. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  125. package/dist/esm/components/Card/Card.d.ts +13 -5
  126. package/dist/esm/components/Card/Card.d.ts.map +1 -1
  127. package/dist/esm/components/Card/Card.js +7 -3
  128. package/dist/esm/components/Card/Card.js.map +1 -1
  129. package/dist/esm/components/Card/CardHeader.d.ts +3 -1
  130. package/dist/esm/components/Card/CardHeader.d.ts.map +1 -1
  131. package/dist/esm/components/Card/CardHeader.js +10 -10
  132. package/dist/esm/components/Card/CardHeader.js.map +1 -1
  133. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts +6 -6
  134. package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  135. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +10 -2
  136. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  137. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.d.ts +1 -0
  138. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.d.ts.map +1 -1
  139. package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  140. package/dist/esm/components/Dropdown/Dropdown.d.ts +4 -0
  141. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  142. package/dist/esm/components/Dropdown/Dropdown.js +6 -5
  143. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  144. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  145. package/dist/esm/components/Menu/Menu.js +5 -1
  146. package/dist/esm/components/Menu/Menu.js.map +1 -1
  147. package/dist/esm/components/Menu/MenuContainer.js +2 -2
  148. package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
  149. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +9 -0
  150. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  151. package/dist/esm/components/MenuToggle/MenuToggle.js +26 -2
  152. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  153. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js +2 -2
  154. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
  155. package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
  156. package/dist/esm/components/Pagination/PaginationOptionsMenu.js +2 -4
  157. package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
  158. package/dist/esm/components/SearchInput/SearchInput.d.ts +2 -0
  159. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  160. package/dist/esm/components/SearchInput/SearchInput.js +2 -2
  161. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  162. package/dist/esm/components/Select/Select.d.ts +6 -0
  163. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  164. package/dist/esm/components/Select/Select.js +5 -5
  165. package/dist/esm/components/Select/Select.js.map +1 -1
  166. package/dist/esm/components/TextArea/TextArea.d.ts +0 -4
  167. package/dist/esm/components/TextArea/TextArea.d.ts.map +1 -1
  168. package/dist/esm/components/TextArea/TextArea.js.map +1 -1
  169. package/dist/esm/components/TextInputGroup/TextInputGroupMain.d.ts +2 -0
  170. package/dist/esm/components/TextInputGroup/TextInputGroupMain.d.ts.map +1 -1
  171. package/dist/esm/components/TextInputGroup/TextInputGroupMain.js +3 -3
  172. package/dist/esm/components/TextInputGroup/TextInputGroupMain.js.map +1 -1
  173. package/dist/esm/helpers/GenerateId/GenerateId.d.ts +5 -1
  174. package/dist/esm/helpers/GenerateId/GenerateId.d.ts.map +1 -1
  175. package/dist/esm/helpers/GenerateId/GenerateId.js +14 -2
  176. package/dist/esm/helpers/GenerateId/GenerateId.js.map +1 -1
  177. package/dist/esm/helpers/Popper/Popper.js +2 -2
  178. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  179. package/dist/esm/index.d.ts.map +1 -1
  180. package/dist/esm/index.js.map +1 -1
  181. package/dist/esm/next/components/DualListSelector/DualListSelector.d.ts +23 -0
  182. package/dist/esm/next/components/DualListSelector/DualListSelector.d.ts.map +1 -0
  183. package/dist/esm/next/components/DualListSelector/DualListSelector.js +23 -0
  184. package/dist/esm/next/components/DualListSelector/DualListSelector.js.map +1 -0
  185. package/dist/esm/next/components/DualListSelector/DualListSelectorContext.d.ts +19 -0
  186. package/dist/esm/next/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -0
  187. package/dist/esm/next/components/DualListSelector/DualListSelectorContext.js +5 -0
  188. package/dist/esm/next/components/DualListSelector/DualListSelectorContext.js.map +1 -0
  189. package/dist/esm/next/components/DualListSelector/DualListSelectorControl.d.ts +25 -0
  190. package/dist/esm/next/components/DualListSelector/DualListSelectorControl.d.ts.map +1 -0
  191. package/dist/esm/next/components/DualListSelector/DualListSelectorControl.js +18 -0
  192. package/dist/esm/next/components/DualListSelector/DualListSelectorControl.js.map +1 -0
  193. package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +15 -0
  194. package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -0
  195. package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.js +35 -0
  196. package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -0
  197. package/dist/esm/next/components/DualListSelector/DualListSelectorList.d.ts +8 -0
  198. package/dist/esm/next/components/DualListSelector/DualListSelectorList.d.ts.map +1 -0
  199. package/dist/esm/next/components/DualListSelector/DualListSelectorList.js +26 -0
  200. package/dist/esm/next/components/DualListSelector/DualListSelectorList.js.map +1 -0
  201. package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.d.ts +29 -0
  202. package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -0
  203. package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.js +38 -0
  204. package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.js.map +1 -0
  205. package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.d.ts +24 -0
  206. package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -0
  207. package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.js +59 -0
  208. package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -0
  209. package/dist/esm/next/components/DualListSelector/DualListSelectorPane.d.ts +31 -0
  210. package/dist/esm/next/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -0
  211. package/dist/esm/next/components/DualListSelector/DualListSelectorPane.js +27 -0
  212. package/dist/esm/next/components/DualListSelector/DualListSelectorPane.js.map +1 -0
  213. package/dist/esm/next/components/DualListSelector/DualListSelectorTree.d.ts +48 -0
  214. package/dist/esm/next/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -0
  215. package/dist/esm/next/components/DualListSelector/DualListSelectorTree.js +15 -0
  216. package/dist/esm/next/components/DualListSelector/DualListSelectorTree.js.map +1 -0
  217. package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.d.ts +32 -0
  218. package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -0
  219. package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.js +75 -0
  220. package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -0
  221. package/dist/esm/next/components/DualListSelector/index.d.ts +8 -0
  222. package/dist/esm/next/components/DualListSelector/index.d.ts.map +1 -0
  223. package/dist/esm/next/components/DualListSelector/index.js +8 -0
  224. package/dist/esm/next/components/DualListSelector/index.js.map +1 -0
  225. package/dist/esm/next/components/DualListSelector/treeUtils.d.ts +8 -0
  226. package/dist/esm/next/components/DualListSelector/treeUtils.d.ts.map +1 -0
  227. package/dist/esm/next/components/DualListSelector/treeUtils.js +68 -0
  228. package/dist/esm/next/components/DualListSelector/treeUtils.js.map +1 -0
  229. package/dist/esm/next/components/index.d.ts +1 -0
  230. package/dist/esm/next/components/index.d.ts.map +1 -1
  231. package/dist/esm/next/components/index.js +1 -0
  232. package/dist/esm/next/components/index.js.map +1 -1
  233. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  234. package/dist/js/components/CalendarMonth/CalendarMonth.js +30 -12
  235. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  236. package/dist/js/components/Card/Card.d.ts +13 -5
  237. package/dist/js/components/Card/Card.d.ts.map +1 -1
  238. package/dist/js/components/Card/Card.js +7 -3
  239. package/dist/js/components/Card/Card.js.map +1 -1
  240. package/dist/js/components/Card/CardHeader.d.ts +3 -1
  241. package/dist/js/components/Card/CardHeader.d.ts.map +1 -1
  242. package/dist/js/components/Card/CardHeader.js +10 -10
  243. package/dist/js/components/Card/CardHeader.js.map +1 -1
  244. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts +6 -6
  245. package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
  246. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +10 -2
  247. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  248. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.d.ts +1 -0
  249. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.d.ts.map +1 -1
  250. package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
  251. package/dist/js/components/Dropdown/Dropdown.d.ts +4 -0
  252. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  253. package/dist/js/components/Dropdown/Dropdown.js +6 -5
  254. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  255. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  256. package/dist/js/components/Menu/Menu.js +5 -1
  257. package/dist/js/components/Menu/Menu.js.map +1 -1
  258. package/dist/js/components/Menu/MenuContainer.js +2 -2
  259. package/dist/js/components/Menu/MenuContainer.js.map +1 -1
  260. package/dist/js/components/MenuToggle/MenuToggle.d.ts +9 -0
  261. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  262. package/dist/js/components/MenuToggle/MenuToggle.js +27 -3
  263. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  264. package/dist/js/components/MenuToggle/MenuToggleCheckbox.js +2 -2
  265. package/dist/js/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
  266. package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
  267. package/dist/js/components/Pagination/PaginationOptionsMenu.js +2 -4
  268. package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
  269. package/dist/js/components/SearchInput/SearchInput.d.ts +2 -0
  270. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  271. package/dist/js/components/SearchInput/SearchInput.js +2 -2
  272. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  273. package/dist/js/components/Select/Select.d.ts +6 -0
  274. package/dist/js/components/Select/Select.d.ts.map +1 -1
  275. package/dist/js/components/Select/Select.js +5 -5
  276. package/dist/js/components/Select/Select.js.map +1 -1
  277. package/dist/js/components/TextArea/TextArea.d.ts +0 -4
  278. package/dist/js/components/TextArea/TextArea.d.ts.map +1 -1
  279. package/dist/js/components/TextArea/TextArea.js.map +1 -1
  280. package/dist/js/components/TextInputGroup/TextInputGroupMain.d.ts +2 -0
  281. package/dist/js/components/TextInputGroup/TextInputGroupMain.d.ts.map +1 -1
  282. package/dist/js/components/TextInputGroup/TextInputGroupMain.js +3 -3
  283. package/dist/js/components/TextInputGroup/TextInputGroupMain.js.map +1 -1
  284. package/dist/js/helpers/GenerateId/GenerateId.d.ts +5 -1
  285. package/dist/js/helpers/GenerateId/GenerateId.d.ts.map +1 -1
  286. package/dist/js/helpers/GenerateId/GenerateId.js +14 -2
  287. package/dist/js/helpers/GenerateId/GenerateId.js.map +1 -1
  288. package/dist/js/helpers/Popper/Popper.js +2 -2
  289. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  290. package/dist/js/index.d.ts.map +1 -1
  291. package/dist/js/index.js.map +1 -1
  292. package/dist/js/next/components/DualListSelector/DualListSelector.d.ts +23 -0
  293. package/dist/js/next/components/DualListSelector/DualListSelector.d.ts.map +1 -0
  294. package/dist/js/next/components/DualListSelector/DualListSelector.js +26 -0
  295. package/dist/js/next/components/DualListSelector/DualListSelector.js.map +1 -0
  296. package/dist/js/next/components/DualListSelector/DualListSelectorContext.d.ts +19 -0
  297. package/dist/js/next/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -0
  298. package/dist/js/next/components/DualListSelector/DualListSelectorContext.js +9 -0
  299. package/dist/js/next/components/DualListSelector/DualListSelectorContext.js.map +1 -0
  300. package/dist/js/next/components/DualListSelector/DualListSelectorControl.d.ts +25 -0
  301. package/dist/js/next/components/DualListSelector/DualListSelectorControl.d.ts.map +1 -0
  302. package/dist/js/next/components/DualListSelector/DualListSelectorControl.js +22 -0
  303. package/dist/js/next/components/DualListSelector/DualListSelectorControl.js.map +1 -0
  304. package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +15 -0
  305. package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -0
  306. package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.js +39 -0
  307. package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -0
  308. package/dist/js/next/components/DualListSelector/DualListSelectorList.d.ts +8 -0
  309. package/dist/js/next/components/DualListSelector/DualListSelectorList.d.ts.map +1 -0
  310. package/dist/js/next/components/DualListSelector/DualListSelectorList.js +30 -0
  311. package/dist/js/next/components/DualListSelector/DualListSelectorList.js.map +1 -0
  312. package/dist/js/next/components/DualListSelector/DualListSelectorListItem.d.ts +29 -0
  313. package/dist/js/next/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -0
  314. package/dist/js/next/components/DualListSelector/DualListSelectorListItem.js +42 -0
  315. package/dist/js/next/components/DualListSelector/DualListSelectorListItem.js.map +1 -0
  316. package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.d.ts +24 -0
  317. package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -0
  318. package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.js +63 -0
  319. package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -0
  320. package/dist/js/next/components/DualListSelector/DualListSelectorPane.d.ts +31 -0
  321. package/dist/js/next/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -0
  322. package/dist/js/next/components/DualListSelector/DualListSelectorPane.js +31 -0
  323. package/dist/js/next/components/DualListSelector/DualListSelectorPane.js.map +1 -0
  324. package/dist/js/next/components/DualListSelector/DualListSelectorTree.d.ts +48 -0
  325. package/dist/js/next/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -0
  326. package/dist/js/next/components/DualListSelector/DualListSelectorTree.js +19 -0
  327. package/dist/js/next/components/DualListSelector/DualListSelectorTree.js.map +1 -0
  328. package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.d.ts +32 -0
  329. package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -0
  330. package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.js +78 -0
  331. package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -0
  332. package/dist/js/next/components/DualListSelector/index.d.ts +8 -0
  333. package/dist/js/next/components/DualListSelector/index.d.ts.map +1 -0
  334. package/dist/js/next/components/DualListSelector/index.js +11 -0
  335. package/dist/js/next/components/DualListSelector/index.js.map +1 -0
  336. package/dist/js/next/components/DualListSelector/treeUtils.d.ts +8 -0
  337. package/dist/js/next/components/DualListSelector/treeUtils.d.ts.map +1 -0
  338. package/dist/js/next/components/DualListSelector/treeUtils.js +77 -0
  339. package/dist/js/next/components/DualListSelector/treeUtils.js.map +1 -0
  340. package/dist/js/next/components/index.d.ts +1 -0
  341. package/dist/js/next/components/index.d.ts.map +1 -1
  342. package/dist/js/next/components/index.js +1 -0
  343. package/dist/js/next/components/index.js.map +1 -1
  344. package/dist/umd/react-core.min.js +3 -3
  345. package/helpers/package.json +1 -1
  346. package/layouts/package.json +1 -1
  347. package/next/package.json +1 -1
  348. package/package.json +6 -6
  349. package/src/components/CalendarMonth/CalendarMonth.tsx +38 -13
  350. package/src/components/Card/Card.tsx +24 -7
  351. package/src/components/Card/CardHeader.tsx +11 -10
  352. package/src/components/Card/examples/Card.md +11 -9
  353. package/src/components/Card/examples/CardClickableSelectable.tsx +11 -8
  354. package/src/components/Card/examples/CardSelectable.tsx +3 -6
  355. package/src/components/Card/examples/CardSingleSelectable.tsx +14 -6
  356. package/src/components/Chip/__tests__/ChipGroup.test.tsx +3 -1
  357. package/src/components/ClipboardCopy/ClipboardCopy.tsx +21 -7
  358. package/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +1 -0
  359. package/src/components/ClipboardCopy/__tests__/ClipboardCopy.test.tsx +2 -0
  360. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopy.test.tsx.snap +1 -1
  361. package/src/components/DragDrop/examples/DragDrop.md +1 -0
  362. package/src/components/Drawer/__tests__/Drawer.test.tsx +2 -0
  363. package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +2 -0
  364. package/src/components/Drawer/__tests__/Generated/DrawerPanelContent.test.tsx +2 -0
  365. package/src/components/Drawer/__tests__/Generated/__snapshots__/DrawerPanelContent.test.tsx.snap +1 -1
  366. package/src/components/Drawer/__tests__/__snapshots__/Drawer.test.tsx.snap +8 -8
  367. package/src/components/Dropdown/Dropdown.tsx +14 -4
  368. package/src/components/Form/__tests__/FormFieldGroup.test.tsx +2 -0
  369. package/src/components/Form/__tests__/FormSection.test.tsx +2 -0
  370. package/src/components/Form/__tests__/__snapshots__/FormFieldGroup.test.tsx.snap +2 -2
  371. package/src/components/Form/__tests__/__snapshots__/FormSection.test.tsx.snap +2 -2
  372. package/src/components/Label/__tests__/LabelGroup.test.tsx +2 -0
  373. package/src/components/Label/__tests__/__snapshots__/LabelGroup.test.tsx.snap +8 -8
  374. package/src/components/Menu/Menu.tsx +5 -3
  375. package/src/components/Menu/MenuContainer.tsx +2 -2
  376. package/src/components/MenuToggle/MenuToggle.tsx +33 -0
  377. package/src/components/MenuToggle/MenuToggleCheckbox.tsx +2 -2
  378. package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +15 -0
  379. package/src/components/MenuToggle/examples/MenuToggle.md +28 -13
  380. package/src/components/MenuToggle/examples/MenuToggleStatus.tsx +20 -0
  381. package/src/components/MultipleFileUpload/__tests__/MultipleFileUpload.test.tsx +2 -0
  382. package/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatus.test.tsx +2 -0
  383. package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadStatus.test.tsx.snap +16 -16
  384. package/src/components/Pagination/PaginationOptionsMenu.tsx +2 -4
  385. package/src/components/SearchInput/SearchInput.tsx +4 -0
  386. package/src/components/SearchInput/__tests__/SearchInput.test.tsx +1 -0
  387. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +2 -2
  388. package/src/components/Select/Select.tsx +15 -3
  389. package/src/components/Select/examples/Select.md +30 -11
  390. package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +6 -1
  391. package/src/components/Select/examples/SelectValidated.tsx +74 -0
  392. package/src/components/Tabs/__tests__/Tabs.test.tsx +2 -0
  393. package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +3 -3
  394. package/src/components/TextArea/TextArea.tsx +0 -4
  395. package/src/components/TextInputGroup/TextInputGroupMain.tsx +5 -0
  396. package/src/components/TextInputGroup/__tests__/TextInputGroupMain.test.tsx +8 -0
  397. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +2 -0
  398. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +11 -11
  399. package/src/demos/AlertGroup.md +1 -0
  400. package/src/demos/BackToTop.md +1 -0
  401. package/src/demos/Banner.md +5 -4
  402. package/src/demos/CardView/CardView.md +2 -0
  403. package/src/demos/CardView/examples/CardView.tsx +1 -1
  404. package/src/demos/DataList/examples/DataListBasic.tsx +1 -1
  405. package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +1 -1
  406. package/src/demos/DataListDemo.md +1 -0
  407. package/src/demos/Filters/examples/FilterAttributeSearch.tsx +1 -1
  408. package/src/demos/Filters/examples/FilterCheckboxSelect.tsx +1 -1
  409. package/src/demos/Filters/examples/FilterFaceted.tsx +1 -1
  410. package/src/demos/Filters/examples/FilterMixedSelectGroup.tsx +1 -1
  411. package/src/demos/Filters/examples/FilterSameSelectGroup.tsx +1 -1
  412. package/src/demos/Filters/examples/FilterSearchInput.tsx +1 -1
  413. package/src/demos/Filters/examples/FilterSingleSelect.tsx +1 -1
  414. package/src/demos/JumpLinks.md +2 -1
  415. package/src/demos/PrimaryDetail.md +1 -0
  416. package/src/demos/Tabs.md +5 -2
  417. package/src/demos/Toolbar.md +1 -0
  418. package/src/demos/Wizard/WizardDemo.md +1 -0
  419. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +1 -1
  420. package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +1 -1
  421. package/src/demos/examples/Card/CardStatus.tsx +1 -1
  422. package/src/demos/examples/JumpLinks/JumpLinksWithDrawer.js +1 -1
  423. package/src/demos/examples/Nav/NavDefault.tsx +1 -1
  424. package/src/demos/examples/Nav/NavExpandable.tsx +1 -1
  425. package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
  426. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +1 -1
  427. package/src/demos/examples/Nav/NavWithSubnav.tsx +1 -1
  428. package/src/demos/examples/Nav/deprecated/NavTertiary.tsx +1 -1
  429. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +1 -1
  430. package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +1 -1
  431. package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +1 -1
  432. package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +1 -1
  433. package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +1 -1
  434. package/src/demos/examples/PrimaryDetail/PrimaryDetailSimpleListInCard.tsx +1 -1
  435. package/src/demos/examples/Tabs/ModalTabs.tsx +1 -1
  436. package/src/demos/examples/Tabs/NestedTabs.tsx +1 -1
  437. package/src/demos/examples/Tabs/NestedUnindentedTabs.tsx +1 -1
  438. package/src/demos/examples/Tabs/TabsAndTable.tsx +2 -2
  439. package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +1 -1
  440. package/src/demos/examples/Wizard/InModal.tsx +1 -1
  441. package/src/demos/examples/Wizard/InPage.tsx +1 -1
  442. package/src/deprecated/components/Select/__tests__/Select.test.tsx +2 -0
  443. package/src/deprecated/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +25 -25
  444. package/src/helpers/GenerateId/GenerateId.ts +17 -3
  445. package/src/helpers/GenerateId/__mocks__/GenerateId.ts +11 -0
  446. package/src/helpers/GenerateId/__tests__/GenerateId.test.tsx +3 -1
  447. package/src/helpers/Popper/Popper.tsx +1 -1
  448. package/src/index.ts +0 -1
  449. package/src/next/components/DualListSelector/DualListSelector.tsx +50 -0
  450. package/src/next/components/DualListSelector/DualListSelectorContext.ts +21 -0
  451. package/src/next/components/DualListSelector/DualListSelectorControl.tsx +66 -0
  452. package/src/next/components/DualListSelector/DualListSelectorControlsWrapper.tsx +87 -0
  453. package/src/next/components/DualListSelector/DualListSelectorList.tsx +57 -0
  454. package/src/next/components/DualListSelector/DualListSelectorListItem.tsx +105 -0
  455. package/src/next/components/DualListSelector/DualListSelectorListWrapper.tsx +124 -0
  456. package/src/next/components/DualListSelector/DualListSelectorPane.tsx +94 -0
  457. package/src/next/components/DualListSelector/DualListSelectorTree.tsx +110 -0
  458. package/src/next/components/DualListSelector/DualListSelectorTreeItem.tsx +184 -0
  459. package/src/next/components/DualListSelector/__tests__/DualListSelector.test.tsx +26 -0
  460. package/src/next/components/DualListSelector/__tests__/__snapshots__/DualListSelector.test.tsx.snap +122 -0
  461. package/src/next/components/DualListSelector/examples/DualListSelector.md +99 -0
  462. package/src/next/components/DualListSelector/examples/DualListSelectorBasic.tsx +157 -0
  463. package/src/next/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +214 -0
  464. package/src/next/components/DualListSelector/examples/DualListSelectorBasicTooltips.tsx +165 -0
  465. package/src/next/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +347 -0
  466. package/src/next/components/DualListSelector/examples/DualListSelectorDragDrop.tsx +184 -0
  467. package/src/next/components/DualListSelector/examples/DualListSelectorTree.tsx +380 -0
  468. package/src/next/components/DualListSelector/index.ts +7 -0
  469. package/src/next/components/DualListSelector/treeUtils.ts +81 -0
  470. package/src/next/components/index.ts +1 -0
  471. package/dist/esm/demos/index.d.ts +0 -3
  472. package/dist/esm/demos/index.d.ts.map +0 -1
  473. package/dist/esm/demos/index.js +0 -3
  474. package/dist/esm/demos/index.js.map +0 -1
  475. package/dist/js/demos/index.d.ts +0 -3
  476. package/dist/js/demos/index.d.ts.map +0 -1
  477. package/dist/js/demos/index.js +0 -6
  478. package/dist/js/demos/index.js.map +0 -1
  479. package/src/demos/index.ts +0 -2
@@ -697,7 +697,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
697
697
  >
698
698
  <input
699
699
  class="pf-v5-c-check__input"
700
- id="pf-random-id-16-Mr"
700
+ id="generated-id-Mr"
701
701
  type="checkbox"
702
702
  />
703
703
  <span
@@ -711,7 +711,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
711
711
  >
712
712
  <input
713
713
  class="pf-v5-c-check__input"
714
- id="pf-random-id-16-Mrs"
714
+ id="generated-id-Mrs"
715
715
  type="checkbox"
716
716
  />
717
717
  <span
@@ -725,7 +725,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
725
725
  >
726
726
  <input
727
727
  class="pf-v5-c-check__input"
728
- id="pf-random-id-16-Ms"
728
+ id="generated-id-Ms"
729
729
  type="checkbox"
730
730
  />
731
731
  <span
@@ -739,7 +739,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
739
739
  >
740
740
  <input
741
741
  class="pf-v5-c-check__input"
742
- id="pf-random-id-16-Other"
742
+ id="generated-id-Other"
743
743
  type="checkbox"
744
744
  />
745
745
  <span
@@ -769,7 +769,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
769
769
  >
770
770
  <input
771
771
  class="pf-v5-c-check__input"
772
- id="pf-random-id-16-Mr"
772
+ id="generated-id-Mr"
773
773
  type="checkbox"
774
774
  />
775
775
  <span
@@ -783,7 +783,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
783
783
  >
784
784
  <input
785
785
  class="pf-v5-c-check__input"
786
- id="pf-random-id-16-Mrs"
786
+ id="generated-id-Mrs"
787
787
  type="checkbox"
788
788
  />
789
789
  <span
@@ -797,7 +797,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
797
797
  >
798
798
  <input
799
799
  class="pf-v5-c-check__input"
800
- id="pf-random-id-16-Ms"
800
+ id="generated-id-Ms"
801
801
  type="checkbox"
802
802
  />
803
803
  <span
@@ -811,7 +811,7 @@ exports[`checkbox select renders checkbox select groups successfully 1`] = `
811
811
  >
812
812
  <input
813
813
  class="pf-v5-c-check__input"
814
- id="pf-random-id-16-Other"
814
+ id="generated-id-Other"
815
815
  type="checkbox"
816
816
  />
817
817
  <span
@@ -1022,7 +1022,7 @@ exports[`checkbox select renders expanded successfully 1`] = `
1022
1022
  >
1023
1023
  <input
1024
1024
  class="pf-v5-c-check__input"
1025
- id="pf-random-id-13-Mr"
1025
+ id="generated-id-Mr"
1026
1026
  type="checkbox"
1027
1027
  />
1028
1028
  <span
@@ -1036,7 +1036,7 @@ exports[`checkbox select renders expanded successfully 1`] = `
1036
1036
  >
1037
1037
  <input
1038
1038
  class="pf-v5-c-check__input"
1039
- id="pf-random-id-13-Mrs"
1039
+ id="generated-id-Mrs"
1040
1040
  type="checkbox"
1041
1041
  />
1042
1042
  <span
@@ -1050,7 +1050,7 @@ exports[`checkbox select renders expanded successfully 1`] = `
1050
1050
  >
1051
1051
  <input
1052
1052
  class="pf-v5-c-check__input"
1053
- id="pf-random-id-13-Ms"
1053
+ id="generated-id-Ms"
1054
1054
  type="checkbox"
1055
1055
  />
1056
1056
  <span
@@ -1064,7 +1064,7 @@ exports[`checkbox select renders expanded successfully 1`] = `
1064
1064
  >
1065
1065
  <input
1066
1066
  class="pf-v5-c-check__input"
1067
- id="pf-random-id-13-Other"
1067
+ id="generated-id-Other"
1068
1068
  type="checkbox"
1069
1069
  />
1070
1070
  <span
@@ -1129,7 +1129,7 @@ exports[`checkbox select renders expanded successfully with custom objects 1`] =
1129
1129
  >
1130
1130
  <input
1131
1131
  class="pf-v5-c-check__input"
1132
- id="pf-random-id-15-Mr: User One"
1132
+ id="generated-id-Mr: User One"
1133
1133
  type="checkbox"
1134
1134
  />
1135
1135
  <span
@@ -1143,7 +1143,7 @@ exports[`checkbox select renders expanded successfully with custom objects 1`] =
1143
1143
  >
1144
1144
  <input
1145
1145
  class="pf-v5-c-check__input"
1146
- id="pf-random-id-15-Mrs: New User"
1146
+ id="generated-id-Mrs: New User"
1147
1147
  type="checkbox"
1148
1148
  />
1149
1149
  <span
@@ -1157,7 +1157,7 @@ exports[`checkbox select renders expanded successfully with custom objects 1`] =
1157
1157
  >
1158
1158
  <input
1159
1159
  class="pf-v5-c-check__input"
1160
- id="pf-random-id-15-Ms: Test Three"
1160
+ id="generated-id-Ms: Test Three"
1161
1161
  type="checkbox"
1162
1162
  />
1163
1163
  <span
@@ -1239,7 +1239,7 @@ exports[`checkbox select renders expanded with filtering successfully 1`] = `
1239
1239
  >
1240
1240
  <input
1241
1241
  class="pf-v5-c-check__input"
1242
- id="pf-random-id-14-Mr"
1242
+ id="generated-id-Mr"
1243
1243
  type="checkbox"
1244
1244
  />
1245
1245
  <span
@@ -1253,7 +1253,7 @@ exports[`checkbox select renders expanded with filtering successfully 1`] = `
1253
1253
  >
1254
1254
  <input
1255
1255
  class="pf-v5-c-check__input"
1256
- id="pf-random-id-14-Mrs"
1256
+ id="generated-id-Mrs"
1257
1257
  type="checkbox"
1258
1258
  />
1259
1259
  <span
@@ -1267,7 +1267,7 @@ exports[`checkbox select renders expanded with filtering successfully 1`] = `
1267
1267
  >
1268
1268
  <input
1269
1269
  class="pf-v5-c-check__input"
1270
- id="pf-random-id-14-Ms"
1270
+ id="generated-id-Ms"
1271
1271
  type="checkbox"
1272
1272
  />
1273
1273
  <span
@@ -1281,7 +1281,7 @@ exports[`checkbox select renders expanded with filtering successfully 1`] = `
1281
1281
  >
1282
1282
  <input
1283
1283
  class="pf-v5-c-check__input"
1284
- id="pf-random-id-14-Other"
1284
+ id="generated-id-Other"
1285
1285
  type="checkbox"
1286
1286
  />
1287
1287
  <span
@@ -1877,7 +1877,7 @@ exports[`typeahead multi select renders selected successfully 1`] = `
1877
1877
  >
1878
1878
  <span
1879
1879
  class="pf-v5-c-chip__text"
1880
- id="pf-random-id-25"
1880
+ id="generated-id"
1881
1881
  >
1882
1882
  Mr
1883
1883
  </span>
@@ -1888,12 +1888,12 @@ exports[`typeahead multi select renders selected successfully 1`] = `
1888
1888
  <button
1889
1889
  aria-disabled="false"
1890
1890
  aria-label="Remove"
1891
- aria-labelledby="remove_pf-random-id-25 pf-random-id-25"
1891
+ aria-labelledby="remove_generated-id generated-id"
1892
1892
  class="pf-v5-c-button pf-m-plain"
1893
1893
  data-ouia-component-id="Remove"
1894
1894
  data-ouia-component-type="PF5/Button"
1895
1895
  data-ouia-safe="true"
1896
- id="remove_pf-random-id-25"
1896
+ id="remove_generated-id"
1897
1897
  type="button"
1898
1898
  >
1899
1899
  <svg
@@ -1927,7 +1927,7 @@ exports[`typeahead multi select renders selected successfully 1`] = `
1927
1927
  >
1928
1928
  <span
1929
1929
  class="pf-v5-c-chip__text"
1930
- id="pf-random-id-26"
1930
+ id="generated-id"
1931
1931
  >
1932
1932
  Mrs
1933
1933
  </span>
@@ -1938,12 +1938,12 @@ exports[`typeahead multi select renders selected successfully 1`] = `
1938
1938
  <button
1939
1939
  aria-disabled="false"
1940
1940
  aria-label="Remove"
1941
- aria-labelledby="remove_pf-random-id-26 pf-random-id-26"
1941
+ aria-labelledby="remove_generated-id generated-id"
1942
1942
  class="pf-v5-c-button pf-m-plain"
1943
1943
  data-ouia-component-id="Remove"
1944
1944
  data-ouia-component-type="PF5/Button"
1945
1945
  data-ouia-safe="true"
1946
- id="remove_pf-random-id-26"
1946
+ id="remove_generated-id"
1947
1947
  type="button"
1948
1948
  >
1949
1949
  <svg
@@ -12,22 +12,36 @@
12
12
  */
13
13
 
14
14
  import * as React from 'react';
15
+ import { getUniqueId } from '../util';
15
16
 
16
17
  let currentId = 0;
17
18
 
18
- interface GenerateIdProps {
19
+ // gives us a unique (enough) id to add to the generated id that it should prevent issues with duplicate ids
20
+ function getRandomId() {
21
+ if (typeof crypto !== 'undefined' && crypto.randomUUID) {
22
+ return crypto.randomUUID();
23
+ } else {
24
+ return getUniqueId();
25
+ }
26
+ }
27
+
28
+ export interface GenerateIdProps {
19
29
  /** String to prefix the random id with */
20
30
  prefix?: string;
21
31
  /** Component to be rendered with the generated id */
22
32
  children(id: string): React.ReactNode;
33
+ /** Flag to add randomness to the generated id, defaults to true */
34
+ isRandom?: boolean;
23
35
  }
24
36
 
25
37
  class GenerateId extends React.Component<GenerateIdProps, {}> {
26
38
  static displayName = 'GenerateId';
27
39
  static defaultProps = {
28
- prefix: 'pf-random-id-'
40
+ prefix: 'pf-random-id-',
41
+ isRandom: true
29
42
  };
30
- id = `${this.props.prefix}${currentId++}`;
43
+ uniqueElement = this.props.isRandom ? getRandomId() : currentId++;
44
+ id = `${this.props.prefix}${this.uniqueElement}`;
31
45
 
32
46
  render() {
33
47
  return this.props.children(this.id);
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { GenerateIdProps } from '../GenerateId';
3
+ class GenerateId extends React.Component<GenerateIdProps, {}> {
4
+ static displayName = 'GenerateId';
5
+
6
+ render() {
7
+ return this.props.children('generated-id');
8
+ }
9
+ }
10
+
11
+ export { GenerateId };
@@ -3,7 +3,9 @@ import { render } from '@testing-library/react';
3
3
  import { GenerateId } from '../GenerateId';
4
4
 
5
5
  test('generates id', () => {
6
- const { asFragment } = render(<GenerateId>{(id) => <div id={id}>div with random ID</div>}</GenerateId>);
6
+ const { asFragment } = render(
7
+ <GenerateId isRandom={false}>{(id) => <div id={id}>div with random ID</div>}</GenerateId>
8
+ );
7
9
 
8
10
  expect(asFragment()).toMatchSnapshot();
9
11
  });
@@ -449,7 +449,7 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
449
449
  React.useEffect(() => {
450
450
  // currentPopperContent = {tooltip children} || {dropdown children}
451
451
  const currentPopperContent =
452
- popper?.props?.children[1]?.props?.children || popper?.props?.children?.props?.children;
452
+ popper?.props?.children?.[1]?.props?.children || popper?.props?.children?.props?.children;
453
453
  setPopperContent(currentPopperContent);
454
454
 
455
455
  if (currentPopperContent && popperContent && currentPopperContent !== popperContent) {
package/src/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './components';
2
- export * from './demos';
3
2
  export * from './layouts';
4
3
  export * from './helpers';
5
4
  export * from './styles';
@@ -0,0 +1,50 @@
1
+ import * as React from 'react';
2
+ import styles from '@patternfly/react-styles/css/components/DualListSelector/dual-list-selector';
3
+ import { css } from '@patternfly/react-styles';
4
+ import { GenerateId, PickOptional } from '../../../helpers';
5
+ import { DualListSelectorContext } from './DualListSelectorContext';
6
+
7
+ /** Acts as a container for all other DualListSelector sub-components when using a
8
+ * composable dual list selector.
9
+ */
10
+
11
+ export interface DualListSelectorProps {
12
+ /** Additional classes applied to the dual list selector. */
13
+ className?: string;
14
+ /** ID of the dual list selector. */
15
+ id?: string;
16
+ /** Flag indicating if the dual list selector uses trees instead of simple lists. */
17
+ isTree?: boolean;
18
+ /** Content to be rendered in the dual list selector. */
19
+ children?: React.ReactNode;
20
+ }
21
+
22
+ class DualListSelector extends React.Component<DualListSelectorProps> {
23
+ static displayName = 'DualListSelector';
24
+ static defaultProps: PickOptional<DualListSelectorProps> = {
25
+ children: '',
26
+ isTree: false
27
+ };
28
+
29
+ constructor(props: DualListSelectorProps) {
30
+ super(props);
31
+ }
32
+
33
+ render() {
34
+ const { className, children, id, isTree, ...props } = this.props;
35
+
36
+ return (
37
+ <DualListSelectorContext.Provider value={{ isTree }}>
38
+ <GenerateId>
39
+ {(randomId) => (
40
+ <div className={css(styles.dualListSelector, className)} id={id || randomId} {...props}>
41
+ {children}
42
+ </div>
43
+ )}
44
+ </GenerateId>
45
+ </DualListSelectorContext.Provider>
46
+ );
47
+ }
48
+ }
49
+
50
+ export { DualListSelector };
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+
3
+ export const DualListSelectorContext = React.createContext<{
4
+ isTree?: boolean;
5
+ }>({ isTree: false });
6
+
7
+ export const DualListSelectorListContext = React.createContext<{
8
+ setFocusedOption?: (id: string) => void;
9
+ isTree?: boolean;
10
+ ariaLabelledBy?: string;
11
+ focusedOption?: string;
12
+ displayOption?: (option: React.ReactNode) => boolean;
13
+ selectedOptions?: string[] | number[];
14
+ id?: string;
15
+ options?: React.ReactNode[];
16
+ isDisabled?: boolean;
17
+ }>({});
18
+
19
+ export const DualListSelectorPaneContext = React.createContext<{
20
+ isChosen: boolean;
21
+ }>({ isChosen: false });
@@ -0,0 +1,66 @@
1
+ import * as React from 'react';
2
+ import { css } from '@patternfly/react-styles';
3
+ import { Button, ButtonVariant } from '../../../components/Button';
4
+ import { Tooltip } from '../../../components/Tooltip';
5
+ import styles from '@patternfly/react-styles/css/components/DualListSelector/dual-list-selector';
6
+
7
+ /** Renders an individual control button for moving selected options between each
8
+ * dual list selector pane.
9
+ */
10
+
11
+ export interface DualListSelectorControlProps extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {
12
+ /** Content to be rendered in the dual list selector control. */
13
+ children?: React.ReactNode;
14
+ /** @hide forwarded ref */
15
+ innerRef?: React.Ref<any>;
16
+ /** Flag indicating the control is disabled. */
17
+ isDisabled?: boolean;
18
+ /** Additional classes applied to the dual list selector control. */
19
+ className?: string;
20
+ /** Callback fired when dual list selector control is selected. */
21
+ onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
22
+ /** Accessible label for the dual list selector control. */
23
+ 'aria-label'?: string;
24
+ /** Content to be displayed in a tooltip on hover of control. */
25
+ tooltipContent?: React.ReactNode;
26
+ /** Additional tooltip properties passed to the tooltip. */
27
+ tooltipProps?: any;
28
+ }
29
+
30
+ export const DualListSelectorControlBase: React.FunctionComponent<DualListSelectorControlProps> = ({
31
+ innerRef,
32
+ children,
33
+ className,
34
+ 'aria-label': ariaLabel,
35
+ isDisabled = true,
36
+ onClick = () => {},
37
+ tooltipContent,
38
+ tooltipProps = {} as any,
39
+ ...props
40
+ }: DualListSelectorControlProps) => {
41
+ const privateRef = React.useRef(null);
42
+ const ref = innerRef || privateRef;
43
+ return (
44
+ <div className={css(styles.dualListSelectorControlsItem, className)} {...props}>
45
+ <Button
46
+ isDisabled={isDisabled}
47
+ aria-disabled={isDisabled}
48
+ variant={ButtonVariant.plain}
49
+ onClick={onClick}
50
+ aria-label={ariaLabel}
51
+ tabIndex={-1}
52
+ ref={ref}
53
+ >
54
+ {children}
55
+ </Button>
56
+ {tooltipContent && <Tooltip content={tooltipContent} position="left" triggerRef={ref} {...tooltipProps} />}
57
+ </div>
58
+ );
59
+ };
60
+ DualListSelectorControlBase.displayName = 'DualListSelectorControlBase';
61
+
62
+ export const DualListSelectorControl = React.forwardRef((props: DualListSelectorControlProps, ref: React.Ref<any>) => (
63
+ <DualListSelectorControlBase innerRef={ref} {...props} />
64
+ ));
65
+
66
+ DualListSelectorControl.displayName = 'DualListSelectorControl';
@@ -0,0 +1,87 @@
1
+ import * as React from 'react';
2
+ import styles from '@patternfly/react-styles/css/components/DualListSelector/dual-list-selector';
3
+ import { css } from '@patternfly/react-styles';
4
+ import { handleArrows } from '../../../helpers';
5
+
6
+ /** Acts as the container for the DualListSelectorControl sub-components. */
7
+
8
+ export interface DualListSelectorControlsWrapperProps extends React.HTMLProps<HTMLDivElement> {
9
+ /** Content to be rendered inside of the controls wrapper. */
10
+ children?: React.ReactNode;
11
+ /** Additional classes added to the wrapper. */
12
+ className?: string;
13
+ /** @hide Forwarded ref */
14
+ innerRef?: React.RefObject<HTMLDivElement>;
15
+ /** Accessible label for the dual list selector controls wrapper. */
16
+ 'aria-label'?: string;
17
+ }
18
+
19
+ export const DualListSelectorControlsWrapperBase: React.FunctionComponent<DualListSelectorControlsWrapperProps> = ({
20
+ innerRef,
21
+ children = null,
22
+ className,
23
+ 'aria-label': ariaLabel = 'Controls for moving options between lists',
24
+ ...props
25
+ }: DualListSelectorControlsWrapperProps) => {
26
+ const ref = React.useRef(null);
27
+ const wrapperRef = innerRef || ref;
28
+ // Adds keyboard navigation to the dynamically built dual list selector controls. Works when controls are dynamically built
29
+ // as well as when they are passed in via children.
30
+ const handleKeys = (event: KeyboardEvent) => {
31
+ if (
32
+ !wrapperRef.current ||
33
+ (wrapperRef.current !== (event.target as HTMLElement).closest(`.${styles.dualListSelectorControls}`) &&
34
+ !Array.from(wrapperRef.current.getElementsByClassName(styles.dualListSelectorControls)).includes(
35
+ (event.target as HTMLElement).closest(`.${styles.dualListSelectorControls}`)
36
+ ))
37
+ ) {
38
+ return;
39
+ }
40
+ event.stopImmediatePropagation();
41
+
42
+ const controls = (Array.from(wrapperRef.current.getElementsByTagName('BUTTON')) as Element[]).filter(
43
+ (el) => !el.classList.contains('pf-m-disabled')
44
+ );
45
+ const activeElement = document.activeElement;
46
+ handleArrows(
47
+ event,
48
+ controls,
49
+ (element: Element) => activeElement.contains(element),
50
+ (element: Element) => element,
51
+ undefined,
52
+ undefined,
53
+ true,
54
+ false
55
+ );
56
+ };
57
+
58
+ React.useEffect(() => {
59
+ window.addEventListener('keydown', handleKeys);
60
+ return () => {
61
+ window.removeEventListener('keydown', handleKeys);
62
+ };
63
+ // eslint-disable-next-line react-hooks/exhaustive-deps
64
+ }, [wrapperRef.current]);
65
+
66
+ return (
67
+ <div
68
+ className={css(styles.dualListSelectorControls, className)}
69
+ tabIndex={0}
70
+ ref={wrapperRef}
71
+ aria-label={ariaLabel}
72
+ {...props}
73
+ >
74
+ {children}
75
+ </div>
76
+ );
77
+ };
78
+
79
+ DualListSelectorControlsWrapperBase.displayName = 'DualListSelectorControlsWrapperBase';
80
+
81
+ export const DualListSelectorControlsWrapper = React.forwardRef(
82
+ (props: DualListSelectorControlsWrapperProps, ref: React.Ref<HTMLDivElement>) => (
83
+ <DualListSelectorControlsWrapperBase innerRef={ref as React.MutableRefObject<any>} role="group" {...props} />
84
+ )
85
+ );
86
+
87
+ DualListSelectorControlsWrapper.displayName = 'DualListSelectorControlsWrapper';
@@ -0,0 +1,57 @@
1
+ import { css } from '@patternfly/react-styles';
2
+ import styles from '@patternfly/react-styles/css/components/DualListSelector/dual-list-selector';
3
+ import { DualListSelectorListItem } from './DualListSelectorListItem';
4
+ import * as React from 'react';
5
+ import { DualListSelectorListContext } from './DualListSelectorContext';
6
+
7
+ /** Acts as the container for DualListSelectorListItem sub-components. */
8
+
9
+ export interface DualListSelectorListProps extends React.HTMLProps<HTMLUListElement> {
10
+ /** Content rendered inside the dual list selector list. */
11
+ children?: React.ReactNode;
12
+ }
13
+
14
+ export const DualListSelectorList: React.FunctionComponent<DualListSelectorListProps> = ({
15
+ children,
16
+ ...props
17
+ }: DualListSelectorListProps) => {
18
+ const { isTree, ariaLabelledBy, focusedOption, displayOption, selectedOptions, id, options, isDisabled } =
19
+ React.useContext(DualListSelectorListContext);
20
+
21
+ const hasOptions = () =>
22
+ options.length !== 0 || (children !== undefined && (children as React.ReactNode[]).length !== 0);
23
+
24
+ return (
25
+ <ul
26
+ className={css(styles.dualListSelectorList)}
27
+ {...(hasOptions() && {
28
+ role: isTree ? 'tree' : 'listbox',
29
+ 'aria-multiselectable': true,
30
+ 'aria-labelledby': ariaLabelledBy,
31
+ 'aria-activedescendant': focusedOption
32
+ })}
33
+ aria-disabled={isDisabled ? 'true' : undefined}
34
+ {...props}
35
+ >
36
+ {options.length === 0
37
+ ? children
38
+ : options.map((option, index) => {
39
+ if (displayOption(option)) {
40
+ return (
41
+ <DualListSelectorListItem
42
+ key={index}
43
+ isSelected={(selectedOptions as number[]).indexOf(index) !== -1}
44
+ id={`${id}-option-${index}`}
45
+ orderIndex={index}
46
+ isDisabled={isDisabled}
47
+ >
48
+ {option}
49
+ </DualListSelectorListItem>
50
+ );
51
+ }
52
+ return;
53
+ })}
54
+ </ul>
55
+ );
56
+ };
57
+ DualListSelectorList.displayName = 'DualListSelectorList';