@patternfly/react-core 5.0.0-alpha.46 → 5.0.0-alpha.48

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 (485) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts +1 -1
  3. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
  4. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js +2 -2
  5. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
  6. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherGroup.d.ts +1 -1
  7. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherGroup.d.ts.map +1 -1
  8. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherGroup.js +1 -1
  9. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherGroup.js.map +1 -1
  10. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherItem.d.ts +1 -1
  11. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherItem.d.ts.map +1 -1
  12. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherItem.js +1 -1
  13. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherItem.js.map +1 -1
  14. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherSeparator.d.ts +1 -1
  15. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherSeparator.d.ts.map +1 -1
  16. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherSeparator.js +1 -1
  17. package/dist/esm/components/ApplicationLauncher/ApplicationLauncherSeparator.js.map +1 -1
  18. package/dist/esm/components/Dropdown/Dropdown.d.ts +24 -55
  19. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  20. package/dist/esm/components/Dropdown/Dropdown.js +53 -12
  21. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  22. package/dist/esm/components/Dropdown/DropdownGroup.d.ts +8 -7
  23. package/dist/esm/components/Dropdown/DropdownGroup.d.ts.map +1 -1
  24. package/dist/esm/components/Dropdown/DropdownGroup.js +4 -9
  25. package/dist/esm/components/Dropdown/DropdownGroup.js.map +1 -1
  26. package/dist/esm/components/Dropdown/DropdownItem.d.ts +8 -41
  27. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
  28. package/dist/esm/components/Dropdown/DropdownItem.js +5 -8
  29. package/dist/esm/components/Dropdown/DropdownItem.js.map +1 -1
  30. package/dist/esm/{next/components → components}/Dropdown/DropdownList.d.ts +1 -1
  31. package/dist/esm/components/Dropdown/DropdownList.d.ts.map +1 -0
  32. package/dist/esm/{next/components → components}/Dropdown/DropdownList.js +1 -1
  33. package/dist/esm/components/Dropdown/DropdownList.js.map +1 -0
  34. package/dist/esm/components/Dropdown/index.d.ts +1 -9
  35. package/dist/esm/components/Dropdown/index.d.ts.map +1 -1
  36. package/dist/esm/components/Dropdown/index.js +1 -9
  37. package/dist/esm/components/Dropdown/index.js.map +1 -1
  38. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +1 -1
  39. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  40. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js +2 -2
  41. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  42. package/dist/esm/{components → deprecated/components}/Dropdown/BadgeToggle.d.ts +1 -1
  43. package/dist/esm/deprecated/components/Dropdown/BadgeToggle.d.ts.map +1 -0
  44. package/dist/esm/{components → deprecated/components}/Dropdown/BadgeToggle.js +1 -1
  45. package/dist/esm/deprecated/components/Dropdown/BadgeToggle.js.map +1 -0
  46. package/dist/esm/deprecated/components/Dropdown/Dropdown.d.ts +66 -0
  47. package/dist/esm/deprecated/components/Dropdown/Dropdown.d.ts.map +1 -0
  48. package/dist/esm/deprecated/components/Dropdown/Dropdown.js +16 -0
  49. package/dist/esm/deprecated/components/Dropdown/Dropdown.js.map +1 -0
  50. package/dist/esm/deprecated/components/Dropdown/DropdownGroup.d.ts +11 -0
  51. package/dist/esm/deprecated/components/Dropdown/DropdownGroup.d.ts.map +1 -0
  52. package/dist/esm/deprecated/components/Dropdown/DropdownGroup.js +15 -0
  53. package/dist/esm/deprecated/components/Dropdown/DropdownGroup.js.map +1 -0
  54. package/dist/esm/deprecated/components/Dropdown/DropdownItem.d.ts +52 -0
  55. package/dist/esm/deprecated/components/Dropdown/DropdownItem.d.ts.map +1 -0
  56. package/dist/esm/deprecated/components/Dropdown/DropdownItem.js +15 -0
  57. package/dist/esm/deprecated/components/Dropdown/DropdownItem.js.map +1 -0
  58. package/dist/esm/deprecated/components/Dropdown/DropdownMenu.d.ts.map +1 -0
  59. package/dist/esm/{components → deprecated/components}/Dropdown/DropdownMenu.js +7 -7
  60. package/dist/esm/deprecated/components/Dropdown/DropdownMenu.js.map +1 -0
  61. package/dist/esm/{components → deprecated/components}/Dropdown/DropdownSeparator.d.ts +1 -1
  62. package/dist/esm/deprecated/components/Dropdown/DropdownSeparator.d.ts.map +1 -0
  63. package/dist/esm/{components → deprecated/components}/Dropdown/DropdownSeparator.js +3 -3
  64. package/dist/esm/deprecated/components/Dropdown/DropdownSeparator.js.map +1 -0
  65. package/dist/{js → esm/deprecated}/components/Dropdown/DropdownToggle.d.ts +1 -1
  66. package/dist/esm/deprecated/components/Dropdown/DropdownToggle.d.ts.map +1 -0
  67. package/dist/esm/{components → deprecated/components}/Dropdown/DropdownToggle.js +1 -1
  68. package/dist/esm/deprecated/components/Dropdown/DropdownToggle.js.map +1 -0
  69. package/dist/esm/deprecated/components/Dropdown/DropdownToggleAction.d.ts.map +1 -0
  70. package/dist/esm/deprecated/components/Dropdown/DropdownToggleAction.js.map +1 -0
  71. package/dist/{js → esm/deprecated}/components/Dropdown/DropdownToggleCheckbox.d.ts +2 -2
  72. package/dist/esm/deprecated/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -0
  73. package/dist/esm/{components → deprecated/components}/Dropdown/DropdownToggleCheckbox.js +2 -2
  74. package/dist/esm/deprecated/components/Dropdown/DropdownToggleCheckbox.js.map +1 -0
  75. package/dist/{js → esm/deprecated}/components/Dropdown/DropdownWithContext.d.ts +2 -2
  76. package/dist/esm/deprecated/components/Dropdown/DropdownWithContext.d.ts.map +1 -0
  77. package/dist/esm/{components → deprecated/components}/Dropdown/DropdownWithContext.js +2 -2
  78. package/dist/esm/deprecated/components/Dropdown/DropdownWithContext.js.map +1 -0
  79. package/dist/esm/deprecated/components/Dropdown/InternalDropdownItem.d.ts.map +1 -0
  80. package/dist/esm/{components → deprecated/components}/Dropdown/InternalDropdownItem.js +3 -3
  81. package/dist/esm/deprecated/components/Dropdown/InternalDropdownItem.js.map +1 -0
  82. package/dist/esm/deprecated/components/Dropdown/KebabToggle.d.ts.map +1 -0
  83. package/dist/esm/deprecated/components/Dropdown/KebabToggle.js.map +1 -0
  84. package/dist/{js → esm/deprecated}/components/Dropdown/Toggle.d.ts +1 -1
  85. package/dist/esm/deprecated/components/Dropdown/Toggle.d.ts.map +1 -0
  86. package/dist/esm/{components → deprecated/components}/Dropdown/Toggle.js +2 -2
  87. package/dist/esm/deprecated/components/Dropdown/Toggle.js.map +1 -0
  88. package/dist/esm/{components → deprecated/components}/Dropdown/dropdownConstants.d.ts +1 -1
  89. package/dist/esm/deprecated/components/Dropdown/dropdownConstants.d.ts.map +1 -0
  90. package/dist/esm/deprecated/components/Dropdown/dropdownConstants.js.map +1 -0
  91. package/dist/esm/deprecated/components/Dropdown/index.d.ts +13 -0
  92. package/dist/esm/deprecated/components/Dropdown/index.d.ts.map +1 -0
  93. package/dist/esm/deprecated/components/Dropdown/index.js +13 -0
  94. package/dist/esm/deprecated/components/Dropdown/index.js.map +1 -0
  95. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenu.js +2 -2
  96. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenu.js.map +1 -1
  97. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuItem.js +1 -1
  98. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
  99. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggle.js +1 -1
  100. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggle.js.map +1 -1
  101. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js +2 -2
  102. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js.map +1 -1
  103. package/dist/esm/deprecated/components/index.d.ts +1 -0
  104. package/dist/esm/deprecated/components/index.d.ts.map +1 -1
  105. package/dist/esm/deprecated/components/index.js +1 -0
  106. package/dist/esm/deprecated/components/index.js.map +1 -1
  107. package/dist/esm/next/components/index.d.ts +0 -1
  108. package/dist/esm/next/components/index.d.ts.map +1 -1
  109. package/dist/esm/next/components/index.js +0 -1
  110. package/dist/esm/next/components/index.js.map +1 -1
  111. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts +1 -1
  112. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
  113. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js +2 -2
  114. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
  115. package/dist/js/components/ApplicationLauncher/ApplicationLauncherGroup.d.ts +1 -1
  116. package/dist/js/components/ApplicationLauncher/ApplicationLauncherGroup.d.ts.map +1 -1
  117. package/dist/js/components/ApplicationLauncher/ApplicationLauncherGroup.js +1 -1
  118. package/dist/js/components/ApplicationLauncher/ApplicationLauncherGroup.js.map +1 -1
  119. package/dist/js/components/ApplicationLauncher/ApplicationLauncherItem.d.ts +1 -1
  120. package/dist/js/components/ApplicationLauncher/ApplicationLauncherItem.d.ts.map +1 -1
  121. package/dist/js/components/ApplicationLauncher/ApplicationLauncherItem.js +1 -1
  122. package/dist/js/components/ApplicationLauncher/ApplicationLauncherItem.js.map +1 -1
  123. package/dist/js/components/ApplicationLauncher/ApplicationLauncherSeparator.d.ts +1 -1
  124. package/dist/js/components/ApplicationLauncher/ApplicationLauncherSeparator.d.ts.map +1 -1
  125. package/dist/js/components/ApplicationLauncher/ApplicationLauncherSeparator.js +1 -1
  126. package/dist/js/components/ApplicationLauncher/ApplicationLauncherSeparator.js.map +1 -1
  127. package/dist/js/components/Dropdown/Dropdown.d.ts +24 -55
  128. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  129. package/dist/js/components/Dropdown/Dropdown.js +52 -12
  130. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  131. package/dist/js/components/Dropdown/DropdownGroup.d.ts +8 -7
  132. package/dist/js/components/Dropdown/DropdownGroup.d.ts.map +1 -1
  133. package/dist/js/components/Dropdown/DropdownGroup.js +4 -9
  134. package/dist/js/components/Dropdown/DropdownGroup.js.map +1 -1
  135. package/dist/js/components/Dropdown/DropdownItem.d.ts +8 -41
  136. package/dist/js/components/Dropdown/DropdownItem.d.ts.map +1 -1
  137. package/dist/js/components/Dropdown/DropdownItem.js +5 -8
  138. package/dist/js/components/Dropdown/DropdownItem.js.map +1 -1
  139. package/dist/js/{next/components → components}/Dropdown/DropdownList.d.ts +1 -1
  140. package/dist/js/components/Dropdown/DropdownList.d.ts.map +1 -0
  141. package/dist/js/{next/components → components}/Dropdown/DropdownList.js +1 -1
  142. package/dist/js/components/Dropdown/DropdownList.js.map +1 -0
  143. package/dist/js/components/Dropdown/index.d.ts +1 -9
  144. package/dist/js/components/Dropdown/index.d.ts.map +1 -1
  145. package/dist/js/components/Dropdown/index.js +1 -9
  146. package/dist/js/components/Dropdown/index.js.map +1 -1
  147. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +1 -1
  148. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  149. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js +2 -2
  150. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  151. package/dist/js/{components → deprecated/components}/Dropdown/BadgeToggle.d.ts +1 -1
  152. package/dist/js/deprecated/components/Dropdown/BadgeToggle.d.ts.map +1 -0
  153. package/dist/js/{components → deprecated/components}/Dropdown/BadgeToggle.js +1 -1
  154. package/dist/js/deprecated/components/Dropdown/BadgeToggle.js.map +1 -0
  155. package/dist/js/deprecated/components/Dropdown/Dropdown.d.ts +66 -0
  156. package/dist/js/deprecated/components/Dropdown/Dropdown.d.ts.map +1 -0
  157. package/dist/js/deprecated/components/Dropdown/Dropdown.js +20 -0
  158. package/dist/js/deprecated/components/Dropdown/Dropdown.js.map +1 -0
  159. package/dist/js/deprecated/components/Dropdown/DropdownGroup.d.ts +11 -0
  160. package/dist/js/deprecated/components/Dropdown/DropdownGroup.d.ts.map +1 -0
  161. package/dist/js/deprecated/components/Dropdown/DropdownGroup.js +19 -0
  162. package/dist/js/deprecated/components/Dropdown/DropdownGroup.js.map +1 -0
  163. package/dist/js/deprecated/components/Dropdown/DropdownItem.d.ts +52 -0
  164. package/dist/js/deprecated/components/Dropdown/DropdownItem.d.ts.map +1 -0
  165. package/dist/js/deprecated/components/Dropdown/DropdownItem.js +19 -0
  166. package/dist/js/deprecated/components/Dropdown/DropdownItem.js.map +1 -0
  167. package/dist/js/deprecated/components/Dropdown/DropdownMenu.d.ts.map +1 -0
  168. package/dist/js/{components → deprecated/components}/Dropdown/DropdownMenu.js +7 -7
  169. package/dist/js/deprecated/components/Dropdown/DropdownMenu.js.map +1 -0
  170. package/dist/js/{components → deprecated/components}/Dropdown/DropdownSeparator.d.ts +1 -1
  171. package/dist/js/deprecated/components/Dropdown/DropdownSeparator.d.ts.map +1 -0
  172. package/dist/js/{components → deprecated/components}/Dropdown/DropdownSeparator.js +3 -3
  173. package/dist/js/deprecated/components/Dropdown/DropdownSeparator.js.map +1 -0
  174. package/dist/{esm → js/deprecated}/components/Dropdown/DropdownToggle.d.ts +1 -1
  175. package/dist/js/deprecated/components/Dropdown/DropdownToggle.d.ts.map +1 -0
  176. package/dist/js/{components → deprecated/components}/Dropdown/DropdownToggle.js +1 -1
  177. package/dist/js/deprecated/components/Dropdown/DropdownToggle.js.map +1 -0
  178. package/dist/js/deprecated/components/Dropdown/DropdownToggleAction.d.ts.map +1 -0
  179. package/dist/js/deprecated/components/Dropdown/DropdownToggleAction.js.map +1 -0
  180. package/dist/{esm → js/deprecated}/components/Dropdown/DropdownToggleCheckbox.d.ts +2 -2
  181. package/dist/js/deprecated/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -0
  182. package/dist/js/{components → deprecated/components}/Dropdown/DropdownToggleCheckbox.js +2 -2
  183. package/dist/js/deprecated/components/Dropdown/DropdownToggleCheckbox.js.map +1 -0
  184. package/dist/{esm → js/deprecated}/components/Dropdown/DropdownWithContext.d.ts +2 -2
  185. package/dist/js/deprecated/components/Dropdown/DropdownWithContext.d.ts.map +1 -0
  186. package/dist/js/{components → deprecated/components}/Dropdown/DropdownWithContext.js +2 -2
  187. package/dist/js/deprecated/components/Dropdown/DropdownWithContext.js.map +1 -0
  188. package/dist/js/deprecated/components/Dropdown/InternalDropdownItem.d.ts.map +1 -0
  189. package/dist/js/{components → deprecated/components}/Dropdown/InternalDropdownItem.js +3 -3
  190. package/dist/js/deprecated/components/Dropdown/InternalDropdownItem.js.map +1 -0
  191. package/dist/js/deprecated/components/Dropdown/KebabToggle.d.ts.map +1 -0
  192. package/dist/js/deprecated/components/Dropdown/KebabToggle.js.map +1 -0
  193. package/dist/{esm → js/deprecated}/components/Dropdown/Toggle.d.ts +1 -1
  194. package/dist/js/deprecated/components/Dropdown/Toggle.d.ts.map +1 -0
  195. package/dist/js/{components → deprecated/components}/Dropdown/Toggle.js +2 -2
  196. package/dist/js/deprecated/components/Dropdown/Toggle.js.map +1 -0
  197. package/dist/js/{components → deprecated/components}/Dropdown/dropdownConstants.d.ts +1 -1
  198. package/dist/js/deprecated/components/Dropdown/dropdownConstants.d.ts.map +1 -0
  199. package/dist/js/deprecated/components/Dropdown/dropdownConstants.js.map +1 -0
  200. package/dist/js/deprecated/components/Dropdown/index.d.ts +13 -0
  201. package/dist/js/deprecated/components/Dropdown/index.d.ts.map +1 -0
  202. package/dist/js/deprecated/components/Dropdown/index.js +16 -0
  203. package/dist/js/deprecated/components/Dropdown/index.js.map +1 -0
  204. package/dist/js/deprecated/components/OptionsMenu/OptionsMenu.js +2 -2
  205. package/dist/js/deprecated/components/OptionsMenu/OptionsMenu.js.map +1 -1
  206. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuItem.js +1 -1
  207. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
  208. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggle.js +1 -1
  209. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggle.js.map +1 -1
  210. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js +2 -2
  211. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js.map +1 -1
  212. package/dist/js/deprecated/components/index.d.ts +1 -0
  213. package/dist/js/deprecated/components/index.d.ts.map +1 -1
  214. package/dist/js/deprecated/components/index.js +1 -0
  215. package/dist/js/deprecated/components/index.js.map +1 -1
  216. package/dist/js/next/components/index.d.ts +0 -1
  217. package/dist/js/next/components/index.d.ts.map +1 -1
  218. package/dist/js/next/components/index.js +0 -1
  219. package/dist/js/next/components/index.js.map +1 -1
  220. package/dist/umd/react-core.min.js +3 -3
  221. package/package.json +2 -2
  222. package/src/components/ActionList/examples/ActionList.md +10 -0
  223. package/src/components/ActionList/examples/ActionListSingleGroup.tsx +15 -17
  224. package/src/components/ApplicationLauncher/ApplicationLauncher.tsx +8 -9
  225. package/src/components/ApplicationLauncher/ApplicationLauncherGroup.tsx +1 -1
  226. package/src/components/ApplicationLauncher/ApplicationLauncherItem.tsx +1 -1
  227. package/src/components/ApplicationLauncher/ApplicationLauncherSeparator.tsx +1 -1
  228. package/src/components/ApplicationLauncher/__tests__/ApplicationLauncher.test.tsx +1 -1
  229. package/src/components/ApplicationLauncher/__tests__/Generated/ApplicationLauncherSeparator.test.tsx +1 -1
  230. package/src/components/ApplicationLauncher/examples/ApplicationLauncher.md +11 -0
  231. package/src/components/ApplicationLauncher/examples/ApplicationLauncherAlignRight.tsx +3 -2
  232. package/src/components/ApplicationLauncher/examples/ApplicationLauncherAlignTop.tsx +3 -2
  233. package/src/components/Breadcrumb/examples/Breadcrumb.md +9 -0
  234. package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +11 -13
  235. package/src/components/Card/examples/Card.md +35 -17
  236. package/src/components/Card/examples/CardExpandable.tsx +18 -16
  237. package/src/components/Card/examples/CardExpandableWithIcon.tsx +16 -21
  238. package/src/components/Card/examples/CardHeaderInCardHead.tsx +16 -21
  239. package/src/components/Card/examples/CardLegacySelectable.tsx +16 -19
  240. package/src/components/Card/examples/CardOnlyActionsInCardHead.tsx +17 -20
  241. package/src/components/Card/examples/CardSelectable.tsx +16 -19
  242. package/src/components/Card/examples/CardWithImageAndActions.tsx +16 -22
  243. package/src/components/DataList/__tests__/DataList.test.tsx +10 -10
  244. package/src/components/DataList/examples/DataList.md +18 -1
  245. package/src/components/DataList/examples/DataListActions.tsx +12 -10
  246. package/src/components/DataList/examples/DataListCheckboxes.tsx +26 -24
  247. package/src/components/DataList/examples/DataListExpandable.tsx +25 -23
  248. package/src/components/DataList/examples/DataListMixedExpandable.tsx +25 -23
  249. package/src/components/DataList/examples/DataListSelectableRows.tsx +18 -16
  250. package/src/components/DataList/examples/DataListWidthModifiers.tsx +18 -16
  251. package/src/components/Dropdown/Dropdown.tsx +113 -98
  252. package/src/components/Dropdown/DropdownGroup.tsx +15 -26
  253. package/src/components/Dropdown/DropdownItem.tsx +14 -90
  254. package/src/{next/components → components}/Dropdown/DropdownList.tsx +1 -1
  255. package/src/components/Dropdown/__tests__/Dropdown.test.tsx +208 -270
  256. package/src/components/Dropdown/__tests__/DropdownGroup.test.tsx +68 -9
  257. package/src/{next/components → components}/Dropdown/__tests__/DropdownItem.test.tsx +1 -1
  258. package/src/{next/components → components}/Dropdown/__tests__/DropdownList.test.tsx +1 -1
  259. package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +32 -963
  260. package/src/components/Dropdown/__tests__/__snapshots__/DropdownGroup.test.tsx.snap +14 -15
  261. package/src/components/Dropdown/examples/Dropdown.md +20 -149
  262. package/src/components/Dropdown/examples/DropdownBasic.tsx +35 -43
  263. package/src/{next/components → components}/Dropdown/examples/DropdownWithDescriptions.tsx +1 -2
  264. package/src/{next/components → components}/Dropdown/examples/DropdownWithGroups.tsx +4 -5
  265. package/src/{next/components → components}/Dropdown/examples/DropdownWithKebabToggle.tsx +2 -3
  266. package/src/components/Dropdown/index.ts +1 -9
  267. package/src/components/DualListSelector/examples/DualListSelector.md +14 -1
  268. package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +11 -14
  269. package/src/components/Hint/examples/Hint.md +9 -0
  270. package/src/components/Hint/examples/HintBasicWithTitle.tsx +15 -19
  271. package/src/components/Hint/examples/HintBasicWithoutTitle.tsx +15 -18
  272. package/src/components/InputGroup/examples/InputGroup.md +17 -0
  273. package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +13 -8
  274. package/src/components/Menu/examples/Menu.md +27 -0
  275. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +30 -28
  276. package/src/components/Modal/examples/Modal.md +24 -4
  277. package/src/components/Modal/examples/ModalWithDropdown.tsx +14 -9
  278. package/src/components/NotificationDrawer/examples/NotificationDrawer.md +12 -1
  279. package/src/components/NotificationDrawer/examples/NotificationDrawerBasic.tsx +20 -18
  280. package/src/components/NotificationDrawer/examples/NotificationDrawerGroups.tsx +22 -20
  281. package/src/components/OverflowMenu/OverflowMenuDropdownItem.tsx +2 -2
  282. package/src/components/OverflowMenu/examples/OverflowMenu.md +20 -17
  283. package/src/components/OverflowMenu/examples/OverflowMenuBreakpointOnContainer.tsx +7 -6
  284. package/src/components/Toolbar/examples/Toolbar.md +20 -1
  285. package/src/components/Toolbar/examples/ToolbarStacked.tsx +43 -39
  286. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +19 -23
  287. package/src/components/TreeView/examples/TreeView.md +59 -59
  288. package/src/demos/AlertGroup.md +8 -2
  289. package/src/demos/Card/Card.md +38 -23
  290. package/src/demos/CardDemos.md +15 -12
  291. package/src/demos/DataListDemo.md +37 -29
  292. package/src/demos/DateTimePicker.md +6 -0
  293. package/src/demos/Masthead.md +8 -0
  294. package/src/demos/Nav.md +86 -78
  295. package/src/demos/NotificationDrawer/NotificationDrawer.md +94 -80
  296. package/src/demos/Page.md +12 -1
  297. package/src/demos/PrimaryDetail.md +51 -34
  298. package/src/demos/Tabs.md +5 -2
  299. package/src/demos/Toolbar.md +53 -43
  300. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +16 -14
  301. package/src/demos/examples/DashboardHeader.js +31 -28
  302. package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +8 -12
  303. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +31 -28
  304. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +31 -28
  305. package/src/demos/examples/Page/PageStickySectionGroup.tsx +31 -28
  306. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +31 -28
  307. package/src/demos/examples/Page/PageStickySectionGroupUsingPageHeader.tsx +31 -28
  308. package/src/demos/examples/Tabs/TabsAndTable.tsx +15 -14
  309. package/src/{components → deprecated/components}/Dropdown/BadgeToggle.tsx +1 -1
  310. package/src/deprecated/components/Dropdown/Dropdown.tsx +115 -0
  311. package/src/deprecated/components/Dropdown/DropdownGroup.tsx +36 -0
  312. package/src/deprecated/components/Dropdown/DropdownItem.tsx +113 -0
  313. package/src/{components → deprecated/components}/Dropdown/DropdownMenu.tsx +11 -18
  314. package/src/{components → deprecated/components}/Dropdown/DropdownSeparator.tsx +3 -3
  315. package/src/{components → deprecated/components}/Dropdown/DropdownToggle.tsx +1 -1
  316. package/src/{components → deprecated/components}/Dropdown/DropdownToggleCheckbox.tsx +3 -3
  317. package/src/{components → deprecated/components}/Dropdown/DropdownWithContext.tsx +3 -3
  318. package/src/{components → deprecated/components}/Dropdown/InternalDropdownItem.tsx +3 -3
  319. package/src/{components → deprecated/components}/Dropdown/Toggle.tsx +4 -4
  320. package/src/deprecated/components/Dropdown/__tests__/Dropdown.test.tsx +278 -0
  321. package/src/deprecated/components/Dropdown/__tests__/DropdownGroup.test.tsx +10 -0
  322. package/src/deprecated/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +978 -0
  323. package/src/deprecated/components/Dropdown/__tests__/__snapshots__/DropdownGroup.test.tsx.snap +21 -0
  324. package/src/{components → deprecated/components}/Dropdown/dropdownConstants.tsx +1 -1
  325. package/src/deprecated/components/Dropdown/examples/Dropdown.md +211 -0
  326. package/src/{components → deprecated/components}/Dropdown/examples/DropdownAlignmentOnBreakpoints.tsx +1 -1
  327. package/src/{components → deprecated/components}/Dropdown/examples/DropdownAppendBodyVsParent.tsx +2 -1
  328. package/src/{components → deprecated/components}/Dropdown/examples/DropdownBadge.tsx +1 -1
  329. package/src/deprecated/components/Dropdown/examples/DropdownBasic.tsx +59 -0
  330. package/src/{components → deprecated/components}/Dropdown/examples/DropdownBasicPanel.tsx +1 -1
  331. package/src/{components → deprecated/components}/Dropdown/examples/DropdownDescriptions.tsx +1 -1
  332. package/src/{components → deprecated/components}/Dropdown/examples/DropdownDirectionUp.tsx +7 -1
  333. package/src/{components → deprecated/components}/Dropdown/examples/DropdownDisabled.tsx +1 -1
  334. package/src/{components → deprecated/components}/Dropdown/examples/DropdownGroups.tsx +1 -1
  335. package/src/{components → deprecated/components}/Dropdown/examples/DropdownIconOnly.tsx +1 -1
  336. package/src/{components → deprecated/components}/Dropdown/examples/DropdownImageAndText.tsx +3 -3
  337. package/src/{components → deprecated/components}/Dropdown/examples/DropdownInitialSelection.tsx +1 -1
  338. package/src/{components → deprecated/components}/Dropdown/examples/DropdownKebab.tsx +1 -1
  339. package/src/{components → deprecated/components}/Dropdown/examples/DropdownPlainTextToggle.tsx +1 -1
  340. package/src/{components → deprecated/components}/Dropdown/examples/DropdownPositionRight.tsx +7 -1
  341. package/src/{components → deprecated/components}/Dropdown/examples/DropdownPrimaryToggle.tsx +1 -1
  342. package/src/{components → deprecated/components}/Dropdown/examples/DropdownRouterLink.tsx +1 -1
  343. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSecondaryToggle.tsx +1 -1
  344. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButton.tsx +1 -1
  345. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButtonAction.tsx +1 -1
  346. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButtonActionPrimary.tsx +1 -1
  347. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButtonActionSecondary.tsx +1 -1
  348. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButtonDisabled.tsx +1 -1
  349. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButtonProgressCheckbox.tsx +1 -1
  350. package/src/{components → deprecated/components}/Dropdown/examples/DropdownSplitButtonText.tsx +1 -1
  351. package/src/deprecated/components/Dropdown/index.ts +12 -0
  352. package/src/deprecated/components/OptionsMenu/OptionsMenu.tsx +2 -2
  353. package/src/deprecated/components/OptionsMenu/OptionsMenuItem.tsx +1 -1
  354. package/src/deprecated/components/OptionsMenu/OptionsMenuToggle.tsx +1 -1
  355. package/src/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.tsx +2 -2
  356. package/src/deprecated/components/OptionsMenu/__tests__/Generated/OptionsMenuItem.test.tsx +1 -1
  357. package/src/deprecated/components/index.ts +1 -0
  358. package/src/next/components/Wizard/examples/WizardWithinModal.tsx +9 -1
  359. package/src/next/components/index.ts +0 -1
  360. package/dist/esm/components/Dropdown/BadgeToggle.d.ts.map +0 -1
  361. package/dist/esm/components/Dropdown/BadgeToggle.js.map +0 -1
  362. package/dist/esm/components/Dropdown/DropdownMenu.d.ts.map +0 -1
  363. package/dist/esm/components/Dropdown/DropdownMenu.js.map +0 -1
  364. package/dist/esm/components/Dropdown/DropdownSeparator.d.ts.map +0 -1
  365. package/dist/esm/components/Dropdown/DropdownSeparator.js.map +0 -1
  366. package/dist/esm/components/Dropdown/DropdownToggle.d.ts.map +0 -1
  367. package/dist/esm/components/Dropdown/DropdownToggle.js.map +0 -1
  368. package/dist/esm/components/Dropdown/DropdownToggleAction.d.ts.map +0 -1
  369. package/dist/esm/components/Dropdown/DropdownToggleAction.js.map +0 -1
  370. package/dist/esm/components/Dropdown/DropdownToggleCheckbox.d.ts.map +0 -1
  371. package/dist/esm/components/Dropdown/DropdownToggleCheckbox.js.map +0 -1
  372. package/dist/esm/components/Dropdown/DropdownWithContext.d.ts.map +0 -1
  373. package/dist/esm/components/Dropdown/DropdownWithContext.js.map +0 -1
  374. package/dist/esm/components/Dropdown/InternalDropdownItem.d.ts.map +0 -1
  375. package/dist/esm/components/Dropdown/InternalDropdownItem.js.map +0 -1
  376. package/dist/esm/components/Dropdown/KebabToggle.d.ts.map +0 -1
  377. package/dist/esm/components/Dropdown/KebabToggle.js.map +0 -1
  378. package/dist/esm/components/Dropdown/Toggle.d.ts.map +0 -1
  379. package/dist/esm/components/Dropdown/Toggle.js.map +0 -1
  380. package/dist/esm/components/Dropdown/dropdownConstants.d.ts.map +0 -1
  381. package/dist/esm/components/Dropdown/dropdownConstants.js.map +0 -1
  382. package/dist/esm/next/components/Dropdown/Dropdown.d.ts +0 -35
  383. package/dist/esm/next/components/Dropdown/Dropdown.d.ts.map +0 -1
  384. package/dist/esm/next/components/Dropdown/Dropdown.js +0 -57
  385. package/dist/esm/next/components/Dropdown/Dropdown.js.map +0 -1
  386. package/dist/esm/next/components/Dropdown/DropdownGroup.d.ts +0 -12
  387. package/dist/esm/next/components/Dropdown/DropdownGroup.d.ts.map +0 -1
  388. package/dist/esm/next/components/Dropdown/DropdownGroup.js +0 -10
  389. package/dist/esm/next/components/Dropdown/DropdownGroup.js.map +0 -1
  390. package/dist/esm/next/components/Dropdown/DropdownItem.d.ts +0 -19
  391. package/dist/esm/next/components/Dropdown/DropdownItem.d.ts.map +0 -1
  392. package/dist/esm/next/components/Dropdown/DropdownItem.js +0 -12
  393. package/dist/esm/next/components/Dropdown/DropdownItem.js.map +0 -1
  394. package/dist/esm/next/components/Dropdown/DropdownList.d.ts.map +0 -1
  395. package/dist/esm/next/components/Dropdown/DropdownList.js.map +0 -1
  396. package/dist/esm/next/components/Dropdown/index.d.ts +0 -5
  397. package/dist/esm/next/components/Dropdown/index.d.ts.map +0 -1
  398. package/dist/esm/next/components/Dropdown/index.js +0 -5
  399. package/dist/esm/next/components/Dropdown/index.js.map +0 -1
  400. package/dist/js/components/Dropdown/BadgeToggle.d.ts.map +0 -1
  401. package/dist/js/components/Dropdown/BadgeToggle.js.map +0 -1
  402. package/dist/js/components/Dropdown/DropdownMenu.d.ts.map +0 -1
  403. package/dist/js/components/Dropdown/DropdownMenu.js.map +0 -1
  404. package/dist/js/components/Dropdown/DropdownSeparator.d.ts.map +0 -1
  405. package/dist/js/components/Dropdown/DropdownSeparator.js.map +0 -1
  406. package/dist/js/components/Dropdown/DropdownToggle.d.ts.map +0 -1
  407. package/dist/js/components/Dropdown/DropdownToggle.js.map +0 -1
  408. package/dist/js/components/Dropdown/DropdownToggleAction.d.ts.map +0 -1
  409. package/dist/js/components/Dropdown/DropdownToggleAction.js.map +0 -1
  410. package/dist/js/components/Dropdown/DropdownToggleCheckbox.d.ts.map +0 -1
  411. package/dist/js/components/Dropdown/DropdownToggleCheckbox.js.map +0 -1
  412. package/dist/js/components/Dropdown/DropdownWithContext.d.ts.map +0 -1
  413. package/dist/js/components/Dropdown/DropdownWithContext.js.map +0 -1
  414. package/dist/js/components/Dropdown/InternalDropdownItem.d.ts.map +0 -1
  415. package/dist/js/components/Dropdown/InternalDropdownItem.js.map +0 -1
  416. package/dist/js/components/Dropdown/KebabToggle.d.ts.map +0 -1
  417. package/dist/js/components/Dropdown/KebabToggle.js.map +0 -1
  418. package/dist/js/components/Dropdown/Toggle.d.ts.map +0 -1
  419. package/dist/js/components/Dropdown/Toggle.js.map +0 -1
  420. package/dist/js/components/Dropdown/dropdownConstants.d.ts.map +0 -1
  421. package/dist/js/components/Dropdown/dropdownConstants.js.map +0 -1
  422. package/dist/js/next/components/Dropdown/Dropdown.d.ts +0 -35
  423. package/dist/js/next/components/Dropdown/Dropdown.d.ts.map +0 -1
  424. package/dist/js/next/components/Dropdown/Dropdown.js +0 -60
  425. package/dist/js/next/components/Dropdown/Dropdown.js.map +0 -1
  426. package/dist/js/next/components/Dropdown/DropdownGroup.d.ts +0 -12
  427. package/dist/js/next/components/Dropdown/DropdownGroup.d.ts.map +0 -1
  428. package/dist/js/next/components/Dropdown/DropdownGroup.js +0 -14
  429. package/dist/js/next/components/Dropdown/DropdownGroup.js.map +0 -1
  430. package/dist/js/next/components/Dropdown/DropdownItem.d.ts +0 -19
  431. package/dist/js/next/components/Dropdown/DropdownItem.d.ts.map +0 -1
  432. package/dist/js/next/components/Dropdown/DropdownItem.js +0 -16
  433. package/dist/js/next/components/Dropdown/DropdownItem.js.map +0 -1
  434. package/dist/js/next/components/Dropdown/DropdownList.d.ts.map +0 -1
  435. package/dist/js/next/components/Dropdown/DropdownList.js.map +0 -1
  436. package/dist/js/next/components/Dropdown/index.d.ts +0 -5
  437. package/dist/js/next/components/Dropdown/index.d.ts.map +0 -1
  438. package/dist/js/next/components/Dropdown/index.js +0 -8
  439. package/dist/js/next/components/Dropdown/index.js.map +0 -1
  440. package/src/next/components/Dropdown/Dropdown.tsx +0 -130
  441. package/src/next/components/Dropdown/DropdownGroup.tsx +0 -25
  442. package/src/next/components/Dropdown/DropdownItem.tsx +0 -37
  443. package/src/next/components/Dropdown/__tests__/Dropdown.test.tsx +0 -216
  444. package/src/next/components/Dropdown/__tests__/DropdownGroup.test.tsx +0 -69
  445. package/src/next/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +0 -47
  446. package/src/next/components/Dropdown/__tests__/__snapshots__/DropdownGroup.test.tsx.snap +0 -20
  447. package/src/next/components/Dropdown/examples/Dropdown.md +0 -45
  448. package/src/next/components/Dropdown/examples/DropdownBasic.tsx +0 -52
  449. package/src/next/components/Dropdown/index.ts +0 -4
  450. /package/dist/esm/{components → deprecated/components}/Dropdown/DropdownMenu.d.ts +0 -0
  451. /package/dist/esm/{components → deprecated/components}/Dropdown/DropdownToggleAction.d.ts +0 -0
  452. /package/dist/esm/{components → deprecated/components}/Dropdown/DropdownToggleAction.js +0 -0
  453. /package/dist/esm/{components → deprecated/components}/Dropdown/InternalDropdownItem.d.ts +0 -0
  454. /package/dist/esm/{components → deprecated/components}/Dropdown/KebabToggle.d.ts +0 -0
  455. /package/dist/esm/{components → deprecated/components}/Dropdown/KebabToggle.js +0 -0
  456. /package/dist/esm/{components → deprecated/components}/Dropdown/dropdownConstants.js +0 -0
  457. /package/dist/js/{components → deprecated/components}/Dropdown/DropdownMenu.d.ts +0 -0
  458. /package/dist/js/{components → deprecated/components}/Dropdown/DropdownToggleAction.d.ts +0 -0
  459. /package/dist/js/{components → deprecated/components}/Dropdown/DropdownToggleAction.js +0 -0
  460. /package/dist/js/{components → deprecated/components}/Dropdown/InternalDropdownItem.d.ts +0 -0
  461. /package/dist/js/{components → deprecated/components}/Dropdown/KebabToggle.d.ts +0 -0
  462. /package/dist/js/{components → deprecated/components}/Dropdown/KebabToggle.js +0 -0
  463. /package/dist/js/{components → deprecated/components}/Dropdown/dropdownConstants.js +0 -0
  464. /package/src/{next/components → components}/Dropdown/__tests__/__snapshots__/DropdownItem.test.tsx.snap +0 -0
  465. /package/src/{next/components → components}/Dropdown/__tests__/__snapshots__/DropdownList.test.tsx.snap +0 -0
  466. /package/src/{components → deprecated/components}/Dropdown/DropdownToggleAction.tsx +0 -0
  467. /package/src/{components → deprecated/components}/Dropdown/KebabToggle.tsx +0 -0
  468. /package/src/{components → deprecated/components}/Dropdown/__tests__/DropdownToggle.test.tsx +0 -0
  469. /package/src/{components → deprecated/components}/Dropdown/__tests__/DropdownToggleAction.test.tsx +0 -0
  470. /package/src/{components → deprecated/components}/Dropdown/__tests__/DropdownToggleCheckbox.test.tsx +0 -0
  471. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/DropdownItem.test.tsx +0 -0
  472. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/DropdownMenu.test.tsx +0 -0
  473. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/DropdownSeparator.test.tsx +0 -0
  474. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/KebabToggle.test.tsx +0 -0
  475. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/__snapshots__/DropdownItem.test.tsx.snap +0 -0
  476. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/__snapshots__/DropdownMenu.test.tsx.snap +0 -0
  477. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/__snapshots__/DropdownSeparator.test.tsx.snap +0 -0
  478. /package/src/{components → deprecated/components}/Dropdown/__tests__/Generated/__snapshots__/KebabToggle.test.tsx.snap +0 -0
  479. /package/src/{components → deprecated/components}/Dropdown/__tests__/InternalDropdownItem.test.tsx +0 -0
  480. /package/src/{components → deprecated/components}/Dropdown/__tests__/Toggle.test.tsx +0 -0
  481. /package/src/{components → deprecated/components}/Dropdown/__tests__/__snapshots__/DropdownToggle.test.tsx.snap +0 -0
  482. /package/src/{components → deprecated/components}/Dropdown/__tests__/__snapshots__/DropdownToggleAction.test.tsx.snap +0 -0
  483. /package/src/{components → deprecated/components}/Dropdown/__tests__/__snapshots__/DropdownToggleCheckbox.test.tsx.snap +0 -0
  484. /package/src/{components → deprecated/components}/Dropdown/__tests__/__snapshots__/InternalDropdownItem.test.tsx.snap +0 -0
  485. /package/src/{components → deprecated/components}/Dropdown/__tests__/__snapshots__/Toggle.test.tsx.snap +0 -0
@@ -1,115 +1,130 @@
1
- import * as React from 'react';
2
- import styles from '@patternfly/react-styles/css/components/Dropdown/dropdown';
3
- import { DropdownPosition, DropdownDirection, DropdownContext } from './dropdownConstants';
4
- import { DropdownWithContext } from './DropdownWithContext';
5
- import { OUIAProps, useOUIAId } from '../../helpers';
1
+ import React from 'react';
2
+ import { css } from '@patternfly/react-styles';
3
+ import { Menu, MenuContent, MenuProps } from '../Menu';
4
+ import { Popper, PopperProps } from '../../helpers/Popper/Popper';
5
+ import { useOUIAProps, OUIAProps } from '../../helpers';
6
6
 
7
- export interface DropdownProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
8
- /** Anything which can be rendered in a dropdown */
7
+ export interface DropdownProps extends MenuProps, OUIAProps {
8
+ /** Anything which can be rendered in a dropdown. */
9
9
  children?: React.ReactNode;
10
- /** Classes applied to root element of dropdown */
10
+ /** Classes applied to root element of dropdown. */
11
11
  className?: string;
12
- /** Array of DropdownItem nodes that will be rendered in the dropdown Menu list */
13
- dropdownItems?: any[];
14
- /** Flag to indicate if menu is opened */
12
+ /** Renderer for a custom dropdown toggle. Forwards a ref to the toggle. */
13
+ toggle: (toggleRef: React.RefObject<any>) => React.ReactNode;
14
+ /** Flag to indicate if menu is opened.*/
15
15
  isOpen?: boolean;
16
- /** Display the toggle with no border or background */
16
+ /** Function callback called when user selects item. */
17
+ onSelect?: (event?: React.MouseEvent<Element, MouseEvent>, itemId?: string | number) => void;
18
+ /** Callback to allow the dropdown component to change the open state of the menu.
19
+ * Triggered by clicking outside of the menu, or by pressing either tab or escape. */
20
+ onOpenChange?: (isOpen: boolean) => void;
21
+ /** Indicates if the menu should be without the outer box-shadow. */
17
22
  isPlain?: boolean;
18
- /** Display the toggle in text only mode */
19
- isText?: boolean;
20
- /** Flag indicating that the dropdown should expand to full height */
21
- isFullHeight?: boolean;
22
- /** Indicates where menu will be aligned horizontally */
23
- position?: DropdownPosition | 'right' | 'left';
24
- /** Indicates how the menu will align at screen size breakpoints. Default alignment is set via the position property. */
25
- alignments?: {
26
- sm?: 'right' | 'left';
27
- md?: 'right' | 'left';
28
- lg?: 'right' | 'left';
29
- xl?: 'right' | 'left';
30
- '2xl'?: 'right' | 'left';
31
- };
32
- /** Display menu above or below dropdown toggle */
33
- direction?: DropdownDirection | 'up' | 'down';
34
- /** Minimum width of the dropdown menu. If set to "trigger", the minimum width will be set to the toggle width. */
35
- minWidth?: string | 'trigger';
36
- /** The container to append the menu to. Defaults to 'inline'.
37
- * If your menu is being cut off you can append it to an element higher up the DOM tree.
38
- * Some examples:
39
- * menuAppendTo="parent"
40
- * menuAppendTo={() => document.body}
41
- * menuAppendTo={document.getElementById('target')}
42
- */
43
- menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent';
44
- /** Flag to indicate if dropdown has groups */
45
- isGrouped?: boolean;
46
- /** Toggle for the dropdown, examples: <DropdownToggle> or <DropdownToggleCheckbox> */
47
- toggle: React.ReactElement<any>;
48
- /** Function callback called when user selects item */
49
- onSelect?: (event?: React.SyntheticEvent<HTMLDivElement>) => void;
50
- /** Flag to indicate if the first dropdown item should gain initial focus, set false when adding
51
- * a specific auto-focus item (like a current selection) otherwise leave as true
52
- */
53
- autoFocus?: boolean;
54
- /** Props for extreme customization of dropdown */
55
- contextProps?: typeof DropdownContext;
56
- /** Flag for indicating that the dropdown menu should automatically flip vertically when
57
- * it reaches the boundary. This prop can only be used when the dropdown component is not
58
- * appended inline, e.g. `menuAppendTo="parent"`
59
- */
60
- isFlipEnabled?: boolean;
61
- /** z-index of the dropdown when menuAppendTo is not inline. */
62
- zIndex?: number;
23
+ /** Indicates if the menu should be scrollable. */
24
+ isScrollable?: boolean;
25
+ /** @hide Forwarded ref */
26
+ innerRef?: React.Ref<any>;
63
27
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
64
28
  ouiaId?: number | string;
65
29
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
66
30
  ouiaSafe?: boolean;
31
+ /** z-index of the dropdown menu */
32
+ zIndex?: number;
33
+ /** Additional properties to pass to the Popper */
34
+ popperProps?: Partial<PopperProps>;
67
35
  }
68
36
 
69
- export const Dropdown: React.FunctionComponent<DropdownProps> = ({
37
+ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
38
+ children,
39
+ className,
70
40
  onSelect,
71
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
- ref, // Types of Ref are different for React.FunctionComponent vs React.Component
41
+ isOpen,
42
+ toggle,
43
+ onOpenChange,
44
+ isPlain,
45
+ isScrollable,
46
+ innerRef,
73
47
  ouiaId,
74
- ouiaSafe,
75
- alignments,
76
- contextProps,
77
- minWidth,
78
- menuAppendTo = 'inline',
79
- isFlipEnabled = true,
48
+ ouiaSafe = true,
80
49
  zIndex = 9999,
50
+ popperProps,
81
51
  ...props
82
- }: DropdownProps) => (
83
- <DropdownContext.Provider
84
- value={{
85
- onSelect: (event) => onSelect && onSelect(event),
86
- toggleTextClass: styles.dropdownToggleText,
87
- toggleIconClass: styles.dropdownToggleImage,
88
- toggleIndicatorClass: styles.dropdownToggleIcon,
89
- menuClass: styles.dropdownMenu,
90
- itemClass: styles.dropdownMenuItem,
91
- toggleClass: styles.dropdownToggle,
92
- baseClass: styles.dropdown,
93
- baseComponent: 'div',
94
- sectionClass: styles.dropdownGroup,
95
- sectionTitleClass: styles.dropdownGroupTitle,
96
- sectionComponent: 'section',
97
- disabledClass: styles.modifiers.disabled,
98
- plainTextClass: styles.modifiers.text,
99
- ouiaId: useOUIAId(Dropdown.displayName, ouiaId),
100
- ouiaSafe,
101
- ouiaComponentType: Dropdown.displayName,
102
- alignments,
103
- ...contextProps
104
- }}
105
- >
106
- <DropdownWithContext
107
- menuAppendTo={menuAppendTo}
108
- isFlipEnabled={isFlipEnabled}
109
- zIndex={zIndex}
110
- minWidth={minWidth}
52
+ }: DropdownProps) => {
53
+ const localMenuRef = React.useRef<HTMLDivElement>();
54
+ const toggleRef = React.useRef<HTMLButtonElement>();
55
+ const containerRef = React.useRef<HTMLDivElement>();
56
+ const ouiaProps = useOUIAProps(Dropdown.displayName, ouiaId, ouiaSafe);
57
+
58
+ const menuRef = (innerRef as React.RefObject<HTMLDivElement>) || localMenuRef;
59
+ React.useEffect(() => {
60
+ const handleMenuKeys = (event: KeyboardEvent) => {
61
+ // Close the menu on tab or escape if onOpenChange is provided
62
+ if (
63
+ (isOpen && onOpenChange && menuRef.current?.contains(event.target as Node)) ||
64
+ toggleRef.current?.contains(event.target as Node)
65
+ ) {
66
+ if (event.key === 'Escape' || event.key === 'Tab') {
67
+ onOpenChange(false);
68
+ toggleRef.current?.focus();
69
+ }
70
+ }
71
+ };
72
+
73
+ const handleClick = (event: MouseEvent) => {
74
+ // toggle was clicked open via keyboard, focus on first menu item
75
+ if (isOpen && toggleRef.current?.contains(event.target as Node) && event.detail === 0) {
76
+ setTimeout(() => {
77
+ const firstElement = menuRef?.current?.querySelector('li button:not(:disabled),li input:not(:disabled)');
78
+ firstElement && (firstElement as HTMLElement).focus();
79
+ }, 0);
80
+ }
81
+
82
+ // If the event is not on the toggle and onOpenChange callback is provided, close the menu
83
+ if (isOpen && onOpenChange && !toggleRef?.current?.contains(event.target as Node)) {
84
+ if (isOpen && !menuRef.current?.contains(event.target as Node)) {
85
+ onOpenChange(false);
86
+ }
87
+ }
88
+ };
89
+
90
+ window.addEventListener('keydown', handleMenuKeys);
91
+ window.addEventListener('click', handleClick);
92
+
93
+ return () => {
94
+ window.removeEventListener('keydown', handleMenuKeys);
95
+ window.removeEventListener('click', handleClick);
96
+ };
97
+ }, [isOpen, menuRef, onOpenChange]);
98
+
99
+ const menu = (
100
+ <Menu
101
+ className={css(className)}
102
+ ref={menuRef}
103
+ onSelect={(event, itemId) => onSelect && onSelect(event, itemId)}
104
+ isPlain={isPlain}
105
+ isScrollable={isScrollable}
111
106
  {...props}
112
- />
113
- </DropdownContext.Provider>
114
- );
107
+ >
108
+ <MenuContent>{children}</MenuContent>
109
+ </Menu>
110
+ );
111
+ return (
112
+ <div ref={containerRef} {...ouiaProps}>
113
+ <Popper
114
+ trigger={toggle(toggleRef)}
115
+ triggerRef={toggleRef}
116
+ popper={menu}
117
+ popperRef={menuRef}
118
+ appendTo={containerRef.current || undefined}
119
+ isVisible={isOpen}
120
+ zIndex={zIndex}
121
+ {...popperProps}
122
+ />
123
+ </div>
124
+ );
125
+ };
126
+
127
+ export const Dropdown = React.forwardRef((props: DropdownProps, ref: React.Ref<any>) => (
128
+ <DropdownBase innerRef={ref} {...props} />
129
+ ));
115
130
  Dropdown.displayName = 'Dropdown';
@@ -1,36 +1,25 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
- import { DropdownContext } from './dropdownConstants';
3
+ import { MenuGroupProps, MenuGroup } from '../Menu';
4
4
 
5
- export interface DropdownGroupProps extends Omit<React.HTMLProps<HTMLDivElement>, 'label'> {
6
- /** Checkboxes within group */
7
- children?: React.ReactNode;
8
- /** Additional classes added to the DropdownGroup control */
5
+ export interface DropdownGroupProps extends Omit<MenuGroupProps, 'ref'> {
6
+ /** Anything which can be rendered in a dropdown group. */
7
+ children: React.ReactNode;
8
+ /** Classes applied to root element of dropdown group */
9
9
  className?: string;
10
- /** Group label */
11
- label?: React.ReactNode;
10
+ /** Label of the dropdown group */
11
+ label?: string;
12
12
  }
13
13
 
14
14
  export const DropdownGroup: React.FunctionComponent<DropdownGroupProps> = ({
15
- children = null,
16
- className = '',
17
- label = '',
15
+ children,
16
+ className,
17
+ label,
18
+ labelHeadingLevel = 'h1',
18
19
  ...props
19
20
  }: DropdownGroupProps) => (
20
- <DropdownContext.Consumer>
21
- {({ sectionClass, sectionTitleClass, sectionComponent }) => {
22
- const SectionComponent = sectionComponent as any;
23
- return (
24
- <SectionComponent className={css(sectionClass, className)} {...props}>
25
- {label && (
26
- <h1 className={css(sectionTitleClass)} aria-hidden>
27
- {label}
28
- </h1>
29
- )}
30
- <ul role="none">{children}</ul>
31
- </SectionComponent>
32
- );
33
- }}
34
- </DropdownContext.Consumer>
21
+ <MenuGroup className={css(className)} label={label} labelHeadingLevel={labelHeadingLevel} {...props}>
22
+ {children}
23
+ </MenuGroup>
35
24
  );
36
25
  DropdownGroup.displayName = 'DropdownGroup';
@@ -1,113 +1,37 @@
1
- import * as React from 'react';
2
- import { InternalDropdownItemProps, InternalDropdownItem } from './InternalDropdownItem';
3
- import { DropdownArrowContext } from './dropdownConstants';
1
+ import React from 'react';
2
+ import { css } from '@patternfly/react-styles';
3
+ import { MenuItemProps, MenuItem } from '../Menu';
4
4
  import { useOUIAProps, OUIAProps } from '../../helpers';
5
5
 
6
- export interface DropdownItemProps extends Omit<InternalDropdownItemProps, 'tabIndex'>, OUIAProps {
7
- /** Anything which can be rendered as dropdown item */
6
+ export interface DropdownItemProps extends Omit<MenuItemProps, 'ref'>, OUIAProps {
7
+ /** Anything which can be rendered in a dropdown item */
8
8
  children?: React.ReactNode;
9
9
  /** Classes applied to root element of dropdown item */
10
10
  className?: string;
11
- /** Class to be applied to list item */
12
- listItemClassName?: string;
13
- /**
14
- * A ReactElement to render, or a string to use as the component tag.
15
- * Example: component={<Link to="/components/alert/">Alert</Link>}
16
- * Example: component="button"
17
- * If React.isValidElement(component) the className prop will be injected unless styleChildren="false"
18
- */
19
- component?: React.ReactNode;
20
- /** ID for the component element */
21
- componentID?: string;
22
- /** Whether to set className on component when React.isValidElement(component) */
23
- styleChildren?: boolean;
24
- /** Render dropdown item as disabled option */
25
- isDisabled?: boolean;
26
- /** Render dropdown item as aria-disabled option */
27
- isAriaDisabled?: boolean;
28
- /** Render dropdown item as non-interactive item */
29
- isPlainText?: boolean;
30
- /** Default hyperlink location */
31
- href?: string;
32
- /** Tooltip to display when hovered over the item */
33
- tooltip?: React.ReactNode;
34
- /** Additional tooltip props forwarded to the Tooltip component */
35
- tooltipProps?: any;
36
- /** Additional node to include alongside item within the <li> */
37
- additionalChild?: React.ReactNode;
38
- /** Custom item rendering that receives the DropdownContext */
39
- customChild?: React.ReactNode;
40
- /** tabIndex to use, null to unset it */
41
- tabIndex?: number | null;
42
- /** An image to display within the DropdownItem, appearing before any component children */
43
- icon?: React.ReactNode;
44
- /** Initial focus on the item when the menu is opened (Note: Only applicable to one of the items) */
45
- autoFocus?: boolean;
46
- /** A short description of the dropdown item, displayed under the dropdown item content */
11
+ /** Description of the dropdown item */
47
12
  description?: React.ReactNode;
13
+ /** Identifies the component in the dropdown onSelect callback */
14
+ itemId?: any;
48
15
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
49
16
  ouiaId?: number | string;
50
17
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
51
18
  ouiaSafe?: boolean;
52
19
  }
53
20
 
54
- export const DropdownItem: React.FunctionComponent<DropdownItemProps> = ({
21
+ export const DropdownItem: React.FunctionComponent<MenuItemProps> = ({
55
22
  children,
56
23
  className,
57
- component = 'a',
58
- isDisabled = false,
59
- isAriaDisabled = false,
60
- isPlainText = false,
61
- href,
62
- tooltip,
63
- tooltipProps = {},
64
- listItemClassName,
65
- onClick,
66
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
- ref, // Types of Ref are different for React.FunctionComponent vs React.Component
68
- additionalChild,
69
- customChild,
70
- tabIndex = -1,
71
- icon = null,
72
- autoFocus,
73
- description = null,
74
- styleChildren,
24
+ description,
25
+ itemId,
75
26
  ouiaId,
76
27
  ouiaSafe,
77
28
  ...props
78
29
  }: DropdownItemProps) => {
79
30
  const ouiaProps = useOUIAProps(DropdownItem.displayName, ouiaId, ouiaSafe);
80
31
  return (
81
- <DropdownArrowContext.Consumer>
82
- {context => (
83
- <InternalDropdownItem
84
- context={context}
85
- role="menuitem"
86
- tabIndex={tabIndex}
87
- className={className}
88
- component={component}
89
- isDisabled={isDisabled}
90
- isAriaDisabled={isAriaDisabled}
91
- isPlainText={isPlainText}
92
- href={href}
93
- tooltip={tooltip}
94
- tooltipProps={tooltipProps}
95
- listItemClassName={listItemClassName}
96
- onClick={onClick}
97
- additionalChild={additionalChild}
98
- customChild={customChild}
99
- icon={icon}
100
- autoFocus={autoFocus}
101
- styleChildren={styleChildren}
102
- description={description}
103
- {...ouiaProps}
104
- {...props}
105
- >
106
- {children}
107
- </InternalDropdownItem>
108
- )}
109
- </DropdownArrowContext.Consumer>
32
+ <MenuItem className={css(className)} description={description} itemId={itemId} {...ouiaProps} {...props}>
33
+ {children}
34
+ </MenuItem>
110
35
  );
111
36
  };
112
-
113
37
  DropdownItem.displayName = 'DropdownItem';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
- import { MenuListProps, MenuList } from '../../../components/Menu';
3
+ import { MenuListProps, MenuList } from '../Menu';
4
4
 
5
5
  export interface DropdownListProps extends MenuListProps {
6
6
  /** Anything which can be rendered in a dropdown list */