@patternfly/react-core 5.0.0-alpha.37 → 5.0.0-alpha.39

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 (220) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components/DataList/DataList.d.ts +2 -6
  3. package/components/DataList/DataList.d.ts.map +1 -1
  4. package/components/DataList/DataList.js +2 -2
  5. package/components/DataList/DataList.js.map +1 -1
  6. package/components/DataList/DataListItem.js +2 -2
  7. package/components/DataList/DataListItem.js.map +1 -1
  8. package/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +4 -4
  9. package/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  10. package/components/OverflowMenu/OverflowMenuDropdownItem.js +3 -3
  11. package/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  12. package/components/index.d.ts +0 -1
  13. package/components/index.d.ts.map +1 -1
  14. package/components/index.js +0 -1
  15. package/components/index.js.map +1 -1
  16. package/{components → deprecated/components}/OptionsMenu/OptionsMenu.d.ts +1 -1
  17. package/deprecated/components/OptionsMenu/OptionsMenu.d.ts.map +1 -0
  18. package/{dist/esm → deprecated}/components/OptionsMenu/OptionsMenu.js +3 -3
  19. package/deprecated/components/OptionsMenu/OptionsMenu.js.map +1 -0
  20. package/deprecated/components/OptionsMenu/OptionsMenuItem.d.ts.map +1 -0
  21. package/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.js +1 -1
  22. package/deprecated/components/OptionsMenu/OptionsMenuItem.js.map +1 -0
  23. package/deprecated/components/OptionsMenu/OptionsMenuItemGroup.d.ts.map +1 -0
  24. package/{dist/esm → deprecated}/components/OptionsMenu/OptionsMenuItemGroup.js +1 -1
  25. package/deprecated/components/OptionsMenu/OptionsMenuItemGroup.js.map +1 -0
  26. package/{components → deprecated/components}/OptionsMenu/OptionsMenuSeparator.d.ts +1 -1
  27. package/deprecated/components/OptionsMenu/OptionsMenuSeparator.d.ts.map +1 -0
  28. package/{components → deprecated/components}/OptionsMenu/OptionsMenuSeparator.js +1 -1
  29. package/deprecated/components/OptionsMenu/OptionsMenuSeparator.js.map +1 -0
  30. package/deprecated/components/OptionsMenu/OptionsMenuToggle.d.ts.map +1 -0
  31. package/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.js +1 -1
  32. package/deprecated/components/OptionsMenu/OptionsMenuToggle.js.map +1 -0
  33. package/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.d.ts.map +1 -0
  34. package/{dist/esm → deprecated}/components/OptionsMenu/OptionsMenuToggleWithText.js +2 -2
  35. package/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js.map +1 -0
  36. package/deprecated/components/OptionsMenu/index.d.ts.map +1 -0
  37. package/deprecated/components/OptionsMenu/index.js.map +1 -0
  38. package/deprecated/components/index.d.ts +1 -1
  39. package/deprecated/components/index.d.ts.map +1 -1
  40. package/deprecated/components/index.js +1 -1
  41. package/deprecated/components/index.js.map +1 -1
  42. package/dist/esm/components/DataList/DataList.d.ts +2 -6
  43. package/dist/esm/components/DataList/DataList.d.ts.map +1 -1
  44. package/dist/esm/components/DataList/DataList.js +2 -2
  45. package/dist/esm/components/DataList/DataList.js.map +1 -1
  46. package/dist/esm/components/DataList/DataListItem.js +2 -2
  47. package/dist/esm/components/DataList/DataListItem.js.map +1 -1
  48. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +4 -4
  49. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  50. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js +3 -3
  51. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  52. package/dist/esm/components/index.d.ts +0 -1
  53. package/dist/esm/components/index.d.ts.map +1 -1
  54. package/dist/esm/components/index.js +0 -1
  55. package/dist/esm/components/index.js.map +1 -1
  56. package/dist/{js → esm/deprecated}/components/OptionsMenu/OptionsMenu.d.ts +1 -1
  57. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenu.d.ts.map +1 -0
  58. package/{components → dist/esm/deprecated/components}/OptionsMenu/OptionsMenu.js +3 -3
  59. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenu.js.map +1 -0
  60. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuItem.d.ts.map +1 -0
  61. package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.js +1 -1
  62. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuItem.js.map +1 -0
  63. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuItemGroup.d.ts.map +1 -0
  64. package/{components → dist/esm/deprecated/components}/OptionsMenu/OptionsMenuItemGroup.js +1 -1
  65. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuItemGroup.js.map +1 -0
  66. package/dist/{js → esm/deprecated}/components/OptionsMenu/OptionsMenuSeparator.d.ts +1 -1
  67. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuSeparator.d.ts.map +1 -0
  68. package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuSeparator.js +1 -1
  69. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuSeparator.js.map +1 -0
  70. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggle.d.ts.map +1 -0
  71. package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.js +1 -1
  72. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggle.js.map +1 -0
  73. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.d.ts.map +1 -0
  74. package/{components → dist/esm/deprecated/components}/OptionsMenu/OptionsMenuToggleWithText.js +2 -2
  75. package/dist/esm/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js.map +1 -0
  76. package/dist/esm/deprecated/components/OptionsMenu/index.d.ts.map +1 -0
  77. package/dist/esm/deprecated/components/OptionsMenu/index.js.map +1 -0
  78. package/dist/esm/deprecated/components/index.d.ts +1 -1
  79. package/dist/esm/deprecated/components/index.d.ts.map +1 -1
  80. package/dist/esm/deprecated/components/index.js +1 -1
  81. package/dist/esm/deprecated/components/index.js.map +1 -1
  82. package/dist/js/components/DataList/DataList.d.ts +2 -6
  83. package/dist/js/components/DataList/DataList.d.ts.map +1 -1
  84. package/dist/js/components/DataList/DataList.js +2 -2
  85. package/dist/js/components/DataList/DataList.js.map +1 -1
  86. package/dist/js/components/DataList/DataListItem.js +2 -2
  87. package/dist/js/components/DataList/DataListItem.js.map +1 -1
  88. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +4 -4
  89. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  90. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js +3 -3
  91. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  92. package/dist/js/components/index.d.ts +0 -1
  93. package/dist/js/components/index.d.ts.map +1 -1
  94. package/dist/js/components/index.js +0 -1
  95. package/dist/js/components/index.js.map +1 -1
  96. package/dist/{esm → js/deprecated}/components/OptionsMenu/OptionsMenu.d.ts +1 -1
  97. package/dist/js/deprecated/components/OptionsMenu/OptionsMenu.d.ts.map +1 -0
  98. package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenu.js +3 -3
  99. package/dist/js/deprecated/components/OptionsMenu/OptionsMenu.js.map +1 -0
  100. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuItem.d.ts.map +1 -0
  101. package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.js +1 -1
  102. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuItem.js.map +1 -0
  103. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuItemGroup.d.ts.map +1 -0
  104. package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuItemGroup.js +1 -1
  105. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuItemGroup.js.map +1 -0
  106. package/dist/{esm → js/deprecated}/components/OptionsMenu/OptionsMenuSeparator.d.ts +1 -1
  107. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuSeparator.d.ts.map +1 -0
  108. package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuSeparator.js +1 -1
  109. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuSeparator.js.map +1 -0
  110. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggle.d.ts.map +1 -0
  111. package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.js +1 -1
  112. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggle.js.map +1 -0
  113. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.d.ts.map +1 -0
  114. package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuToggleWithText.js +2 -2
  115. package/dist/js/deprecated/components/OptionsMenu/OptionsMenuToggleWithText.js.map +1 -0
  116. package/dist/js/deprecated/components/OptionsMenu/index.d.ts.map +1 -0
  117. package/dist/js/deprecated/components/OptionsMenu/index.js.map +1 -0
  118. package/dist/js/deprecated/components/index.d.ts +1 -1
  119. package/dist/js/deprecated/components/index.d.ts.map +1 -1
  120. package/dist/js/deprecated/components/index.js +1 -1
  121. package/dist/js/deprecated/components/index.js.map +1 -1
  122. package/dist/umd/react-core.min.js +4 -4
  123. package/package.json +2 -2
  124. package/src/components/DataList/DataList.tsx +4 -9
  125. package/src/components/DataList/DataListItem.tsx +3 -3
  126. package/src/components/DataList/__tests__/DataList.test.tsx +6 -6
  127. package/src/components/DataList/examples/DataList.md +0 -1
  128. package/src/components/DataList/examples/DataListSelectableRows.tsx +1 -1
  129. package/src/components/OverflowMenu/OverflowMenuDropdownItem.tsx +6 -6
  130. package/src/components/OverflowMenu/__tests__/Generated/OverflowMenuDropdownItem.test.tsx +1 -4
  131. package/src/components/OverflowMenu/__tests__/Generated/__snapshots__/OverflowMenuDropdownItem.test.tsx.snap +14 -6
  132. package/src/components/OverflowMenu/examples/OverflowMenu.md +146 -73
  133. package/src/components/OverflowMenu/examples/OverflowMenuBreakpointOnContainer.tsx +26 -16
  134. package/src/components/Toolbar/examples/Toolbar.md +2 -0
  135. package/src/components/Toolbar/examples/ToolbarStacked.tsx +34 -25
  136. package/src/components/index.ts +0 -1
  137. package/src/demos/Card/Card.md +30 -16
  138. package/src/demos/Tabs.md +3 -0
  139. package/src/demos/examples/Tabs/TabsAndTable.tsx +23 -14
  140. package/src/{components → deprecated/components}/OptionsMenu/OptionsMenu.tsx +3 -3
  141. package/src/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.tsx +1 -1
  142. package/src/{components → deprecated/components}/OptionsMenu/OptionsMenuItemGroup.tsx +1 -1
  143. package/src/{components → deprecated/components}/OptionsMenu/OptionsMenuSeparator.tsx +1 -1
  144. package/src/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.tsx +1 -1
  145. package/src/{components → deprecated/components}/OptionsMenu/OptionsMenuToggleWithText.tsx +2 -2
  146. package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/OptionsMenuItem.test.tsx +1 -1
  147. package/src/{components → deprecated/components}/OptionsMenu/examples/OptionsMenu.md +10 -10
  148. package/src/deprecated/components/index.ts +1 -1
  149. package/components/OptionsMenu/OptionsMenu.d.ts.map +0 -1
  150. package/components/OptionsMenu/OptionsMenu.js.map +0 -1
  151. package/components/OptionsMenu/OptionsMenuItem.d.ts.map +0 -1
  152. package/components/OptionsMenu/OptionsMenuItem.js.map +0 -1
  153. package/components/OptionsMenu/OptionsMenuItemGroup.d.ts.map +0 -1
  154. package/components/OptionsMenu/OptionsMenuItemGroup.js.map +0 -1
  155. package/components/OptionsMenu/OptionsMenuSeparator.d.ts.map +0 -1
  156. package/components/OptionsMenu/OptionsMenuSeparator.js.map +0 -1
  157. package/components/OptionsMenu/OptionsMenuToggle.d.ts.map +0 -1
  158. package/components/OptionsMenu/OptionsMenuToggle.js.map +0 -1
  159. package/components/OptionsMenu/OptionsMenuToggleWithText.d.ts.map +0 -1
  160. package/components/OptionsMenu/OptionsMenuToggleWithText.js.map +0 -1
  161. package/components/OptionsMenu/index.d.ts.map +0 -1
  162. package/components/OptionsMenu/index.js.map +0 -1
  163. package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts.map +0 -1
  164. package/dist/esm/components/OptionsMenu/OptionsMenu.js.map +0 -1
  165. package/dist/esm/components/OptionsMenu/OptionsMenuItem.d.ts.map +0 -1
  166. package/dist/esm/components/OptionsMenu/OptionsMenuItem.js.map +0 -1
  167. package/dist/esm/components/OptionsMenu/OptionsMenuItemGroup.d.ts.map +0 -1
  168. package/dist/esm/components/OptionsMenu/OptionsMenuItemGroup.js.map +0 -1
  169. package/dist/esm/components/OptionsMenu/OptionsMenuSeparator.d.ts.map +0 -1
  170. package/dist/esm/components/OptionsMenu/OptionsMenuSeparator.js.map +0 -1
  171. package/dist/esm/components/OptionsMenu/OptionsMenuToggle.d.ts.map +0 -1
  172. package/dist/esm/components/OptionsMenu/OptionsMenuToggle.js.map +0 -1
  173. package/dist/esm/components/OptionsMenu/OptionsMenuToggleWithText.d.ts.map +0 -1
  174. package/dist/esm/components/OptionsMenu/OptionsMenuToggleWithText.js.map +0 -1
  175. package/dist/esm/components/OptionsMenu/index.d.ts.map +0 -1
  176. package/dist/esm/components/OptionsMenu/index.js.map +0 -1
  177. package/dist/js/components/OptionsMenu/OptionsMenu.d.ts.map +0 -1
  178. package/dist/js/components/OptionsMenu/OptionsMenu.js.map +0 -1
  179. package/dist/js/components/OptionsMenu/OptionsMenuItem.d.ts.map +0 -1
  180. package/dist/js/components/OptionsMenu/OptionsMenuItem.js.map +0 -1
  181. package/dist/js/components/OptionsMenu/OptionsMenuItemGroup.d.ts.map +0 -1
  182. package/dist/js/components/OptionsMenu/OptionsMenuItemGroup.js.map +0 -1
  183. package/dist/js/components/OptionsMenu/OptionsMenuSeparator.d.ts.map +0 -1
  184. package/dist/js/components/OptionsMenu/OptionsMenuSeparator.js.map +0 -1
  185. package/dist/js/components/OptionsMenu/OptionsMenuToggle.d.ts.map +0 -1
  186. package/dist/js/components/OptionsMenu/OptionsMenuToggle.js.map +0 -1
  187. package/dist/js/components/OptionsMenu/OptionsMenuToggleWithText.d.ts.map +0 -1
  188. package/dist/js/components/OptionsMenu/OptionsMenuToggleWithText.js.map +0 -1
  189. package/dist/js/components/OptionsMenu/index.d.ts.map +0 -1
  190. package/dist/js/components/OptionsMenu/index.js.map +0 -1
  191. /package/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.d.ts +0 -0
  192. /package/{components → deprecated/components}/OptionsMenu/OptionsMenuItemGroup.d.ts +0 -0
  193. /package/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.d.ts +0 -0
  194. /package/{components → deprecated/components}/OptionsMenu/OptionsMenuToggleWithText.d.ts +0 -0
  195. /package/{components → deprecated/components}/OptionsMenu/index.d.ts +0 -0
  196. /package/{components → deprecated/components}/OptionsMenu/index.js +0 -0
  197. /package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.d.ts +0 -0
  198. /package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuItemGroup.d.ts +0 -0
  199. /package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.d.ts +0 -0
  200. /package/dist/esm/{components → deprecated/components}/OptionsMenu/OptionsMenuToggleWithText.d.ts +0 -0
  201. /package/dist/esm/{components → deprecated/components}/OptionsMenu/index.d.ts +0 -0
  202. /package/dist/esm/{components → deprecated/components}/OptionsMenu/index.js +0 -0
  203. /package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuItem.d.ts +0 -0
  204. /package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuItemGroup.d.ts +0 -0
  205. /package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuToggle.d.ts +0 -0
  206. /package/dist/js/{components → deprecated/components}/OptionsMenu/OptionsMenuToggleWithText.d.ts +0 -0
  207. /package/dist/js/{components → deprecated/components}/OptionsMenu/index.d.ts +0 -0
  208. /package/dist/js/{components → deprecated/components}/OptionsMenu/index.js +0 -0
  209. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/OptionsMenuItemGroup.test.tsx +0 -0
  210. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/OptionsMenuSeparator.test.tsx +0 -0
  211. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/OptionsMenuToggle.test.tsx +0 -0
  212. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/OptionsMenuToggleWithText.test.tsx +0 -0
  213. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuItem.test.tsx.snap +0 -0
  214. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuItemGroup.test.tsx.snap +0 -0
  215. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuSeparator.test.tsx.snap +0 -0
  216. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuToggle.test.tsx.snap +0 -0
  217. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuToggleWithText.test.tsx.snap +0 -0
  218. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/OptionsMenu.test.tsx +0 -0
  219. /package/src/{components → deprecated/components}/OptionsMenu/__tests__/__snapshots__/OptionsMenu.test.tsx.snap +0 -0
  220. /package/src/{components → deprecated/components}/OptionsMenu/index.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.0.0-alpha.37",
3
+ "version": "5.0.0-alpha.39",
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",
@@ -70,5 +70,5 @@
70
70
  "react": "^17 || ^18",
71
71
  "react-dom": "^17 || ^18"
72
72
  },
73
- "gitHead": "67f588da8b7b8858729deeb6472e63b88da4d3cc"
73
+ "gitHead": "628b8d06a7a1438eb2f6908ff559fe90ac9e973a"
74
74
  }
@@ -20,11 +20,6 @@ export enum DataListWrapModifier {
20
20
  breakWord = 'breakWord'
21
21
  }
22
22
 
23
- export interface SelectableRowObject {
24
- /** Callback that executes when the screen reader accessible element receives a change event */
25
- onChange: (event: React.FormEvent<HTMLInputElement>, id: string) => void;
26
- }
27
-
28
23
  export interface DataListProps extends Omit<React.HTMLProps<HTMLUListElement>, 'ref'> {
29
24
  /** Content rendered inside the DataList list */
30
25
  children?: React.ReactNode;
@@ -43,14 +38,14 @@ export interface DataListProps extends Omit<React.HTMLProps<HTMLUListElement>, '
43
38
  /** Determines which wrapping modifier to apply to the DataList */
44
39
  wrapModifier?: DataListWrapModifier | 'nowrap' | 'truncate' | 'breakWord';
45
40
  /** Object that causes the data list to render hidden inputs which improve selectable item a11y */
46
- selectableRow?: SelectableRowObject;
41
+ onSelectableRowChange?: (event: React.FormEvent<HTMLInputElement>, id: string) => void;
47
42
  }
48
43
 
49
44
  interface DataListContextProps {
50
45
  isSelectable: boolean;
51
46
  selectedDataListItemId: string;
52
47
  updateSelectedDataListItem: (event: React.MouseEvent | React.KeyboardEvent, id: string) => void;
53
- selectableRow?: SelectableRowObject;
48
+ onSelectableRowChange?: (event: React.FormEvent<HTMLInputElement>, id: string) => void;
54
49
  }
55
50
 
56
51
  export const DataListContext = React.createContext<Partial<DataListContextProps>>({
@@ -84,7 +79,7 @@ export class DataList extends React.Component<DataListProps> {
84
79
  isCompact,
85
80
  wrapModifier,
86
81
  gridBreakpoint,
87
- selectableRow,
82
+ onSelectableRowChange,
88
83
  ...props
89
84
  } = this.props;
90
85
  const isSelectable = onSelectDataListItem !== undefined;
@@ -99,7 +94,7 @@ export class DataList extends React.Component<DataListProps> {
99
94
  isSelectable,
100
95
  selectedDataListItemId,
101
96
  updateSelectedDataListItem,
102
- selectableRow
97
+ onSelectableRowChange
103
98
  }}
104
99
  >
105
100
  <ul
@@ -45,7 +45,7 @@ export class DataListItem extends React.Component<DataListItemProps> {
45
45
  } = this.props;
46
46
  return (
47
47
  <DataListContext.Consumer>
48
- {({ isSelectable, selectedDataListItemId, updateSelectedDataListItem, selectableRow }) => {
48
+ {({ isSelectable, selectedDataListItemId, updateSelectedDataListItem, onSelectableRowChange }) => {
49
49
  const selectDataListItem = (event: React.MouseEvent) => {
50
50
  let target: any = event.target;
51
51
  while (event.currentTarget !== target) {
@@ -91,12 +91,12 @@ export class DataListItem extends React.Component<DataListItemProps> {
91
91
  {...(isSelectable && isSelected && { 'aria-selected': true })}
92
92
  {...props}
93
93
  >
94
- {selectableRow && (
94
+ {onSelectableRowChange && (
95
95
  <input
96
96
  className="pf-screen-reader"
97
97
  type="radio"
98
98
  checked={isSelected}
99
- onChange={(event) => selectableRow.onChange(event, id)}
99
+ onChange={(event) => onSelectableRowChange(event, id)}
100
100
  tabIndex={-1}
101
101
  {...selectableInputAriaProps}
102
102
  />
@@ -50,7 +50,7 @@ describe('DataList', () => {
50
50
 
51
51
  test('List renders with a hidden input to improve a11y when selectableRow is passed', () => {
52
52
  render(
53
- <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
53
+ <DataList aria-label="this is a simple list" onSelectableRowChange={ () => {} }>
54
54
  <DataListItem>
55
55
  <DataListItemRow aria-labelledby="test-id">
56
56
  <p id="test-id">Test</p>
@@ -85,7 +85,7 @@ describe('DataList', () => {
85
85
  const user = userEvent.setup();
86
86
 
87
87
  render(
88
- <DataList aria-label="this is a simple list" selectableRow={{ onChange: mock }} selectedDataListItemId=''>
88
+ <DataList aria-label="this is a simple list" onSelectableRowChange={ mock } selectedDataListItemId=''>
89
89
  <DataListItem id='item-test-id'>
90
90
  <DataListItemRow aria-labelledby="test-id">
91
91
  <p id="test-id">Test</p>
@@ -104,7 +104,7 @@ describe('DataList', () => {
104
104
  const mock = jest.fn();
105
105
 
106
106
  render(
107
- <DataList aria-label="this is a simple list" selectableRow={{ onChange: mock }} selectedDataListItemId=''>
107
+ <DataList aria-label="this is a simple list" onSelectableRowChange={ mock } selectedDataListItemId=''>
108
108
  <DataListItem id='item-test-id'>
109
109
  <DataListItemRow aria-labelledby="test-id">
110
110
  <p id="test-id">Test</p>
@@ -118,7 +118,7 @@ describe('DataList', () => {
118
118
 
119
119
  test('Item applies selectableInputAriaLabel to the hidden input', () => {
120
120
  render(
121
- <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
121
+ <DataList aria-label="this is a simple list" onSelectableRowChange={ () => {} }>
122
122
  <DataListItem selectableInputAriaLabel="Data list item label test">
123
123
  <DataListItemRow aria-labelledby="test-id">
124
124
  <p id="test-id">Test</p>
@@ -134,7 +134,7 @@ describe('DataList', () => {
134
134
 
135
135
  test('Item defaults to labelling its input using its aria-labelledby prop', () => {
136
136
  render(
137
- <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
137
+ <DataList aria-label="this is a simple list" onSelectableRowChange={ () => {} }>
138
138
  <DataListItem aria-labelledby="test-id">
139
139
  <p id="test-id">Test cell content</p>
140
140
  </DataListItem>
@@ -148,7 +148,7 @@ describe('DataList', () => {
148
148
 
149
149
  test('Item prioritizes selectableInputAriaLabel over aria-labelledby prop', () => {
150
150
  render(
151
- <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
151
+ <DataList aria-label="this is a simple list" onSelectableRowChange={ () => {} }>
152
152
  <DataListItem aria-labelledby="test-id" selectableInputAriaLabel="Data list item label test">
153
153
  <p id="test-id">Test cell content</p>
154
154
  </DataListItem>
@@ -5,7 +5,6 @@ cssPrefix: pf-c-data-list
5
5
  propComponents:
6
6
  [
7
7
  'DataList',
8
- 'SelectableRowObject',
9
8
  'DataListAction',
10
9
  'DataListCell',
11
10
  'DataListCheck',
@@ -47,7 +47,7 @@ export const DataListSelectableRows: React.FunctionComponent = () => {
47
47
  aria-label="selectable data list example"
48
48
  selectedDataListItemId={selectedDataListItemId}
49
49
  onSelectDataListItem={onSelectDataListItem}
50
- selectableRow={{ onChange: handleInputChange }}
50
+ onSelectableRowChange={handleInputChange}
51
51
  >
52
52
  <DataListItem aria-labelledby="selectable-action-item1" id="item1">
53
53
  <DataListItemRow>
@@ -1,24 +1,24 @@
1
1
  import * as React from 'react';
2
- import { DropdownItem, DropdownItemProps } from '../Dropdown';
2
+ import { DropdownItem, DropdownItemProps } from '../../next/components/Dropdown';
3
3
  import { OverflowMenuContext } from './OverflowMenuContext';
4
4
 
5
- export interface OverflowMenuDropdownItemProps extends DropdownItemProps {
5
+ export interface OverflowMenuDropdownItemProps extends Omit<DropdownItemProps, 'ref'> {
6
6
  /** Indicates when a dropdown item shows and hides the corresponding list item */
7
7
  isShared?: boolean;
8
- /** Indicates the index of the list item */
9
- index?: number;
8
+ /** Identifies the component in the dropdown onSelect callback */
9
+ itemId?: string | number;
10
10
  }
11
11
 
12
12
  export const OverflowMenuDropdownItem: React.FunctionComponent<OverflowMenuDropdownItemProps> = ({
13
13
  children,
14
14
  isShared = false,
15
- index,
15
+ itemId,
16
16
  ...additionalProps
17
17
  }: OverflowMenuDropdownItemProps) => (
18
18
  <OverflowMenuContext.Consumer>
19
19
  {value =>
20
20
  (!isShared || value.isBelowBreakpoint) && (
21
- <DropdownItem component="button" index={index} {...additionalProps}>
21
+ <DropdownItem component="button" itemId={itemId} {...additionalProps}>
22
22
  {children}
23
23
  </DropdownItem>
24
24
  )
@@ -3,14 +3,11 @@ import React from 'react';
3
3
  import { render } from '@testing-library/react';
4
4
 
5
5
  import { OverflowMenuDropdownItem } from '../../OverflowMenuDropdownItem';
6
- import { DropdownArrowContext } from '../../../Dropdown';
7
6
 
8
7
  describe('OverflowMenuDropdownItem', () => {
9
8
  it('should match snapshot', () => {
10
9
  const { asFragment } = render(
11
- <DropdownArrowContext.Provider value={{ sendRef: jest.fn(), keyHandler: undefined }}>
12
- <OverflowMenuDropdownItem children={'any'} isShared={false} />
13
- </DropdownArrowContext.Provider>
10
+ <OverflowMenuDropdownItem itemId="id" children={'any'} isShared={false} />
14
11
  );
15
12
  expect(asFragment()).toMatchSnapshot();
16
13
  });
@@ -3,19 +3,27 @@
3
3
  exports[`OverflowMenuDropdownItem should match snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <li
6
+ class="pf-c-menu__list-item"
7
+ data-ouia-component-id="OUIA-Generated-DropdownItem-1"
8
+ data-ouia-component-type="PF4/DropdownItem"
9
+ data-ouia-safe="true"
6
10
  role="none"
7
11
  >
8
12
  <button
9
- aria-disabled="false"
10
- class=""
11
- data-ouia-component-id="OUIA-Generated-DropdownItem-1"
12
- data-ouia-component-type="PF4/DropdownItem"
13
- data-ouia-safe="true"
13
+ class="pf-c-menu__item"
14
14
  role="menuitem"
15
15
  tabindex="-1"
16
16
  type="button"
17
17
  >
18
- any
18
+ <span
19
+ class="pf-c-menu__item-main"
20
+ >
21
+ <span
22
+ class="pf-c-menu__item-text"
23
+ >
24
+ any
25
+ </span>
26
+ </span>
19
27
  </button>
20
28
  </li>
21
29
  </DocumentFragment>
@@ -9,13 +9,15 @@ propComponents:
9
9
  'OverflowMenuControl',
10
10
  'OverflowMenuDropdownItem',
11
11
  'OverflowMenuGroup',
12
- 'OverflowMenuItem',
12
+ 'OverflowMenuItem'
13
13
  ]
14
14
  ---
15
15
 
16
16
  import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
17
17
  import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
18
18
  import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
19
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
20
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
19
21
 
20
22
  ## Examples
21
23
 
@@ -29,9 +31,11 @@ import {
29
31
  OverflowMenuContent,
30
32
  OverflowMenuGroup,
31
33
  OverflowMenuItem,
32
- OverflowMenuDropdownItem
34
+ OverflowMenuDropdownItem,
35
+ MenuToggle
33
36
  } from '@patternfly/react-core';
34
- import { Dropdown, KebabToggle } from '@patternfly/react-core';
37
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
38
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
35
39
 
36
40
  class SimpleOverflowMenu extends React.Component {
37
41
  constructor(props) {
@@ -39,12 +43,12 @@ class SimpleOverflowMenu extends React.Component {
39
43
  this.state = {
40
44
  isOpen: false
41
45
  };
42
- this.onToggle = (_event, isOpen) => {
46
+ this.onToggle = () => {
43
47
  this.setState({
44
- isOpen
48
+ isOpen: !this.state.isOpen
45
49
  });
46
50
  };
47
- this.onSelect = event => {
51
+ this.onSelect = (event) => {
48
52
  this.setState({
49
53
  isOpen: !this.state.isOpen
50
54
  });
@@ -54,19 +58,19 @@ class SimpleOverflowMenu extends React.Component {
54
58
  render() {
55
59
  const { isOpen } = this.state;
56
60
  const dropdownItems = [
57
- <OverflowMenuDropdownItem key="item1" isShared>
61
+ <OverflowMenuDropdownItem itemId={0} key="item1" isShared>
58
62
  Item 1
59
63
  </OverflowMenuDropdownItem>,
60
- <OverflowMenuDropdownItem key="item2" isShared>
64
+ <OverflowMenuDropdownItem itemId={1} key="item2" isShared>
61
65
  Item 2
62
66
  </OverflowMenuDropdownItem>,
63
- <OverflowMenuDropdownItem key="item3" isShared>
67
+ <OverflowMenuDropdownItem itemId={2} key="item3" isShared>
64
68
  Item 3
65
69
  </OverflowMenuDropdownItem>,
66
- <OverflowMenuDropdownItem key="item4" isShared>
70
+ <OverflowMenuDropdownItem itemId={3} key="item4" isShared>
67
71
  Item 4
68
72
  </OverflowMenuDropdownItem>,
69
- <OverflowMenuDropdownItem key="item5" isShared>
73
+ <OverflowMenuDropdownItem itemId={5} key="item5" isShared>
70
74
  Item 5
71
75
  </OverflowMenuDropdownItem>
72
76
  ];
@@ -82,15 +86,28 @@ class SimpleOverflowMenu extends React.Component {
82
86
  </OverflowMenuGroup>
83
87
  </OverflowMenuContent>
84
88
  <OverflowMenuControl>
85
- <Dropdown
89
+ <DropdownNext
86
90
  onSelect={this.onSelect}
87
- toggle={<KebabToggle onToggle={this.onToggle} />}
91
+ toggle={(toggleRef) => (
92
+ <MenuToggle
93
+ ref={toggleRef}
94
+ aria-label="Simple example overflow menu"
95
+ variant="plain"
96
+ onClick={this.onToggle}
97
+ isExpanded={isOpen}
98
+ >
99
+ <EllipsisVIcon />
100
+ </MenuToggle>
101
+ )}
88
102
  isOpen={isOpen}
89
- isPlain
90
- dropdownItems={dropdownItems}
91
- isFlipEnabled
92
- menuAppendTo="parent"
93
- />
103
+ onOpenChange={(isOpen) =>
104
+ this.setState({
105
+ isOpen
106
+ })
107
+ }
108
+ >
109
+ <DropdownList>{dropdownItems}</DropdownList>
110
+ </DropdownNext>
94
111
  </OverflowMenuControl>
95
112
  </OverflowMenu>
96
113
  );
@@ -108,9 +125,13 @@ import {
108
125
  OverflowMenuContent,
109
126
  OverflowMenuGroup,
110
127
  OverflowMenuItem,
111
- OverflowMenuDropdownItem
128
+ OverflowMenuDropdownItem,
129
+ MenuToggle,
130
+ Button,
131
+ ButtonVariant
112
132
  } from '@patternfly/react-core';
113
- import { Dropdown, KebabToggle, Button, ButtonVariant } from '@patternfly/react-core';
133
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
134
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
114
135
  import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
115
136
  import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
116
137
  import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
@@ -121,12 +142,12 @@ class OverflowMenuGroupTypes extends React.Component {
121
142
  this.state = {
122
143
  isOpen: false
123
144
  };
124
- this.onToggle = (_event, isOpen) => {
145
+ this.onToggle = () => {
125
146
  this.setState({
126
- isOpen
147
+ isOpen: !this.state.isOpen
127
148
  });
128
149
  };
129
- this.onSelect = event => {
150
+ this.onSelect = (event) => {
130
151
  this.setState({
131
152
  isOpen: !this.state.isOpen
132
153
  });
@@ -136,31 +157,31 @@ class OverflowMenuGroupTypes extends React.Component {
136
157
  render() {
137
158
  const { isOpen } = this.state;
138
159
  const dropdownItems = [
139
- <OverflowMenuDropdownItem key="item1" isShared>
160
+ <OverflowMenuDropdownItem itemId={0} key="item1" isShared>
140
161
  Item 1
141
162
  </OverflowMenuDropdownItem>,
142
- <OverflowMenuDropdownItem key="item2" isShared>
163
+ <OverflowMenuDropdownItem itemId={1} key="item2" isShared>
143
164
  Item 2
144
165
  </OverflowMenuDropdownItem>,
145
- <OverflowMenuDropdownItem key="item3" isShared>
166
+ <OverflowMenuDropdownItem itemId={2} key="item3" isShared>
146
167
  Item 3
147
168
  </OverflowMenuDropdownItem>,
148
- <OverflowMenuDropdownItem key="primary" isShared>
169
+ <OverflowMenuDropdownItem itemId={3} key="primary" isShared>
149
170
  Primary
150
171
  </OverflowMenuDropdownItem>,
151
- <OverflowMenuDropdownItem key="secondary" isShared>
172
+ <OverflowMenuDropdownItem itemId={4} key="secondary" isShared>
152
173
  Secondary
153
174
  </OverflowMenuDropdownItem>,
154
- <OverflowMenuDropdownItem key="tertiary" isShared>
175
+ <OverflowMenuDropdownItem itemId={5} key="tertiary" isShared>
155
176
  Tertiary
156
177
  </OverflowMenuDropdownItem>,
157
- <OverflowMenuDropdownItem key="action1" isShared>
178
+ <OverflowMenuDropdownItem itemId={6} key="action1" isShared>
158
179
  Action 1
159
180
  </OverflowMenuDropdownItem>,
160
- <OverflowMenuDropdownItem key="action2" isShared>
181
+ <OverflowMenuDropdownItem itemId={7} key="action2" isShared>
161
182
  Action 2
162
183
  </OverflowMenuDropdownItem>,
163
- <OverflowMenuDropdownItem key="action3" isShared>
184
+ <OverflowMenuDropdownItem itemId={8} key="action3" isShared>
164
185
  Action 3
165
186
  </OverflowMenuDropdownItem>
166
187
  ];
@@ -202,15 +223,28 @@ class OverflowMenuGroupTypes extends React.Component {
202
223
  </OverflowMenuGroup>
203
224
  </OverflowMenuContent>
204
225
  <OverflowMenuControl>
205
- <Dropdown
226
+ <DropdownNext
206
227
  onSelect={this.onSelect}
207
- toggle={<KebabToggle onToggle={this.onToggle} />}
228
+ toggle={(toggleRef) => (
229
+ <MenuToggle
230
+ ref={toggleRef}
231
+ aria-label="Group example overflow menu"
232
+ variant="plain"
233
+ onClick={this.onToggle}
234
+ isExpanded={isOpen}
235
+ >
236
+ <EllipsisVIcon />
237
+ </MenuToggle>
238
+ )}
208
239
  isOpen={isOpen}
209
- isPlain
210
- dropdownItems={dropdownItems}
211
- isFlipEnabled
212
- menuAppendTo="parent"
213
- />
240
+ onOpenChange={(isOpen) =>
241
+ this.setState({
242
+ isOpen
243
+ })
244
+ }
245
+ >
246
+ <DropdownList>{dropdownItems}</DropdownList>
247
+ </DropdownNext>
214
248
  </OverflowMenuControl>
215
249
  </OverflowMenu>
216
250
  );
@@ -228,9 +262,13 @@ import {
228
262
  OverflowMenuContent,
229
263
  OverflowMenuGroup,
230
264
  OverflowMenuItem,
231
- OverflowMenuDropdownItem
265
+ OverflowMenuDropdownItem,
266
+ MenuToggle,
267
+ Button,
268
+ ButtonVariant
232
269
  } from '@patternfly/react-core';
233
- import { Dropdown, KebabToggle, Button, ButtonVariant } from '@patternfly/react-core';
270
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
271
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
234
272
  import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
235
273
  import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
236
274
  import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
@@ -241,12 +279,12 @@ class OverflowMenuAdditionalOptions extends React.Component {
241
279
  this.state = {
242
280
  isOpen: false
243
281
  };
244
- this.onToggle = (_event, isOpen) => {
282
+ this.onToggle = () => {
245
283
  this.setState({
246
- isOpen
284
+ isOpen: !this.state.isOpen
247
285
  });
248
286
  };
249
- this.onSelect = event => {
287
+ this.onSelect = (event) => {
250
288
  this.setState({
251
289
  isOpen: !this.state.isOpen
252
290
  });
@@ -256,25 +294,27 @@ class OverflowMenuAdditionalOptions extends React.Component {
256
294
  render() {
257
295
  const { isOpen } = this.state;
258
296
  const dropdownItems = [
259
- <OverflowMenuDropdownItem key="1" isShared>
297
+ <OverflowMenuDropdownItem itemId={0} key="1" isShared>
260
298
  Primary
261
299
  </OverflowMenuDropdownItem>,
262
- <OverflowMenuDropdownItem key="2" isShared>
300
+ <OverflowMenuDropdownItem itemId={1} key="2" isShared>
263
301
  Secondary
264
302
  </OverflowMenuDropdownItem>,
265
- <OverflowMenuDropdownItem key="3" isShared>
303
+ <OverflowMenuDropdownItem itemId={2} key="3" isShared>
266
304
  Tertiary
267
305
  </OverflowMenuDropdownItem>,
268
- <OverflowMenuDropdownItem key="4" isShared>
306
+ <OverflowMenuDropdownItem itemId={3} key="4" isShared>
269
307
  Action 4
270
308
  </OverflowMenuDropdownItem>,
271
- <OverflowMenuDropdownItem key="5" isShared>
309
+ <OverflowMenuDropdownItem itemId={4} key="5" isShared>
272
310
  Action 5
273
311
  </OverflowMenuDropdownItem>,
274
- <OverflowMenuDropdownItem key="6" isShared>
312
+ <OverflowMenuDropdownItem itemId={5} key="6" isShared>
275
313
  Action 6
276
314
  </OverflowMenuDropdownItem>,
277
- <OverflowMenuDropdownItem key="7">Action 7</OverflowMenuDropdownItem>
315
+ <OverflowMenuDropdownItem itemId={6} key="7">
316
+ Action 7
317
+ </OverflowMenuDropdownItem>
278
318
  ];
279
319
  return (
280
320
  <OverflowMenu breakpoint="lg">
@@ -309,15 +349,28 @@ class OverflowMenuAdditionalOptions extends React.Component {
309
349
  </OverflowMenuGroup>
310
350
  </OverflowMenuContent>
311
351
  <OverflowMenuControl hasAdditionalOptions>
312
- <Dropdown
352
+ <DropdownNext
313
353
  onSelect={this.onSelect}
314
- toggle={<KebabToggle onToggle={this.onToggle} />}
354
+ toggle={(toggleRef) => (
355
+ <MenuToggle
356
+ ref={toggleRef}
357
+ aria-label="Multiple group example overflow menu"
358
+ variant="plain"
359
+ onClick={this.onToggle}
360
+ isExpanded={isOpen}
361
+ >
362
+ <EllipsisVIcon />
363
+ </MenuToggle>
364
+ )}
315
365
  isOpen={isOpen}
316
- isPlain
317
- dropdownItems={dropdownItems}
318
- isFlipEnabled
319
- menuAppendTo="parent"
320
- />
366
+ onOpenChange={(isOpen) =>
367
+ this.setState({
368
+ isOpen
369
+ })
370
+ }
371
+ >
372
+ <DropdownList>{dropdownItems}</DropdownList>
373
+ </DropdownNext>
321
374
  </OverflowMenuControl>
322
375
  </OverflowMenu>
323
376
  );
@@ -335,9 +388,13 @@ import {
335
388
  OverflowMenuContent,
336
389
  OverflowMenuGroup,
337
390
  OverflowMenuItem,
338
- OverflowMenuDropdownItem
391
+ OverflowMenuDropdownItem,
392
+ MenuToggle,
393
+ Button,
394
+ ButtonVariant
339
395
  } from '@patternfly/react-core';
340
- import { Dropdown, KebabToggle, Button, ButtonVariant } from '@patternfly/react-core';
396
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
397
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
341
398
 
342
399
  class OverflowMenuPersist extends React.Component {
343
400
  constructor(props) {
@@ -345,12 +402,12 @@ class OverflowMenuPersist extends React.Component {
345
402
  this.state = {
346
403
  isOpen: false
347
404
  };
348
- this.onToggle = (_event, isOpen) => {
405
+ this.onToggle = () => {
349
406
  this.setState({
350
- isOpen
407
+ isOpen: !this.state.isOpen
351
408
  });
352
409
  };
353
- this.onSelect = event => {
410
+ this.onSelect = (event, itemId) => {
354
411
  this.setState({
355
412
  isOpen: !this.state.isOpen
356
413
  });
@@ -360,13 +417,15 @@ class OverflowMenuPersist extends React.Component {
360
417
  render() {
361
418
  const { isOpen } = this.state;
362
419
  const dropdownItems = [
363
- <OverflowMenuDropdownItem key="secondary" isShared>
420
+ <OverflowMenuDropdownItem itemId={0} key="secondary" isShared>
364
421
  Secondary
365
422
  </OverflowMenuDropdownItem>,
366
- <OverflowMenuDropdownItem key="tertiary" isShared>
423
+ <OverflowMenuDropdownItem itemId={1} key="tertiary" isShared>
367
424
  Tertiary
368
425
  </OverflowMenuDropdownItem>,
369
- <OverflowMenuDropdownItem key="action">Action 4</OverflowMenuDropdownItem>
426
+ <OverflowMenuDropdownItem itemId={2} key="action">
427
+ Action 4
428
+ </OverflowMenuDropdownItem>
370
429
  ];
371
430
  return (
372
431
  <OverflowMenu breakpoint="lg">
@@ -384,15 +443,28 @@ class OverflowMenuPersist extends React.Component {
384
443
  </OverflowMenuGroup>
385
444
  </OverflowMenuContent>
386
445
  <OverflowMenuControl hasAdditionalOptions>
387
- <Dropdown
446
+ <DropdownNext
388
447
  onSelect={this.onSelect}
389
- toggle={<KebabToggle onToggle={this.onToggle} />}
448
+ toggle={(toggleRef) => (
449
+ <MenuToggle
450
+ ref={toggleRef}
451
+ aria-label="Persistent example overflow menu"
452
+ variant="plain"
453
+ onClick={this.onToggle}
454
+ isExpanded={isOpen}
455
+ >
456
+ <EllipsisVIcon />
457
+ </MenuToggle>
458
+ )}
390
459
  isOpen={isOpen}
391
- isPlain
392
- dropdownItems={dropdownItems}
393
- isFlipEnabled
394
- menuAppendTo="parent"
395
- />
460
+ onOpenChange={(isOpen) =>
461
+ this.setState({
462
+ isOpen
463
+ })
464
+ }
465
+ >
466
+ <DropdownList>{dropdownItems}</DropdownList>
467
+ </DropdownNext>
396
468
  </OverflowMenuControl>
397
469
  </OverflowMenu>
398
470
  );
@@ -407,4 +479,5 @@ By passing in the `breakpointReference` property, the overflow menu's breakpoint
407
479
  You can change the container width in this example by adjusting the slider. As the container width changes, the overflow menu will change between a horizontal menu and a vertical dropdown despite the viewport width not changing.
408
480
 
409
481
  ```ts file="./OverflowMenuBreakpointOnContainer.tsx"
482
+
410
483
  ```