@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
@@ -81,36 +81,24 @@ For most basic icons, it is recommended to wrap it inside our [icon component](/
81
81
 
82
82
  ```ts
83
83
  import React from 'react';
84
- import { MenuToggle, Icon } from '@patternfly/react-core';
84
+ import { MenuToggle } from '@patternfly/react-core';
85
85
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
86
86
 
87
87
  <React.Fragment>
88
88
  <MenuToggle
89
- icon={
90
- <Icon>
91
- <CogIcon />
92
- </Icon>
93
- }
89
+ icon={<CogIcon />}
94
90
  variant="primary"
95
91
  >
96
92
  Icon
97
93
  </MenuToggle>{' '}
98
94
  <MenuToggle
99
- icon={
100
- <Icon>
101
- <CogIcon />
102
- </Icon>
103
- }
95
+ icon={<CogIcon />}
104
96
  variant="secondary"
105
97
  >
106
98
  Icon
107
99
  </MenuToggle>{' '}
108
100
  <MenuToggle
109
- icon={
110
- <Icon>
111
- <CogIcon />
112
- </Icon>
113
- }
101
+ icon={<CogIcon />}
114
102
  variant="secondary"
115
103
  isDisabled
116
104
  >
@@ -60,7 +60,6 @@ export enum ModalVariant {
60
60
  }
61
61
 
62
62
  interface ModalState {
63
- container: HTMLElement;
64
63
  ouiaStateId: string;
65
64
  }
66
65
 
@@ -68,6 +67,7 @@ class Modal extends React.Component<ModalProps, ModalState> {
68
67
  static displayName = 'Modal';
69
68
  static currentId = 0;
70
69
  boxId = '';
70
+ backdropId = '';
71
71
 
72
72
  static defaultProps: PickOptional<ModalProps> = {
73
73
  isOpen: false,
@@ -80,10 +80,11 @@ class Modal extends React.Component<ModalProps, ModalState> {
80
80
  constructor(props: ModalProps) {
81
81
  super(props);
82
82
  const boxIdNum = Modal.currentId++;
83
+ const backdropId = boxIdNum + 1;
83
84
  this.boxId = props.id || `pf-modal-part-${boxIdNum}`;
85
+ this.backdropId = `pf-modal-part-${backdropId}`;
84
86
 
85
87
  this.state = {
86
- container: undefined,
87
88
  ouiaStateId: getDefaultOUIAId(Modal.displayName, props.variant)
88
89
  };
89
90
  }
@@ -107,7 +108,7 @@ class Modal extends React.Component<ModalProps, ModalState> {
107
108
  const target: HTMLElement = this.getElement(appendTo);
108
109
  const bodyChildren = target.children;
109
110
  for (const child of Array.from(bodyChildren)) {
110
- if (child !== this.state.container) {
111
+ if (child.id !== this.backdropId) {
111
112
  hide ? child.setAttribute('aria-hidden', '' + hide) : child.removeAttribute('aria-hidden');
112
113
  }
113
114
  }
@@ -118,36 +119,31 @@ class Modal extends React.Component<ModalProps, ModalState> {
118
119
  componentDidMount() {
119
120
  const { appendTo } = this.props;
120
121
  const target: HTMLElement = this.getElement(appendTo);
121
- const container = document.createElement('div');
122
- this.setState({ container });
123
- target.appendChild(container);
124
122
  target.addEventListener('keydown', this.handleEscKeyClick, false);
125
123
 
126
124
  if (this.props.isOpen) {
127
125
  target.classList.add(css(styles.backdropOpen));
128
- } else {
129
- target.classList.remove(css(styles.backdropOpen));
126
+ this.toggleSiblingsFromScreenReaders(true);
130
127
  }
131
128
  }
132
129
 
133
- componentDidUpdate() {
130
+ componentDidUpdate(prevProps: ModalProps) {
134
131
  const { appendTo } = this.props;
135
132
  const target: HTMLElement = this.getElement(appendTo);
136
133
  if (this.props.isOpen) {
137
134
  target.classList.add(css(styles.backdropOpen));
138
135
  this.toggleSiblingsFromScreenReaders(true);
139
136
  } else {
140
- target.classList.remove(css(styles.backdropOpen));
141
- this.toggleSiblingsFromScreenReaders(false);
137
+ if (prevProps.isOpen !== this.props.isOpen) {
138
+ target.classList.remove(css(styles.backdropOpen));
139
+ this.toggleSiblingsFromScreenReaders(false);
140
+ }
142
141
  }
143
142
  }
144
143
 
145
144
  componentWillUnmount() {
146
145
  const { appendTo } = this.props;
147
146
  const target: HTMLElement = this.getElement(appendTo);
148
- if (this.state.container) {
149
- target.removeChild(this.state.container);
150
- }
151
147
  target.removeEventListener('keydown', this.handleEscKeyClick, false);
152
148
  target.classList.remove(css(styles.backdropOpen));
153
149
  this.toggleSiblingsFromScreenReaders(false);
@@ -155,7 +151,6 @@ class Modal extends React.Component<ModalProps, ModalState> {
155
151
 
156
152
  render() {
157
153
  const {
158
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
159
154
  appendTo,
160
155
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
161
156
  onEscapePress,
@@ -168,15 +163,15 @@ class Modal extends React.Component<ModalProps, ModalState> {
168
163
  elementToFocus,
169
164
  ...props
170
165
  } = this.props;
171
- const { container } = this.state;
172
166
 
173
- if (!canUseDOM || !container) {
167
+ if (!canUseDOM || !this.getElement(appendTo)) {
174
168
  return null;
175
169
  }
176
170
 
177
171
  return ReactDOM.createPortal(
178
172
  <ModalContent
179
173
  boxId={this.boxId}
174
+ backdropId={this.backdropId}
180
175
  aria-label={ariaLabel}
181
176
  aria-describedby={ariaDescribedby}
182
177
  aria-labelledby={ariaLabelledby}
@@ -187,7 +182,7 @@ class Modal extends React.Component<ModalProps, ModalState> {
187
182
  backdropClassName={props.backdropClassName}
188
183
  {...props}
189
184
  />,
190
- container
185
+ this.getElement(appendTo)
191
186
  ) as React.ReactElement;
192
187
  }
193
188
  }
@@ -16,6 +16,8 @@ export interface ModalContentProps extends OUIAProps {
16
16
  'aria-labelledby'?: string;
17
17
  /** Id of the modal box container. */
18
18
  boxId: string;
19
+ /** Id of the backdrop. */
20
+ backdropId?: string;
19
21
  /** Content rendered inside the modal. */
20
22
  children: React.ReactNode;
21
23
  /** Additional classes added to the modal box. */
@@ -63,6 +65,7 @@ export const ModalContent: React.FunctionComponent<ModalContentProps> = ({
63
65
  width,
64
66
  maxWidth,
65
67
  boxId,
68
+ backdropId,
66
69
  disableFocusTrap = false,
67
70
  ouiaId,
68
71
  ouiaSafe = true,
@@ -109,7 +112,7 @@ export const ModalContent: React.FunctionComponent<ModalContentProps> = ({
109
112
  </ModalBox>
110
113
  );
111
114
  return (
112
- <Backdrop className={css(backdropClassName)}>
115
+ <Backdrop className={css(backdropClassName)} id={backdropId}>
113
116
  <FocusTrap
114
117
  active={!disableFocusTrap}
115
118
  focusTrapOptions={{
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
 
3
3
  import { render, screen } from '@testing-library/react';
4
4
  import userEvent from '@testing-library/user-event';
5
+ import '@testing-library/jest-dom';
5
6
 
6
7
  import { css } from '../../../../../react-styles/dist/js';
7
8
  import styles from '@patternfly/react-styles/css/components/Backdrop/backdrop';
@@ -38,6 +39,32 @@ const ModalWithSiblings = () => {
38
39
  );
39
40
  };
40
41
 
42
+ const ModalWithAdjacentModal = () => {
43
+ const [isOpen, setIsOpen] = React.useState(true);
44
+ const [isModalMounted, setIsModalMounted] = React.useState(true);
45
+ const modalProps = { ...props, isOpen, appendTo: target, onClose: () => setIsOpen(false) };
46
+
47
+ return (
48
+ <>
49
+ <aside>Aside sibling</aside>
50
+ <article>Section sibling</article>
51
+ {isModalMounted && (
52
+ <>
53
+ <Modal {...modalProps}>
54
+ <button onClick={() => setIsModalMounted(false)}>Unmount Modal</button>
55
+ </Modal>
56
+ <Modal isOpen={false} onClose={() => {}}>
57
+ Modal closed for test
58
+ </Modal>
59
+ <Modal isOpen={false} onClose={() => {}}>
60
+ modal closed for test
61
+ </Modal>
62
+ </>
63
+ )}
64
+ </>
65
+ );
66
+ };
67
+
41
68
  describe('Modal', () => {
42
69
  test('Modal creates a container element once for div', () => {
43
70
  render(<Modal {...props} />);
@@ -128,4 +155,22 @@ describe('Modal', () => {
128
155
  expect(asideSibling).not.toHaveAttribute('aria-hidden');
129
156
  expect(articleSibling).not.toHaveAttribute('aria-hidden');
130
157
  });
158
+
159
+ test('modal siblings have the aria-hidden attribute when it has adjacent modals', async () => {
160
+ const user = userEvent.setup();
161
+
162
+ render(<ModalWithAdjacentModal />, { container: document.body.appendChild(target) });
163
+
164
+ const asideSibling = screen.getByRole('complementary', { hidden: true });
165
+ const articleSibling = screen.getByRole('article', { hidden: true });
166
+ const unmountButton = screen.getByRole('button', { name: 'Unmount Modal' });
167
+
168
+ expect(asideSibling).toHaveAttribute('aria-hidden');
169
+ expect(articleSibling).toHaveAttribute('aria-hidden');
170
+
171
+ await user.click(unmountButton);
172
+
173
+ expect(asideSibling).not.toHaveAttribute('aria-hidden');
174
+ expect(articleSibling).not.toHaveAttribute('aria-hidden');
175
+ });
131
176
  });
@@ -9,7 +9,7 @@ exports[`MultipleFileUpload renders custom class names 1`] = `
9
9
  >
10
10
  <input
11
11
  multiple=""
12
- style="display: none;"
12
+ 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;"
13
13
  tabindex="-1"
14
14
  type="file"
15
15
  />
@@ -27,7 +27,7 @@ exports[`MultipleFileUpload renders with expected class names when horizontal 1`
27
27
  >
28
28
  <input
29
29
  multiple=""
30
- style="display: none;"
30
+ 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;"
31
31
  tabindex="-1"
32
32
  type="file"
33
33
  />
@@ -45,7 +45,7 @@ exports[`MultipleFileUpload renders with expected class names when not horizonta
45
45
  >
46
46
  <input
47
47
  multiple=""
48
- style="display: none;"
48
+ 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;"
49
49
  tabindex="-1"
50
50
  type="file"
51
51
  />
@@ -95,9 +95,8 @@ export const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () =>
95
95
  variant="plain"
96
96
  onClick={onToggle}
97
97
  isExpanded={isOpen}
98
- >
99
- <EllipsisVIcon />
100
- </MenuToggle>
98
+ icon={<EllipsisVIcon />}
99
+ />
101
100
  )}
102
101
  isOpen={isOpen}
103
102
  onOpenChange={(isOpen) => setIsOpen(isOpen)}
@@ -99,9 +99,8 @@ export const OverflowMenuGroupTypes: React.FunctionComponent = () => {
99
99
  variant="plain"
100
100
  onClick={onToggle}
101
101
  isExpanded={isOpen}
102
- >
103
- <EllipsisVIcon />
104
- </MenuToggle>
102
+ icon={<EllipsisVIcon />}
103
+ />
105
104
  )}
106
105
  isOpen={isOpen}
107
106
  onOpenChange={(isOpen) => setIsOpen(isOpen)}
@@ -88,9 +88,8 @@ export const OverflowMenuMultiGroup: React.FunctionComponent = () => {
88
88
  variant="plain"
89
89
  onClick={onToggle}
90
90
  isExpanded={isOpen}
91
- >
92
- <EllipsisVIcon />
93
- </MenuToggle>
91
+ icon={<EllipsisVIcon />}
92
+ />
94
93
  )}
95
94
  isOpen={isOpen}
96
95
  onOpenChange={(isOpen) => setIsOpen(isOpen)}
@@ -62,9 +62,8 @@ export const OverflowMenuPersistent: React.FunctionComponent = () => {
62
62
  variant="plain"
63
63
  onClick={onToggle}
64
64
  isExpanded={isOpen}
65
- >
66
- <EllipsisVIcon />
67
- </MenuToggle>
65
+ icon={<EllipsisVIcon />}
66
+ />
68
67
  )}
69
68
  isOpen={isOpen}
70
69
  onOpenChange={(isOpen) => setIsOpen(isOpen)}
@@ -62,9 +62,8 @@ export const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () =>
62
62
  variant="plain"
63
63
  onClick={onToggle}
64
64
  isExpanded={isOpen}
65
- >
66
- <EllipsisVIcon />
67
- </MenuToggle>
65
+ icon={<EllipsisVIcon />}
66
+ />
68
67
  )}
69
68
  isOpen={isOpen}
70
69
  onOpenChange={(isOpen) => setIsOpen(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 { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
5
+ import { getOUIAProps, OUIAProps, getDefaultOUIAId, onToggleArrowKeydownDefault } from '../../helpers';
6
6
 
7
7
  export interface SelectPopperProps {
8
8
  /** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
@@ -62,6 +62,10 @@ export interface SelectProps extends MenuProps, OUIAProps {
62
62
  onOpenChange?: (isOpen: boolean) => void;
63
63
  /** 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. */
64
64
  onOpenChangeKeys?: string[];
65
+ /** 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. */
66
+ onToggleKeydown?: (event: KeyboardEvent) => void;
67
+ /** Select variant. For typeahead variant focus won't shift to menu items when pressing up/down arrows. */
68
+ variant?: 'default' | 'typeahead';
65
69
  /** Indicates if the select should be without the outer box-shadow */
66
70
  isPlain?: boolean;
67
71
  /** @hide Forwarded ref */
@@ -95,6 +99,8 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
95
99
  shouldFocusFirstItemOnOpen = false,
96
100
  onOpenChange,
97
101
  onOpenChangeKeys = ['Escape', 'Tab'],
102
+ onToggleKeydown,
103
+ variant,
98
104
  isPlain,
99
105
  innerRef,
100
106
  zIndex = 9999,
@@ -144,6 +150,14 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
144
150
  toggleRef.current?.focus();
145
151
  }
146
152
  }
153
+
154
+ if (toggleRef.current?.contains(event.target as Node)) {
155
+ if (onToggleKeydown) {
156
+ onToggleKeydown(event);
157
+ } else if (isOpen && variant !== 'typeahead') {
158
+ onToggleArrowKeydownDefault(event, menuRef);
159
+ }
160
+ }
147
161
  };
148
162
 
149
163
  const handleClick = (event: MouseEvent) => {
@@ -168,6 +182,7 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
168
182
  toggleRef,
169
183
  onOpenChange,
170
184
  onOpenChangeKeys,
185
+ onToggleKeydown,
171
186
  shouldPreventScrollOnItemFocus,
172
187
  shouldFocusFirstItemOnOpen,
173
188
  focusTimeoutDelay
@@ -247,7 +247,7 @@ export const SelectMultiTypeahead: React.FunctionComponent = () => {
247
247
  !isOpen && closeMenu();
248
248
  }}
249
249
  toggle={toggle}
250
- shouldFocusFirstItemOnOpen={false}
250
+ variant="typeahead"
251
251
  >
252
252
  <SelectList isAriaMultiselectable id="select-multi-typeahead-listbox">
253
253
  {selectOptions.map((option, index) => (
@@ -241,7 +241,7 @@ export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
241
241
  !isOpen && closeMenu();
242
242
  }}
243
243
  toggle={toggle}
244
- shouldFocusFirstItemOnOpen={false}
244
+ variant="typeahead"
245
245
  >
246
246
  <SelectList isAriaMultiselectable id="select-multi-typeahead-checkbox-listbox">
247
247
  {selectOptions.map((option, index) => (
@@ -260,7 +260,7 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
260
260
  !isOpen && closeMenu();
261
261
  }}
262
262
  toggle={toggle}
263
- shouldFocusFirstItemOnOpen={false}
263
+ variant="typeahead"
264
264
  >
265
265
  <SelectList isAriaMultiselectable id="select-multi-create-typeahead-listbox">
266
266
  {selectOptions.map((option, index) => (
@@ -244,7 +244,7 @@ export const SelectTypeahead: React.FunctionComponent = () => {
244
244
  !isOpen && closeMenu();
245
245
  }}
246
246
  toggle={toggle}
247
- shouldFocusFirstItemOnOpen={false}
247
+ variant="typeahead"
248
248
  >
249
249
  <SelectList id="select-typeahead-listbox">
250
250
  {selectOptions.map((option, index) => (
@@ -251,7 +251,7 @@ export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
251
251
  !isOpen && closeMenu();
252
252
  }}
253
253
  toggle={toggle}
254
- shouldFocusFirstItemOnOpen={false}
254
+ variant="typeahead"
255
255
  >
256
256
  <SelectList id="select-create-typeahead-listbox">
257
257
  {selectOptions.map((option, index) => (
@@ -133,7 +133,8 @@ class ToolbarFilter extends React.Component<ToolbarFilterProps, ToolbarFilterSta
133
133
  return (
134
134
  <React.Fragment>
135
135
  {showToolbarItem && <ToolbarItem {...props}>{children}</ToolbarItem>}
136
- {ReactDOM.createPortal(labelGroup, labelGroupContentRef.current.firstElementChild)}
136
+ {labelGroupContentRef?.current?.firstElementChild !== null &&
137
+ ReactDOM.createPortal(labelGroup, labelGroupContentRef.current.firstElementChild)}
137
138
  </React.Fragment>
138
139
  );
139
140
  }
@@ -229,9 +229,8 @@ export const ToolbarStacked: React.FunctionComponent = () => {
229
229
  variant="plain"
230
230
  onClick={onKebabToggle}
231
231
  isExpanded={kebabIsOpen}
232
- >
233
- <EllipsisVIcon />
234
- </MenuToggle>
232
+ icon={<EllipsisVIcon />}
233
+ />
235
234
  )}
236
235
  isOpen={kebabIsOpen}
237
236
  >
@@ -231,9 +231,8 @@ export const ToolbarWithFilters: React.FunctionComponent = () => {
231
231
  onClick={onKebabToggle}
232
232
  variant="plain"
233
233
  aria-label="Toolbar with filters example kebab toggle"
234
- >
235
- <EllipsisVIcon aria-hidden="true" />
236
- </MenuToggle>
234
+ icon={<EllipsisVIcon aria-hidden="true" />}
235
+ />
237
236
  )}
238
237
  >
239
238
  <DropdownList>
@@ -47,9 +47,8 @@ export const TreeViewWithActionItems: React.FunctionComponent = () => {
47
47
  onClick={onToggle}
48
48
  variant="plain"
49
49
  aria-label="Tree view with actions example kebab toggle"
50
- >
51
- <EllipsisVIcon aria-hidden="true" />
52
- </MenuToggle>
50
+ icon={<EllipsisVIcon />}
51
+ />
53
52
  )}
54
53
  >
55
54
  <DropdownList>
@@ -427,9 +427,8 @@ export const CardViewBasic: React.FunctionComponent = () => {
427
427
  variant="plain"
428
428
  onClick={onToolbarKebabDropdownToggle}
429
429
  isExpanded={isLowerToolbarKebabDropdownOpen}
430
- >
431
- <EllipsisVIcon />
432
- </MenuToggle>
430
+ icon={<EllipsisVIcon />}
431
+ />
433
432
  )}
434
433
  isOpen={isLowerToolbarKebabDropdownOpen}
435
434
  onOpenChange={(isOpen) => setIsLowerToolbarDropdownOpen(isOpen)}
@@ -518,9 +517,8 @@ export const CardViewBasic: React.FunctionComponent = () => {
518
517
  onCardKebabDropdownToggle(e, key.toString());
519
518
  }}
520
519
  isExpanded={!!state[key]}
521
- >
522
- <EllipsisVIcon />
523
- </MenuToggle>
520
+ icon={<EllipsisVIcon />}
521
+ />
524
522
  )}
525
523
  popperProps={{ position: 'right' }}
526
524
  >
@@ -215,9 +215,8 @@ export const ApplicationLauncherDemo: React.FunctionComponent = () => {
215
215
  onClick={onToggleClick}
216
216
  isExpanded={isOpen}
217
217
  style={{ width: 'auto' }}
218
- >
219
- <ThIcon />
220
- </MenuToggle>
218
+ icon={<ThIcon />}
219
+ />
221
220
  )}
222
221
  ref={menuRef}
223
222
  onActionClick={onFavorite}
@@ -137,9 +137,8 @@ export const DashboardHeader: React.FC<DashboardHeaderProps> = ({ notificationBa
137
137
  onClick={onKebabDropdownToggle}
138
138
  variant="plain"
139
139
  aria-label="Settings and help"
140
- >
141
- <EllipsisVIcon aria-hidden="true" />
142
- </MenuToggle>
140
+ icon={<EllipsisVIcon aria-hidden="true" />}
141
+ />
143
142
  )}
144
143
  >
145
144
  <DropdownList>{kebabDropdownItems}</DropdownList>
@@ -158,9 +157,8 @@ export const DashboardHeader: React.FC<DashboardHeaderProps> = ({ notificationBa
158
157
  onClick={onFullKebabToggle}
159
158
  variant="plain"
160
159
  aria-label="Toolbar menu"
161
- >
162
- <EllipsisVIcon aria-hidden="true" />
163
- </MenuToggle>
160
+ icon={<EllipsisVIcon aria-hidden="true" />}
161
+ />
164
162
  )}
165
163
  >
166
164
  <DropdownGroup key="group 2" aria-label="User actions">
@@ -56,9 +56,7 @@ export const DataListBasic: React.FunctionComponent = () => {
56
56
  <Button variant="primary">Create instance</Button>
57
57
  </OverflowMenuItem>
58
58
  <OverflowMenuControl hasAdditionalOptions>
59
- <MenuToggle aria-label="Toolbar kebab overflow menu" variant="plain">
60
- <EllipsisVIcon />
61
- </MenuToggle>
59
+ <MenuToggle aria-label="Toolbar kebab overflow menu" variant="plain" icon={<EllipsisVIcon />} />
62
60
  </OverflowMenuControl>
63
61
  </OverflowMenu>
64
62
  </ToolbarItem>
@@ -13,6 +13,7 @@ import {
13
13
  Dropdown,
14
14
  DropdownItem,
15
15
  DropdownList,
16
+ Icon,
16
17
  MenuToggle,
17
18
  MenuToggleElement,
18
19
  Toolbar,
@@ -22,7 +23,6 @@ import {
22
23
  ToolbarContent,
23
24
  SearchInput,
24
25
  Tooltip,
25
- Icon,
26
26
  PageSection
27
27
  } from '@patternfly/react-core';
28
28
 
@@ -182,9 +182,8 @@ export const DataListExpandableControlInToolbar: React.FunctionComponent = () =>
182
182
  isExpanded={isOpen1}
183
183
  variant="plain"
184
184
  aria-label="Primary content kebab toggle"
185
- >
186
- <EllipsisVIcon aria-hidden="true" />
187
- </MenuToggle>
185
+ icon={<EllipsisVIcon aria-hidden="true" />}
186
+ />
188
187
  )}
189
188
  >
190
189
  <DropdownList>
@@ -259,9 +258,8 @@ export const DataListExpandableControlInToolbar: React.FunctionComponent = () =>
259
258
  isExpanded={isOpen2}
260
259
  variant="plain"
261
260
  aria-label="Secondary content kebab toggle"
262
- >
263
- <EllipsisVIcon aria-hidden="true" />
264
- </MenuToggle>
261
+ icon={<EllipsisVIcon aria-hidden="true" />}
262
+ />
265
263
  )}
266
264
  >
267
265
  <DropdownList>
@@ -336,9 +334,8 @@ export const DataListExpandableControlInToolbar: React.FunctionComponent = () =>
336
334
  isExpanded={isOpen3}
337
335
  variant="plain"
338
336
  aria-label="Tertiary content kebab toggle"
339
- >
340
- <EllipsisVIcon aria-hidden="true" />
341
- </MenuToggle>
337
+ icon={<EllipsisVIcon aria-hidden="true" />}
338
+ />
342
339
  )}
343
340
  >
344
341
  <DropdownList>