@patternfly/react-core 6.1.0-prerelease.1 → 6.1.0-prerelease.10

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 (303) hide show
  1. package/CHANGELOG.md +58 -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/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Content/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/TimePicker/package.json +1 -1
  74. package/dist/dynamic/components/Timestamp/package.json +1 -1
  75. package/dist/dynamic/components/Title/package.json +1 -1
  76. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  77. package/dist/dynamic/components/Toolbar/package.json +1 -1
  78. package/dist/dynamic/components/Tooltip/package.json +1 -1
  79. package/dist/dynamic/components/TreeView/package.json +1 -1
  80. package/dist/dynamic/components/Truncate/package.json +1 -1
  81. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/package.json +1 -1
  83. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  95. package/dist/dynamic/helpers/constants/package.json +1 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  99. package/dist/dynamic/helpers/package.json +1 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  105. package/dist/dynamic/helpers/util/package.json +1 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  107. package/dist/dynamic/layouts/Flex/package.json +1 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  109. package/dist/dynamic/layouts/Grid/package.json +1 -1
  110. package/dist/dynamic/layouts/Level/package.json +1 -1
  111. package/dist/dynamic/layouts/Split/package.json +1 -1
  112. package/dist/dynamic/layouts/Stack/package.json +1 -1
  113. package/dist/dynamic/styles/package.json +1 -1
  114. package/dist/dynamic-modules.json +1 -0
  115. package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
  116. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  117. package/dist/esm/components/Dropdown/Dropdown.js +12 -3
  118. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  119. package/dist/esm/components/Menu/MenuContainer.d.ts +2 -0
  120. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  121. package/dist/esm/components/Menu/MenuContainer.js +21 -4
  122. package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
  123. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts +1 -1
  124. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
  125. package/dist/esm/components/Modal/Modal.d.ts +2 -2
  126. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  127. package/dist/esm/components/Modal/Modal.js +13 -20
  128. package/dist/esm/components/Modal/Modal.js.map +1 -1
  129. package/dist/esm/components/Modal/ModalContent.d.ts +2 -0
  130. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  131. package/dist/esm/components/Modal/ModalContent.js +2 -2
  132. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  133. package/dist/esm/components/Select/Select.d.ts +4 -0
  134. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  135. package/dist/esm/components/Select/Select.js +12 -3
  136. package/dist/esm/components/Select/Select.js.map +1 -1
  137. package/dist/esm/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
  138. package/dist/esm/components/Toolbar/ToolbarFilter.js +4 -2
  139. package/dist/esm/components/Toolbar/ToolbarFilter.js.map +1 -1
  140. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -1
  141. package/dist/esm/demos/DashboardHeader.js +2 -4
  142. package/dist/esm/demos/DashboardHeader.js.map +1 -1
  143. package/dist/esm/deprecated/components/Modal/Modal.d.ts +2 -2
  144. package/dist/esm/deprecated/components/Modal/Modal.d.ts.map +1 -1
  145. package/dist/esm/deprecated/components/Modal/Modal.js +13 -20
  146. package/dist/esm/deprecated/components/Modal/Modal.js.map +1 -1
  147. package/dist/esm/deprecated/components/Modal/ModalContent.d.ts +2 -0
  148. package/dist/esm/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
  149. package/dist/esm/deprecated/components/Modal/ModalContent.js +2 -2
  150. package/dist/esm/deprecated/components/Modal/ModalContent.js.map +1 -1
  151. package/dist/esm/helpers/KeyboardHandler.d.ts +7 -0
  152. package/dist/esm/helpers/KeyboardHandler.d.ts.map +1 -1
  153. package/dist/esm/helpers/KeyboardHandler.js +25 -0
  154. package/dist/esm/helpers/KeyboardHandler.js.map +1 -1
  155. package/dist/esm/layouts/Split/Split.d.ts +4 -4
  156. package/dist/esm/layouts/Split/Split.d.ts.map +1 -1
  157. package/dist/esm/layouts/Split/SplitItem.d.ts +5 -3
  158. package/dist/esm/layouts/Split/SplitItem.d.ts.map +1 -1
  159. package/dist/esm/layouts/Split/SplitItem.js +3 -2
  160. package/dist/esm/layouts/Split/SplitItem.js.map +1 -1
  161. package/dist/esm/layouts/Stack/Stack.d.ts +3 -3
  162. package/dist/esm/layouts/Stack/Stack.d.ts.map +1 -1
  163. package/dist/esm/layouts/Stack/StackItem.d.ts +5 -3
  164. package/dist/esm/layouts/Stack/StackItem.d.ts.map +1 -1
  165. package/dist/esm/layouts/Stack/StackItem.js +3 -2
  166. package/dist/esm/layouts/Stack/StackItem.js.map +1 -1
  167. package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
  168. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  169. package/dist/js/components/Dropdown/Dropdown.js +11 -2
  170. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  171. package/dist/js/components/Menu/MenuContainer.d.ts +2 -0
  172. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  173. package/dist/js/components/Menu/MenuContainer.js +22 -5
  174. package/dist/js/components/Menu/MenuContainer.js.map +1 -1
  175. package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts +1 -1
  176. package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
  177. package/dist/js/components/Modal/Modal.d.ts +2 -2
  178. package/dist/js/components/Modal/Modal.d.ts.map +1 -1
  179. package/dist/js/components/Modal/Modal.js +13 -20
  180. package/dist/js/components/Modal/Modal.js.map +1 -1
  181. package/dist/js/components/Modal/ModalContent.d.ts +2 -0
  182. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  183. package/dist/js/components/Modal/ModalContent.js +2 -2
  184. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  185. package/dist/js/components/Select/Select.d.ts +4 -0
  186. package/dist/js/components/Select/Select.d.ts.map +1 -1
  187. package/dist/js/components/Select/Select.js +11 -2
  188. package/dist/js/components/Select/Select.js.map +1 -1
  189. package/dist/js/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
  190. package/dist/js/components/Toolbar/ToolbarFilter.js +4 -2
  191. package/dist/js/components/Toolbar/ToolbarFilter.js.map +1 -1
  192. package/dist/js/demos/DashboardHeader.d.ts.map +1 -1
  193. package/dist/js/demos/DashboardHeader.js +2 -4
  194. package/dist/js/demos/DashboardHeader.js.map +1 -1
  195. package/dist/js/deprecated/components/Modal/Modal.d.ts +2 -2
  196. package/dist/js/deprecated/components/Modal/Modal.d.ts.map +1 -1
  197. package/dist/js/deprecated/components/Modal/Modal.js +13 -20
  198. package/dist/js/deprecated/components/Modal/Modal.js.map +1 -1
  199. package/dist/js/deprecated/components/Modal/ModalContent.d.ts +2 -0
  200. package/dist/js/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
  201. package/dist/js/deprecated/components/Modal/ModalContent.js +2 -2
  202. package/dist/js/deprecated/components/Modal/ModalContent.js.map +1 -1
  203. package/dist/js/helpers/KeyboardHandler.d.ts +7 -0
  204. package/dist/js/helpers/KeyboardHandler.d.ts.map +1 -1
  205. package/dist/js/helpers/KeyboardHandler.js +27 -1
  206. package/dist/js/helpers/KeyboardHandler.js.map +1 -1
  207. package/dist/js/layouts/Split/Split.d.ts +4 -4
  208. package/dist/js/layouts/Split/Split.d.ts.map +1 -1
  209. package/dist/js/layouts/Split/SplitItem.d.ts +5 -3
  210. package/dist/js/layouts/Split/SplitItem.d.ts.map +1 -1
  211. package/dist/js/layouts/Split/SplitItem.js +3 -2
  212. package/dist/js/layouts/Split/SplitItem.js.map +1 -1
  213. package/dist/js/layouts/Stack/Stack.d.ts +3 -3
  214. package/dist/js/layouts/Stack/Stack.d.ts.map +1 -1
  215. package/dist/js/layouts/Stack/StackItem.d.ts +5 -3
  216. package/dist/js/layouts/Stack/StackItem.d.ts.map +1 -1
  217. package/dist/js/layouts/Stack/StackItem.js +3 -2
  218. package/dist/js/layouts/Stack/StackItem.js.map +1 -1
  219. package/dist/umd/assets/{output-cDK0-HHp.css → output-K5btXEZY.css} +3520 -3482
  220. package/dist/umd/react-core.min.js +4 -4
  221. package/helpers/package.json +1 -1
  222. package/layouts/package.json +1 -1
  223. package/next/package.json +1 -1
  224. package/package.json +9 -9
  225. package/src/components/ActionList/examples/ActionListSingleGroup.tsx +2 -3
  226. package/src/components/Card/examples/CardExpandable.tsx +2 -3
  227. package/src/components/Card/examples/CardExpandableWithIcon.tsx +2 -3
  228. package/src/components/Card/examples/CardHeaderInCardHead.tsx +2 -3
  229. package/src/components/Card/examples/CardOnlyActionsInCardHead.tsx +2 -3
  230. package/src/components/Card/examples/CardWithImageAndActions.tsx +2 -3
  231. package/src/components/Checkbox/examples/CheckboxReversed.tsx +1 -1
  232. package/src/components/DataList/examples/DataList.md +16 -4
  233. package/src/components/DataList/examples/DataListActions.tsx +2 -3
  234. package/src/components/DataList/examples/DataListCheckboxes.tsx +6 -9
  235. package/src/components/DataList/examples/DataListClickableRows.tsx +4 -6
  236. package/src/components/DataList/examples/DataListExpandable.tsx +6 -9
  237. package/src/components/DataList/examples/DataListMixedExpandable.tsx +6 -9
  238. package/src/components/DataList/examples/DataListWidthModifiers.tsx +4 -6
  239. package/src/components/Dropdown/Dropdown.tsx +13 -1
  240. package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +2 -3
  241. package/src/components/DualListSelector/examples/DualListSelector.md +16 -14
  242. package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +4 -6
  243. package/src/components/FileUpload/__tests__/__snapshots__/FileUpload.test.tsx.snap +1 -1
  244. package/src/components/Hint/examples/HintBasicWithTitle.tsx +2 -3
  245. package/src/components/Hint/examples/HintBasicWithoutTitle.tsx +2 -3
  246. package/src/components/Label/examples/LabelGroupEditableAddModal.tsx +2 -2
  247. package/src/components/Menu/MenuContainer.tsx +24 -3
  248. package/src/components/MenuToggle/MenuToggleCheckbox.tsx +1 -1
  249. package/src/components/MenuToggle/examples/MenuToggle.md +4 -16
  250. package/src/components/Modal/Modal.tsx +13 -18
  251. package/src/components/Modal/ModalContent.tsx +4 -1
  252. package/src/components/Modal/__tests__/Modal.test.tsx +45 -0
  253. package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUpload.test.tsx.snap +3 -3
  254. package/src/components/OverflowMenu/examples/OverflowMenuBreakpointOnContainer.tsx +2 -3
  255. package/src/components/OverflowMenu/examples/OverflowMenuGroupTypes.tsx +2 -3
  256. package/src/components/OverflowMenu/examples/OverflowMenuMultiGroup.tsx +2 -3
  257. package/src/components/OverflowMenu/examples/OverflowMenuPersistent.tsx +2 -3
  258. package/src/components/OverflowMenu/examples/OverflowMenuSimple.tsx +2 -3
  259. package/src/components/Select/Select.tsx +16 -1
  260. package/src/components/Select/examples/SelectMultiTypeahead.tsx +1 -1
  261. package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +1 -1
  262. package/src/components/Select/examples/SelectMultiTypeaheadCreatable.tsx +1 -1
  263. package/src/components/Select/examples/SelectTypeahead.tsx +1 -1
  264. package/src/components/Select/examples/SelectTypeaheadCreatable.tsx +1 -1
  265. package/src/components/Toolbar/ToolbarFilter.tsx +2 -1
  266. package/src/components/Toolbar/examples/ToolbarStacked.tsx +2 -3
  267. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +2 -3
  268. package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +2 -3
  269. package/src/demos/CardView/examples/CardView.tsx +4 -6
  270. package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +2 -3
  271. package/src/demos/DashboardHeader.tsx +4 -6
  272. package/src/demos/DataList/examples/DataListBasic.tsx +1 -3
  273. package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +7 -10
  274. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +12 -18
  275. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +20 -30
  276. package/src/demos/RTL/examples/PaginatedTable.jsx +4 -6
  277. package/src/demos/RTL/examples/PaginatedTable.tsx +4 -6
  278. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +4 -6
  279. package/src/demos/examples/Card/CardHorizontalGrid.tsx +2 -3
  280. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +4 -6
  281. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +6 -9
  282. package/src/demos/examples/Nav/NavFlyout.tsx +4 -6
  283. package/src/demos/examples/Nav/NavHorizontal.tsx +4 -6
  284. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +4 -6
  285. package/src/demos/examples/Nav/NavManual.tsx +4 -6
  286. package/src/demos/examples/Page/PageContextSelector.tsx +4 -6
  287. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +4 -6
  288. package/src/demos/examples/Page/PageStickySectionGroup.tsx +4 -6
  289. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +4 -6
  290. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +4 -6
  291. package/src/demos/examples/Tabs/TabsAndTable.tsx +2 -3
  292. package/src/deprecated/components/Modal/Modal.tsx +13 -18
  293. package/src/deprecated/components/Modal/ModalContent.tsx +4 -1
  294. package/src/deprecated/components/Modal/__tests__/Modal.test.tsx +28 -0
  295. package/src/helpers/KeyboardHandler.tsx +27 -0
  296. package/src/layouts/Split/Split.tsx +4 -4
  297. package/src/layouts/Split/SplitItem.tsx +14 -8
  298. package/src/layouts/Split/__tests__/Split.test.tsx +18 -0
  299. package/src/layouts/Split/__tests__/__snapshots__/Split.test.tsx.snap +28 -0
  300. package/src/layouts/Stack/Stack.tsx +3 -3
  301. package/src/layouts/Stack/StackItem.tsx +14 -8
  302. package/src/layouts/Stack/__tests__/Stack.test.tsx +20 -2
  303. package/src/layouts/Stack/__tests__/__snapshots__/Stack.test.tsx.snap +30 -2
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.1.0-prerelease.0","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.1.0-prerelease.9","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.1.0-prerelease.0","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.1.0-prerelease.9","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.1.0-prerelease.0","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.1.0-prerelease.9","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.1.0-prerelease.1",
3
+ "version": "6.1.0-prerelease.10",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -46,15 +46,15 @@
46
46
  "subpaths": "node ../../scripts/exportSubpaths.mjs --config subpaths.config.json"
47
47
  },
48
48
  "dependencies": {
49
- "@patternfly/react-icons": "^6.1.0-prerelease.0",
50
- "@patternfly/react-styles": "^6.1.0-prerelease.0",
51
- "@patternfly/react-tokens": "^6.1.0-prerelease.0",
52
- "focus-trap": "7.6.0",
53
- "react-dropzone": "^14.2.3",
54
- "tslib": "^2.7.0"
49
+ "@patternfly/react-icons": "^6.1.0-prerelease.4",
50
+ "@patternfly/react-styles": "^6.1.0-prerelease.3",
51
+ "@patternfly/react-tokens": "^6.1.0-prerelease.3",
52
+ "focus-trap": "7.6.2",
53
+ "react-dropzone": "^14.3.5",
54
+ "tslib": "^2.8.1"
55
55
  },
56
56
  "devDependencies": {
57
- "@patternfly/patternfly": "6.0.0",
57
+ "@patternfly/patternfly": "6.1.0-prerelease.5",
58
58
  "case-anything": "^2.1.13",
59
59
  "css": "^3.0.0",
60
60
  "fs-extra": "^11.2.0"
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18",
64
64
  "react-dom": "^17 || ^18"
65
65
  },
66
- "gitHead": "07cc495ab53d6d3a0c10ccdd36d20b92ce800cb7"
66
+ "gitHead": "f42db0887bdc1df06fe1677314bb51a4c35f8c7b"
67
67
  }
@@ -84,9 +84,8 @@ export const ActionListSingleGroup: React.FunctionComponent = () => {
84
84
  variant="plain"
85
85
  isExpanded={isOpen}
86
86
  aria-label="Action list single group kebab"
87
- >
88
- <EllipsisVIcon />
89
- </MenuToggle>
87
+ icon={<EllipsisVIcon />}
88
+ />
90
89
  )}
91
90
  isOpen={isOpen}
92
91
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -71,9 +71,8 @@ export const CardExpandable: React.FunctionComponent = () => {
71
71
  onClick={() => setIsOpen(!isOpen)}
72
72
  variant="plain"
73
73
  aria-label="Card expandable example kebab toggle"
74
- >
75
- <EllipsisVIcon aria-hidden="true" />
76
- </MenuToggle>
74
+ icon={<EllipsisVIcon aria-hidden="true" />}
75
+ />
77
76
  )}
78
77
  isOpen={isOpen}
79
78
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -67,9 +67,8 @@ export const CardExpandableWithIcon: React.FunctionComponent = () => {
67
67
  onClick={() => setIsOpen(!isOpen)}
68
68
  variant="plain"
69
69
  aria-label="Card expandable with icon example kebab toggle"
70
- >
71
- <EllipsisVIcon aria-hidden="true" />
72
- </MenuToggle>
70
+ icon={<EllipsisVIcon aria-hidden="true" />}
71
+ />
73
72
  )}
74
73
  isOpen={isOpen}
75
74
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -58,9 +58,8 @@ export const CardTitleInHeader: React.FunctionComponent = () => {
58
58
  onClick={() => setIsOpen(!isOpen)}
59
59
  variant="plain"
60
60
  aria-label="Card title inline with images and actions example kebab toggle"
61
- >
62
- <EllipsisVIcon aria-hidden="true" />
63
- </MenuToggle>
61
+ icon={<EllipsisVIcon aria-hidden="true" />}
62
+ />
64
63
  )}
65
64
  isOpen={isOpen}
66
65
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -56,9 +56,8 @@ export const CardOnlyActionsInCardHead: React.FunctionComponent = () => {
56
56
  onClick={() => setIsOpen(!isOpen)}
57
57
  variant="plain"
58
58
  aria-label="Card header without title example kebab toggle"
59
- >
60
- <EllipsisVIcon aria-hidden="true" />
61
- </MenuToggle>
59
+ icon={<EllipsisVIcon aria-hidden="true" />}
60
+ />
62
61
  )}
63
62
  isOpen={isOpen}
64
63
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -64,9 +64,8 @@ export const CardWithImageAndActions: React.FunctionComponent = () => {
64
64
  onClick={() => setIsOpen(!isOpen)}
65
65
  variant="plain"
66
66
  aria-label="Card header images and actions example kebab toggle"
67
- >
68
- <EllipsisVIcon aria-hidden="true" />
69
- </MenuToggle>
67
+ icon={<EllipsisVIcon aria-hidden="true" />}
68
+ />
70
69
  )}
71
70
  isOpen={isOpen}
72
71
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  import { Checkbox } from '@patternfly/react-core';
3
3
 
4
4
  export const CheckboxReversed: React.FunctionComponent = () => (
5
- <Checkbox isLabelBeforeButton label="Reversed checkbox example" id="checkbox-reversed" name="checkbox-reversed" />
5
+ <Checkbox labelPosition="start" label="Reversed checkbox example" id="checkbox-reversed" name="checkbox-reversed" />
6
6
  );
@@ -23,7 +23,7 @@ import AngleDownIcon from '@patternfly/react-icons/dist/esm/icons/angle-down-ico
23
23
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
24
24
  import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
25
25
  import { css } from '@patternfly/react-styles';
26
- import { DragDrop, Draggable, Droppable } from '@patternfly/react-core/deprecated';
26
+ import { DragDropSort, DragDropContainer, Droppable as NewDroppable } from '@patternfly/react-drag-drop';
27
27
 
28
28
  ## Examples
29
29
 
@@ -83,11 +83,23 @@ import { DragDrop, Draggable, Droppable } from '@patternfly/react-core/deprecate
83
83
 
84
84
  ### Draggable
85
85
 
86
- Note: There is a new recommended drag and drop implementation with full keyboard functionality, which replaces this implementation. To adhere to our new recommendations, refer to the [drag and drop demos](/components/drag-and-drop/react-demos).
86
+ To enable drag and drop, wrap the `<DataList>` component with `<DragDropSort>`, define the `variant` property as "DataList", and pass both the sortable items and `onDrop` callback to `<DragDropSort>`. `<DragDropSort>` will create the component's usual children internally based on the items property, so children should not be passed to the wrapped component.
87
87
 
88
- Previously, draggable data lists had their own API for the [drag and drop component](/components/drag-and-drop), which wasn't flexible enough to allow custom styling for items as they are dragged. To address this disparity, `<DragDrop>`, `<Draggable>`, and `<Droppable>` components were added to replace our now deprecated HTML5-based API. Keyboard and screen reader accessibility for the `<DragDrop>` component is still in development.
88
+ Full drag and drop details can be found on the [drag and drop](/components/drag-and-drop) component page.
89
89
 
90
- ```ts isDeprecated file="./DataListDraggable.tsx"
90
+ ```ts file="../../../../../react-drag-drop/src/components/DragDrop/examples/DataListDraggable.tsx"
91
+
92
+ ```
93
+
94
+ ### Draggable with multiple drop zones
95
+
96
+ To enable multiple drop zones, and create the desired amount of `<Droppable>` components within a `<DragDropContainer>`.
97
+
98
+ Each `<Droppable>` should define the `wrapper` property as the component that acts as the drop zone, `<DataList>`, and the `items` property of their respective draggable items as an array of `<DraggableObject>` data. `<DragDropContainer>` should be passed the `onDrop`, `onContainerMove`, and `onCancel` callbacks to handle items being dropped, items moving between droppable containers, and what happens if the drag is cancelled respectively. `<DragDropContainer>` should also be given a `Record` representing all sortable drop zones' items. Both components should define the `variant` property as "DataList".
99
+
100
+ Full drag and drop details can be found on the [drag and drop](/components/drag-and-drop) component page.
101
+
102
+ ```ts file="../../../../../react-drag-drop/src/components/DragDrop/examples/DragDropContainerDataList.tsx"
91
103
 
92
104
  ```
93
105
 
@@ -86,9 +86,8 @@ export const DataListActions: React.FunctionComponent = () => {
86
86
  onClick={onToggle}
87
87
  variant="plain"
88
88
  aria-label="Data list with actions example kebab toggle"
89
- >
90
- <EllipsisVIcon aria-hidden="true" />
91
- </MenuToggle>
89
+ icon={<EllipsisVIcon aria-hidden="true" />}
90
+ />
92
91
  )}
93
92
  isOpen={isOpen}
94
93
  onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
@@ -84,9 +84,8 @@ export const DataListCheckboxes: React.FunctionComponent = () => {
84
84
  onClick={onToggle1}
85
85
  variant="plain"
86
86
  aria-label="Data list with checkboxes, actions and additional cells example kebab toggle 1"
87
- >
88
- <EllipsisVIcon aria-hidden="true" />
89
- </MenuToggle>
87
+ icon={<EllipsisVIcon aria-hidden="true" />}
88
+ />
90
89
  )}
91
90
  isOpen={isOpen1}
92
91
  onOpenChange={(isOpen: boolean) => setIsOpen1(isOpen)}
@@ -139,9 +138,8 @@ export const DataListCheckboxes: React.FunctionComponent = () => {
139
138
  onClick={onToggle2}
140
139
  variant="plain"
141
140
  aria-label="Data list with checkboxes, actions and additional cells example kebab toggle 2"
142
- >
143
- <EllipsisVIcon aria-hidden="true" />
144
- </MenuToggle>
141
+ icon={<EllipsisVIcon aria-hidden="true" />}
142
+ />
145
143
  )}
146
144
  isOpen={isOpen2}
147
145
  onOpenChange={(isOpen: boolean) => setIsOpen2(isOpen)}
@@ -203,9 +201,8 @@ export const DataListCheckboxes: React.FunctionComponent = () => {
203
201
  onClick={onToggle3}
204
202
  variant="plain"
205
203
  aria-label="Data list with checkboxes, actions and additional cells example kebab toggle 3"
206
- >
207
- <EllipsisVIcon aria-hidden="true" />
208
- </MenuToggle>
204
+ icon={<EllipsisVIcon aria-hidden="true" />}
205
+ />
209
206
  )}
210
207
  isOpen={isOpen3}
211
208
  onOpenChange={(isOpen: boolean) => setIsOpen3(isOpen)}
@@ -76,9 +76,8 @@ export const DataListClickableRows: React.FunctionComponent = () => {
76
76
  onClick={onToggle1}
77
77
  variant="plain"
78
78
  aria-label="Data list clickable rows example kebab toggle 1"
79
- >
80
- <EllipsisVIcon aria-hidden="true" />
81
- </MenuToggle>
79
+ icon={<EllipsisVIcon aria-hidden="true" />}
80
+ />
82
81
  )}
83
82
  isOpen={isOpen1}
84
83
  onOpenChange={(isOpen: boolean) => setIsOpen1(isOpen)}
@@ -126,9 +125,8 @@ export const DataListClickableRows: React.FunctionComponent = () => {
126
125
  onClick={onToggle2}
127
126
  variant="plain"
128
127
  aria-label="Data list clickable rows example kebab toggle 2"
129
- >
130
- <EllipsisVIcon aria-hidden="true" />
131
- </MenuToggle>
128
+ icon={<EllipsisVIcon aria-hidden="true" />}
129
+ />
132
130
  )}
133
131
  isOpen={isOpen2}
134
132
  onOpenChange={(isOpen: boolean) => setIsOpen2(isOpen)}
@@ -92,9 +92,8 @@ export const DataListExpandable: React.FunctionComponent = () => {
92
92
  onClick={onToggle1}
93
93
  variant="plain"
94
94
  aria-label="Data list exapndable example kebaby toggle 1"
95
- >
96
- <EllipsisVIcon aria-hidden="true" />
97
- </MenuToggle>
95
+ icon={<EllipsisVIcon aria-hidden="true" />}
96
+ />
98
97
  )}
99
98
  isOpen={isOpen1}
100
99
  onOpenChange={(isOpen: boolean) => setIsOpen1(isOpen)}
@@ -163,9 +162,8 @@ export const DataListExpandable: React.FunctionComponent = () => {
163
162
  onClick={onToggle2}
164
163
  variant="plain"
165
164
  aria-label="Data list exapndable example kebaby toggle 2"
166
- >
167
- <EllipsisVIcon aria-hidden="true" />
168
- </MenuToggle>
165
+ icon={<EllipsisVIcon aria-hidden="true" />}
166
+ />
169
167
  )}
170
168
  isOpen={isOpen2}
171
169
  onOpenChange={(isOpen: boolean) => setIsOpen2(isOpen)}
@@ -234,9 +232,8 @@ export const DataListExpandable: React.FunctionComponent = () => {
234
232
  onClick={onToggle3}
235
233
  variant="plain"
236
234
  aria-label="Data list exapndable example kebaby toggle 3"
237
- >
238
- <EllipsisVIcon aria-hidden="true" />
239
- </MenuToggle>
235
+ icon={<EllipsisVIcon aria-hidden="true" />}
236
+ />
240
237
  )}
241
238
  isOpen={isOpen3}
242
239
  onOpenChange={(isOpen: boolean) => setIsOpen3(isOpen)}
@@ -94,9 +94,8 @@ export const DataListMixedExpandable: React.FunctionComponent = () => {
94
94
  onClick={onToggle1}
95
95
  variant="plain"
96
96
  aria-label="Data list mixed expandable example kebab toggle 1"
97
- >
98
- <EllipsisVIcon aria-hidden="true" />
99
- </MenuToggle>
97
+ icon={<EllipsisVIcon aria-hidden="true" />}
98
+ />
100
99
  )}
101
100
  isOpen={isOpen1}
102
101
  onOpenChange={(isOpen: boolean) => setIsOpen1(isOpen)}
@@ -167,9 +166,8 @@ export const DataListMixedExpandable: React.FunctionComponent = () => {
167
166
  onClick={onToggle2}
168
167
  variant="plain"
169
168
  aria-label="Data list mixed expandable example kebab toggle 2"
170
- >
171
- <EllipsisVIcon aria-hidden="true" />
172
- </MenuToggle>
169
+ icon={<EllipsisVIcon aria-hidden="true" />}
170
+ />
173
171
  )}
174
172
  isOpen={isOpen2}
175
173
  onOpenChange={(isOpen: boolean) => setIsOpen2(isOpen)}
@@ -228,9 +226,8 @@ export const DataListMixedExpandable: React.FunctionComponent = () => {
228
226
  onClick={onToggle3}
229
227
  variant="plain"
230
228
  aria-label="Data list mixed expandable example kebab toggle 3"
231
- >
232
- <EllipsisVIcon aria-hidden="true" />
233
- </MenuToggle>
229
+ icon={<EllipsisVIcon aria-hidden="true" />}
230
+ />
234
231
  )}
235
232
  isOpen={isOpen3}
236
233
  onOpenChange={(isOpen: boolean) => setIsOpen3(isOpen)}
@@ -103,9 +103,8 @@ export const DataListWidthModifiers: React.FunctionComponent = () => {
103
103
  onClick={onToggle1}
104
104
  variant="plain"
105
105
  aria-label="Data list width modifiers example kebab toggle 1"
106
- >
107
- <EllipsisVIcon aria-hidden="true" />
108
- </MenuToggle>
106
+ icon={<EllipsisVIcon aria-hidden="true" />}
107
+ />
109
108
  )}
110
109
  isOpen={isOpen1}
111
110
  onOpenChange={(isOpen: boolean) => setIsOpen1(isOpen)}
@@ -177,9 +176,8 @@ export const DataListWidthModifiers: React.FunctionComponent = () => {
177
176
  onClick={onToggle2}
178
177
  variant="plain"
179
178
  aria-label="Data list width modifiers example kebab toggle 2"
180
- >
181
- <EllipsisVIcon aria-hidden="true" />
182
- </MenuToggle>
179
+ icon={<EllipsisVIcon aria-hidden="true" />}
180
+ />
183
181
  )}
184
182
  isOpen={isOpen2}
185
183
  onOpenChange={(isOpen: boolean) => setIsOpen2(isOpen)}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import { Menu, MenuContent, MenuProps } from '../Menu';
4
4
  import { Popper } from '../../helpers/Popper/Popper';
5
- import { useOUIAProps, OUIAProps } from '../../helpers';
5
+ import { useOUIAProps, OUIAProps, onToggleArrowKeydownDefault } from '../../helpers';
6
6
 
7
7
  export interface DropdownPopperProps {
8
8
  /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
@@ -51,6 +51,8 @@ export interface DropdownProps extends MenuProps, OUIAProps {
51
51
  onOpenChange?: (isOpen: boolean) => void;
52
52
  /** Keys that trigger onOpenChange, defaults to tab and escape. It is highly recommended to include Escape in the array, while Tab may be omitted if the menu contains non-menu items that are focusable. */
53
53
  onOpenChangeKeys?: string[];
54
+ /** Callback to override the toggle keydown behavior. By default, when the toggle has focus and the menu is open, pressing the up/down arrow keys will focus a valid non-disabled menu item - the first item for the down arrow key and last item for the up arrow key. */
55
+ onToggleKeydown?: (event: KeyboardEvent) => void;
54
56
  /** Indicates if the menu should be without the outer box-shadow. */
55
57
  isPlain?: boolean;
56
58
  /** Indicates if the menu should be scrollable. */
@@ -85,6 +87,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
85
87
  toggle,
86
88
  shouldFocusToggleOnSelect = false,
87
89
  onOpenChange,
90
+ onToggleKeydown,
88
91
  isPlain,
89
92
  isScrollable,
90
93
  innerRef,
@@ -139,6 +142,14 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
139
142
  toggleRef.current?.focus();
140
143
  }
141
144
  }
145
+
146
+ if (toggleRef.current?.contains(event.target as Node)) {
147
+ if (onToggleKeydown) {
148
+ onToggleKeydown(event);
149
+ } else if (isOpen) {
150
+ onToggleArrowKeydownDefault(event, menuRef);
151
+ }
152
+ }
142
153
  };
143
154
 
144
155
  const handleClick = (event: MouseEvent) => {
@@ -163,6 +174,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
163
174
  toggleRef,
164
175
  onOpenChange,
165
176
  onOpenChangeKeys,
177
+ onToggleKeydown,
166
178
  shouldPreventScrollOnItemFocus,
167
179
  shouldFocusFirstItemOnOpen,
168
180
  focusTimeoutDelay
@@ -27,9 +27,8 @@ export const DropdownWithKebab: React.FunctionComponent = () => {
27
27
  variant="plain"
28
28
  onClick={onToggleClick}
29
29
  isExpanded={isOpen}
30
- >
31
- <EllipsisVIcon />
32
- </MenuToggle>
30
+ icon={<EllipsisVIcon />}
31
+ />
33
32
  )}
34
33
  shouldFocusToggleOnSelect
35
34
  >
@@ -22,7 +22,7 @@ import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-i
22
22
  import PficonSortCommonAscIcon from '@patternfly/react-icons/dist/esm/icons/pficon-sort-common-asc-icon';
23
23
  import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
24
24
  import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
25
- import { DragDrop, Draggable, Droppable } from '@patternfly/react-core/deprecated';
25
+ import { DragDropSort, DragDropContainer, Droppable as NewDroppable } from '@patternfly/react-drag-drop';
26
26
 
27
27
  ## Examples
28
28
 
@@ -78,22 +78,24 @@ The dual list selector is built in a composable manner to make customization eas
78
78
 
79
79
  ```
80
80
 
81
- ### Drag and drop
81
+ ### Draggable
82
82
 
83
- This example only allows reordering the contents of the "chosen" pane with drag and drop. To make a pane able to be reordered:
83
+ To enable drag and drop, wrap the `<DualListSelectorList>` component with `<DragDropSort>`, define the `variant` property as "DualListSelectorList", and pass both the sortable items and `onDrop` callback to `<DragDropSort>`. `<DragDropSort>` will create the component's usual children internally based on the items property, so children inside the `<DualListSelectorList>` should not be passed to the wrapped component.
84
84
 
85
- - wrap the `DualListSelectorPane` in a `DragDrop` component
86
- - wrap the `DualListSelectorList` in a `Droppable` component
87
- - wrap the `DualListSelectorListItem` components in a `Draggable` component
88
- - define an `onDrop` callback which reorders the sortable options.
89
- - The `onDrop` function provides the starting location and destination location for a dragged item. It should return
90
- true to enable the 'drop' animation in the new location and false to enable the 'drop' animation back to the item's
91
- old position.
92
- - define an `onDrag` callback which ensures that the drag event will not cross hairs with the `onOptionSelect` click
93
- event set on the option. Note: the `ignoreNextOptionSelect` state value is used to prevent selection while dragging.
85
+ Full drag and drop details can be found on the [drag and drop](/components/drag-and-drop) component page.
94
86
 
95
- Note: Keyboard accessibility and screen reader accessibility for the `DragDrop` component are still in development.
87
+ ```ts file="../../../../../react-drag-drop/src/components/DragDrop/examples/DualListSelectorDraggable.tsx"
96
88
 
97
- ```ts file="DualListSelectorDragDrop.tsx"
89
+ ```
90
+
91
+ ### Draggable with multiple drop zones
92
+
93
+ To enable multiple drop zones, wrap the `<DualListSelector>` component with `<DragDropContainer>`, and create the desired amount of `<Droppable>` components within `<DragDropContainer>`. `<Droppable>` components should be located where `<DualListSelectorList>` usually would go for each pane to be made draggable.
94
+
95
+ Each `<Droppable>` should define the `wrapper` property as the component that acts as the drop zone, `<DualListSelectorList>`, and the `items` property of their respective draggable items as an array of `<DraggableObject>` data. `<DragDropContainer>` should be passed the `onDrop`, `onContainerMove`, and `onCancel` callbacks to handle items being dropped, items moving between droppable containers, and what happens if the drag is cancelled respectively. `<DragDropContainer>` should also be given a `Record` representing all sortable drop zones' items. Both components should define the `variant` property as "DualListSelectorList".
96
+
97
+ Full drag and drop details can be found on the [drag and drop](/components/drag-and-drop) component page.
98
+
99
+ ```ts file="../../../../../react-drag-drop/src/components/DragDrop/examples/DragDropContainerDualListSelector.tsx"
98
100
 
99
101
  ```
@@ -166,9 +166,8 @@ export const DualListSelectorComplexOptionsActionsNext: React.FunctionComponent
166
166
  variant="plain"
167
167
  id="complex-available-toggle"
168
168
  aria-label="Complex actions example available kebab toggle"
169
- >
170
- <EllipsisVIcon aria-hidden="true" />
171
- </MenuToggle>
169
+ icon={<EllipsisVIcon aria-hidden="true" />}
170
+ />
172
171
  )}
173
172
  isOpen={isAvailableKebabOpen}
174
173
  onOpenChange={(isOpen: boolean) => setIsAvailableKebabOpen(isOpen)}
@@ -202,9 +201,8 @@ export const DualListSelectorComplexOptionsActionsNext: React.FunctionComponent
202
201
  variant="plain"
203
202
  id="complex-chosen-toggle"
204
203
  aria-label="Complex actions example chosen kebab toggle"
205
- >
206
- <EllipsisVIcon aria-hidden="true" />
207
- </MenuToggle>
204
+ icon={<EllipsisVIcon aria-hidden="true" />}
205
+ />
208
206
  )}
209
207
  isOpen={isChosenKebabOpen}
210
208
  onOpenChange={(isOpen: boolean) => setIsChosenKebabOpen(isOpen)}
@@ -87,7 +87,7 @@ exports[`simple fileupload 1`] = `
87
87
  </span>
88
88
  </div>
89
89
  <input
90
- style="display: none;"
90
+ style="border: 0px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); height: 1px; margin: 0px -1px -1px 0px; overflow: hidden; padding: 0px; position: absolute; width: 1px; white-space: nowrap;"
91
91
  tabindex="-1"
92
92
  type="file"
93
93
  />
@@ -37,9 +37,8 @@ export const HintBasicWithTitle: React.FunctionComponent = () => {
37
37
  variant="plain"
38
38
  onClick={onToggle}
39
39
  isExpanded={isOpen}
40
- >
41
- <EllipsisVIcon />
42
- </MenuToggle>
40
+ icon={<EllipsisVIcon />}
41
+ />
43
42
  )}
44
43
  >
45
44
  <DropdownList>
@@ -36,9 +36,8 @@ export const HintBasicWithoutTitle: React.FunctionComponent = () => {
36
36
  variant="plain"
37
37
  onClick={onToggle}
38
38
  isExpanded={isOpen}
39
- >
40
- <EllipsisVIcon />
41
- </MenuToggle>
39
+ icon={<EllipsisVIcon />}
40
+ />
42
41
  )}
43
42
  >
44
43
  <DropdownList>
@@ -200,8 +200,8 @@ export const LabelGroupEditableAddModal: React.FunctionComponent = () => {
200
200
  };
201
201
 
202
202
  const iconToggle = (
203
- <MenuToggle ref={iconToggleRef} onClick={onIconToggleClick} isExpanded={isIconOpen}>
204
- {icon || 'Select'}
203
+ <MenuToggle ref={iconToggleRef} onClick={onIconToggleClick} isExpanded={isIconOpen} icon={icon}>
204
+ {icon ? '' : 'Select'}
205
205
  </MenuToggle>
206
206
  );
207
207
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Popper } from '../../helpers/Popper/Popper';
2
+ import { onToggleArrowKeydownDefault, Popper } from '../../helpers';
3
3
 
4
4
  export interface MenuPopperProps {
5
5
  /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
@@ -17,6 +17,7 @@ export interface MenuPopperProps {
17
17
  /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
18
18
  preventOverflow?: boolean;
19
19
  }
20
+
20
21
  export interface MenuContainerProps {
21
22
  /** Menu to be rendered */
22
23
  menu: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -33,6 +34,8 @@ export interface MenuContainerProps {
33
34
  onOpenChange?: (isOpen: boolean) => void;
34
35
  /** Keys that trigger onOpenChange, defaults to tab and escape. It is highly recommended to include Escape in the array, while Tab may be omitted if the menu contains non-menu items that are focusable. */
35
36
  onOpenChangeKeys?: string[];
37
+ /** Callback to override the toggle keydown behavior. By default, when the toggle has focus and the menu is open, pressing the up/down arrow keys will focus a valid non-disabled menu item - the first item for the down arrow key and last item for the up arrow key. */
38
+ onToggleKeydown?: (event: KeyboardEvent) => void;
36
39
  /** z-index of the dropdown menu */
37
40
  zIndex?: number;
38
41
  /** Additional properties to pass to the Popper */
@@ -55,10 +58,11 @@ export const MenuContainer: React.FunctionComponent<MenuContainerProps> = ({
55
58
  toggle,
56
59
  toggleRef,
57
60
  onOpenChange,
61
+ onToggleKeydown,
58
62
  zIndex = 9999,
59
63
  popperProps,
60
64
  onOpenChangeKeys = ['Escape', 'Tab'],
61
- shouldFocusFirstItemOnOpen = true,
65
+ shouldFocusFirstItemOnOpen = false,
62
66
  shouldPreventScrollOnItemFocus = true,
63
67
  focusTimeoutDelay = 0
64
68
  }: MenuContainerProps) => {
@@ -90,6 +94,14 @@ export const MenuContainer: React.FunctionComponent<MenuContainerProps> = ({
90
94
  toggleRef.current?.focus();
91
95
  }
92
96
  }
97
+
98
+ if (toggleRef.current?.contains(event.target as Node)) {
99
+ if (onToggleKeydown) {
100
+ onToggleKeydown(event);
101
+ } else if (isOpen) {
102
+ onToggleArrowKeydownDefault(event, menuRef);
103
+ }
104
+ }
93
105
  };
94
106
 
95
107
  const handleClick = (event: MouseEvent) => {
@@ -108,7 +120,16 @@ export const MenuContainer: React.FunctionComponent<MenuContainerProps> = ({
108
120
  window.removeEventListener('keydown', handleMenuKeys);
109
121
  window.removeEventListener('click', handleClick);
110
122
  };
111
- }, [focusTimeoutDelay, isOpen, menuRef, onOpenChange, onOpenChangeKeys, shouldPreventScrollOnItemFocus, toggleRef]);
123
+ }, [
124
+ focusTimeoutDelay,
125
+ isOpen,
126
+ menuRef,
127
+ onOpenChange,
128
+ onOpenChangeKeys,
129
+ onToggleKeydown,
130
+ shouldPreventScrollOnItemFocus,
131
+ toggleRef
132
+ ]);
112
133
 
113
134
  return (
114
135
  <Popper
@@ -20,7 +20,7 @@ export interface MenuToggleCheckboxProps
20
20
  /** Flag to set the default checked value of the checkbox when it is uncontrolled by React state.
21
21
  * To make the checkbox controlled instead use the isChecked prop, but do not use both.
22
22
  */
23
- defaultChecked?: boolean | null;
23
+ defaultChecked?: boolean;
24
24
  /** A callback for when the checkbox selection changes */
25
25
  onChange?: (checked: boolean, event: React.FormEvent<HTMLInputElement>) => void;
26
26
  /** Element to be rendered inside the <span> */