@patternfly/react-core 5.0.0-alpha.62 → 5.0.0-alpha.63

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 (227) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  3. package/dist/esm/components/CalendarMonth/CalendarMonth.js +9 -11
  4. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  5. package/dist/esm/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  6. package/dist/esm/components/Menu/MenuItem.d.ts +1 -1
  7. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  8. package/dist/esm/components/MenuToggle/MenuToggle.js +3 -1
  9. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  10. package/dist/esm/components/Select/Select.d.ts +26 -192
  11. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  12. package/dist/esm/components/Select/Select.js +51 -935
  13. package/dist/esm/components/Select/Select.js.map +1 -1
  14. package/dist/esm/components/Select/SelectGroup.d.ts +7 -8
  15. package/dist/esm/components/Select/SelectGroup.d.ts.map +1 -1
  16. package/dist/esm/components/Select/SelectGroup.js +4 -7
  17. package/dist/esm/components/Select/SelectGroup.js.map +1 -1
  18. package/dist/{js/next → esm}/components/Select/SelectList.d.ts +1 -1
  19. package/dist/esm/components/Select/SelectList.d.ts.map +1 -0
  20. package/dist/esm/{next/components → components}/Select/SelectList.js +1 -1
  21. package/dist/esm/components/Select/SelectList.js.map +1 -0
  22. package/dist/esm/components/Select/SelectOption.d.ts +13 -66
  23. package/dist/esm/components/Select/SelectOption.d.ts.map +1 -1
  24. package/dist/esm/components/Select/SelectOption.js +6 -192
  25. package/dist/esm/components/Select/SelectOption.js.map +1 -1
  26. package/dist/esm/components/Select/index.d.ts +1 -1
  27. package/dist/esm/components/Select/index.d.ts.map +1 -1
  28. package/dist/esm/components/Select/index.js +1 -1
  29. package/dist/esm/components/Select/index.js.map +1 -1
  30. package/dist/esm/deprecated/components/Select/Select.d.ts +199 -0
  31. package/dist/esm/deprecated/components/Select/Select.d.ts.map +1 -0
  32. package/dist/esm/deprecated/components/Select/Select.js +940 -0
  33. package/dist/esm/deprecated/components/Select/Select.js.map +1 -0
  34. package/dist/esm/deprecated/components/Select/SelectGroup.d.ts +13 -0
  35. package/dist/esm/deprecated/components/Select/SelectGroup.d.ts.map +1 -0
  36. package/dist/esm/deprecated/components/Select/SelectGroup.js +13 -0
  37. package/dist/esm/deprecated/components/Select/SelectGroup.js.map +1 -0
  38. package/dist/esm/deprecated/components/Select/SelectMenu.d.ts.map +1 -0
  39. package/dist/esm/{components → deprecated/components}/Select/SelectMenu.js +1 -1
  40. package/dist/esm/deprecated/components/Select/SelectMenu.js.map +1 -0
  41. package/dist/esm/deprecated/components/Select/SelectOption.d.ts +73 -0
  42. package/dist/esm/deprecated/components/Select/SelectOption.d.ts.map +1 -0
  43. package/dist/esm/deprecated/components/Select/SelectOption.js +196 -0
  44. package/dist/esm/deprecated/components/Select/SelectOption.js.map +1 -0
  45. package/dist/esm/deprecated/components/Select/SelectToggle.d.ts.map +1 -0
  46. package/dist/esm/{components → deprecated/components}/Select/SelectToggle.js +2 -2
  47. package/dist/esm/deprecated/components/Select/SelectToggle.js.map +1 -0
  48. package/dist/esm/{next → deprecated}/components/Select/index.d.ts +1 -1
  49. package/dist/esm/deprecated/components/Select/index.d.ts.map +1 -0
  50. package/dist/esm/{next → deprecated}/components/Select/index.js +1 -1
  51. package/dist/esm/deprecated/components/Select/index.js.map +1 -0
  52. package/dist/esm/deprecated/components/Select/selectConstants.d.ts.map +1 -0
  53. package/dist/esm/deprecated/components/Select/selectConstants.js.map +1 -0
  54. package/dist/esm/deprecated/components/index.d.ts +1 -0
  55. package/dist/esm/deprecated/components/index.d.ts.map +1 -1
  56. package/dist/esm/deprecated/components/index.js +1 -0
  57. package/dist/esm/deprecated/components/index.js.map +1 -1
  58. package/dist/esm/next/components/index.d.ts +0 -1
  59. package/dist/esm/next/components/index.d.ts.map +1 -1
  60. package/dist/esm/next/components/index.js +0 -1
  61. package/dist/esm/next/components/index.js.map +1 -1
  62. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  63. package/dist/js/components/CalendarMonth/CalendarMonth.js +8 -10
  64. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  65. package/dist/js/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  66. package/dist/js/components/Menu/MenuItem.d.ts +1 -1
  67. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  68. package/dist/js/components/MenuToggle/MenuToggle.js +3 -1
  69. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  70. package/dist/js/components/Select/Select.d.ts +26 -192
  71. package/dist/js/components/Select/Select.d.ts.map +1 -1
  72. package/dist/js/components/Select/Select.js +51 -936
  73. package/dist/js/components/Select/Select.js.map +1 -1
  74. package/dist/js/components/Select/SelectGroup.d.ts +7 -8
  75. package/dist/js/components/Select/SelectGroup.d.ts.map +1 -1
  76. package/dist/js/components/Select/SelectGroup.js +4 -7
  77. package/dist/js/components/Select/SelectGroup.js.map +1 -1
  78. package/dist/{esm/next → js}/components/Select/SelectList.d.ts +1 -1
  79. package/dist/js/components/Select/SelectList.d.ts.map +1 -0
  80. package/dist/js/{next/components → components}/Select/SelectList.js +1 -1
  81. package/dist/js/components/Select/SelectList.js.map +1 -0
  82. package/dist/js/components/Select/SelectOption.d.ts +13 -66
  83. package/dist/js/components/Select/SelectOption.d.ts.map +1 -1
  84. package/dist/js/components/Select/SelectOption.js +7 -193
  85. package/dist/js/components/Select/SelectOption.js.map +1 -1
  86. package/dist/js/components/Select/index.d.ts +1 -1
  87. package/dist/js/components/Select/index.d.ts.map +1 -1
  88. package/dist/js/components/Select/index.js +1 -1
  89. package/dist/js/components/Select/index.js.map +1 -1
  90. package/dist/js/deprecated/components/Select/Select.d.ts +199 -0
  91. package/dist/js/deprecated/components/Select/Select.d.ts.map +1 -0
  92. package/dist/js/deprecated/components/Select/Select.js +944 -0
  93. package/dist/js/deprecated/components/Select/Select.js.map +1 -0
  94. package/dist/js/deprecated/components/Select/SelectGroup.d.ts +13 -0
  95. package/dist/js/deprecated/components/Select/SelectGroup.d.ts.map +1 -0
  96. package/dist/js/deprecated/components/Select/SelectGroup.js +17 -0
  97. package/dist/js/deprecated/components/Select/SelectGroup.js.map +1 -0
  98. package/dist/js/deprecated/components/Select/SelectMenu.d.ts.map +1 -0
  99. package/dist/js/{components → deprecated/components}/Select/SelectMenu.js +1 -1
  100. package/dist/js/deprecated/components/Select/SelectMenu.js.map +1 -0
  101. package/dist/js/deprecated/components/Select/SelectOption.d.ts +73 -0
  102. package/dist/js/deprecated/components/Select/SelectOption.d.ts.map +1 -0
  103. package/dist/js/deprecated/components/Select/SelectOption.js +200 -0
  104. package/dist/js/deprecated/components/Select/SelectOption.js.map +1 -0
  105. package/dist/js/deprecated/components/Select/SelectToggle.d.ts.map +1 -0
  106. package/dist/js/{components → deprecated/components}/Select/SelectToggle.js +2 -2
  107. package/dist/js/deprecated/components/Select/SelectToggle.js.map +1 -0
  108. package/dist/js/{next → deprecated}/components/Select/index.d.ts +1 -1
  109. package/dist/js/deprecated/components/Select/index.d.ts.map +1 -0
  110. package/dist/js/{next → deprecated}/components/Select/index.js +1 -1
  111. package/dist/js/deprecated/components/Select/index.js.map +1 -0
  112. package/dist/js/deprecated/components/Select/selectConstants.d.ts.map +1 -0
  113. package/dist/js/deprecated/components/Select/selectConstants.js.map +1 -0
  114. package/dist/js/deprecated/components/index.d.ts +1 -0
  115. package/dist/js/deprecated/components/index.d.ts.map +1 -1
  116. package/dist/js/deprecated/components/index.js +1 -0
  117. package/dist/js/deprecated/components/index.js.map +1 -1
  118. package/dist/js/next/components/index.d.ts +0 -1
  119. package/dist/js/next/components/index.d.ts.map +1 -1
  120. package/dist/js/next/components/index.js +0 -1
  121. package/dist/js/next/components/index.js.map +1 -1
  122. package/dist/umd/react-core.min.js +3 -3
  123. package/package.json +2 -2
  124. package/src/components/CalendarMonth/CalendarMonth.tsx +25 -15
  125. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +22 -31
  126. package/src/components/LoginPage/examples/LoginPageLanguageSelect.tsx +28 -19
  127. package/src/components/MenuToggle/MenuToggle.tsx +2 -1
  128. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +18 -10
  129. package/src/components/Select/Select.tsx +113 -1475
  130. package/src/components/Select/SelectGroup.tsx +13 -25
  131. package/src/{next/components → components}/Select/SelectList.tsx +1 -1
  132. package/src/components/Select/SelectOption.tsx +22 -452
  133. package/src/components/Select/examples/Select.md +11 -2897
  134. package/src/{next/components → components}/Select/examples/SelectBasic.tsx +1 -2
  135. package/src/{next/components → components}/Select/examples/SelectCheckbox.tsx +1 -2
  136. package/src/{next/components → components}/Select/examples/SelectGrouped.tsx +1 -2
  137. package/src/{next/components → components}/Select/examples/SelectMultiTypeahead.tsx +4 -1
  138. package/src/{next/components → components}/Select/examples/SelectTypeahead.tsx +4 -1
  139. package/src/components/Select/index.ts +1 -1
  140. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +3 -21
  141. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +12 -124
  142. package/src/components/Toolbar/examples/Toolbar.md +0 -1
  143. package/src/components/Toolbar/examples/ToolbarComponentManagedToggleGroups.tsx +59 -63
  144. package/src/components/Toolbar/examples/ToolbarConsumerManagedToggleGroups.tsx +58 -62
  145. package/src/components/Toolbar/examples/ToolbarCustomChipGroupContent.tsx +107 -23
  146. package/src/components/Toolbar/examples/ToolbarGroups.tsx +96 -59
  147. package/src/components/Toolbar/examples/ToolbarStacked.tsx +56 -39
  148. package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +115 -28
  149. package/src/components/Tooltip/examples/TooltipOptions.tsx +53 -23
  150. package/src/demos/Card/Card.md +39 -23
  151. package/src/demos/CardDemos.md +99 -46
  152. package/src/demos/Toolbar.md +51 -21
  153. package/src/demos/examples/Tabs/TabsAndTable.tsx +5 -22
  154. package/src/deprecated/components/Select/Select.tsx +1495 -0
  155. package/src/deprecated/components/Select/SelectGroup.tsx +36 -0
  156. package/src/{components → deprecated/components}/Select/SelectMenu.tsx +2 -2
  157. package/src/deprecated/components/Select/SelectOption.tsx +461 -0
  158. package/src/{components → deprecated/components}/Select/SelectToggle.tsx +3 -3
  159. package/src/{components → deprecated/components}/Select/__tests__/Select.test.tsx +1 -1
  160. package/src/deprecated/components/Select/examples/Select.md +2937 -0
  161. package/src/{next → deprecated}/components/Select/index.ts +1 -1
  162. package/src/deprecated/components/index.ts +1 -0
  163. package/src/next/components/index.ts +0 -1
  164. package/dist/esm/components/Select/SelectMenu.d.ts.map +0 -1
  165. package/dist/esm/components/Select/SelectMenu.js.map +0 -1
  166. package/dist/esm/components/Select/SelectToggle.d.ts.map +0 -1
  167. package/dist/esm/components/Select/SelectToggle.js.map +0 -1
  168. package/dist/esm/components/Select/selectConstants.d.ts.map +0 -1
  169. package/dist/esm/components/Select/selectConstants.js.map +0 -1
  170. package/dist/esm/next/components/Select/Select.d.ts +0 -33
  171. package/dist/esm/next/components/Select/Select.d.ts.map +0 -1
  172. package/dist/esm/next/components/Select/Select.js +0 -56
  173. package/dist/esm/next/components/Select/Select.js.map +0 -1
  174. package/dist/esm/next/components/Select/SelectGroup.d.ts +0 -12
  175. package/dist/esm/next/components/Select/SelectGroup.d.ts.map +0 -1
  176. package/dist/esm/next/components/Select/SelectGroup.js +0 -10
  177. package/dist/esm/next/components/Select/SelectGroup.js.map +0 -1
  178. package/dist/esm/next/components/Select/SelectList.d.ts.map +0 -1
  179. package/dist/esm/next/components/Select/SelectList.js.map +0 -1
  180. package/dist/esm/next/components/Select/SelectOption.d.ts +0 -20
  181. package/dist/esm/next/components/Select/SelectOption.d.ts.map +0 -1
  182. package/dist/esm/next/components/Select/SelectOption.js +0 -10
  183. package/dist/esm/next/components/Select/SelectOption.js.map +0 -1
  184. package/dist/esm/next/components/Select/index.d.ts.map +0 -1
  185. package/dist/esm/next/components/Select/index.js.map +0 -1
  186. package/dist/js/components/Select/SelectMenu.d.ts.map +0 -1
  187. package/dist/js/components/Select/SelectMenu.js.map +0 -1
  188. package/dist/js/components/Select/SelectToggle.d.ts.map +0 -1
  189. package/dist/js/components/Select/SelectToggle.js.map +0 -1
  190. package/dist/js/components/Select/selectConstants.d.ts.map +0 -1
  191. package/dist/js/components/Select/selectConstants.js.map +0 -1
  192. package/dist/js/next/components/Select/Select.d.ts +0 -33
  193. package/dist/js/next/components/Select/Select.d.ts.map +0 -1
  194. package/dist/js/next/components/Select/Select.js +0 -59
  195. package/dist/js/next/components/Select/Select.js.map +0 -1
  196. package/dist/js/next/components/Select/SelectGroup.d.ts +0 -12
  197. package/dist/js/next/components/Select/SelectGroup.d.ts.map +0 -1
  198. package/dist/js/next/components/Select/SelectGroup.js +0 -14
  199. package/dist/js/next/components/Select/SelectGroup.js.map +0 -1
  200. package/dist/js/next/components/Select/SelectList.d.ts.map +0 -1
  201. package/dist/js/next/components/Select/SelectList.js.map +0 -1
  202. package/dist/js/next/components/Select/SelectOption.d.ts +0 -20
  203. package/dist/js/next/components/Select/SelectOption.d.ts.map +0 -1
  204. package/dist/js/next/components/Select/SelectOption.js +0 -14
  205. package/dist/js/next/components/Select/SelectOption.js.map +0 -1
  206. package/dist/js/next/components/Select/index.d.ts.map +0 -1
  207. package/dist/js/next/components/Select/index.js.map +0 -1
  208. package/src/next/components/Select/Select.tsx +0 -133
  209. package/src/next/components/Select/SelectGroup.tsx +0 -24
  210. package/src/next/components/Select/SelectOption.tsx +0 -31
  211. package/src/next/components/Select/examples/Select.md +0 -38
  212. /package/dist/esm/{components → deprecated/components}/Select/SelectMenu.d.ts +0 -0
  213. /package/dist/esm/{components → deprecated/components}/Select/SelectToggle.d.ts +0 -0
  214. /package/dist/esm/{components → deprecated/components}/Select/selectConstants.d.ts +0 -0
  215. /package/dist/esm/{components → deprecated/components}/Select/selectConstants.js +0 -0
  216. /package/dist/js/{components → deprecated/components}/Select/SelectMenu.d.ts +0 -0
  217. /package/dist/js/{components → deprecated/components}/Select/SelectToggle.d.ts +0 -0
  218. /package/dist/js/{components → deprecated/components}/Select/selectConstants.d.ts +0 -0
  219. /package/dist/js/{components → deprecated/components}/Select/selectConstants.js +0 -0
  220. /package/src/{components → deprecated/components}/Select/__tests__/SelectGroup.test.tsx +0 -0
  221. /package/src/{components → deprecated/components}/Select/__tests__/SelectOption.test.tsx +0 -0
  222. /package/src/{components → deprecated/components}/Select/__tests__/SelectToggle.test.tsx +0 -0
  223. /package/src/{components → deprecated/components}/Select/__tests__/__snapshots__/Select.test.tsx.snap +0 -0
  224. /package/src/{components → deprecated/components}/Select/__tests__/__snapshots__/SelectGroup.test.tsx.snap +0 -0
  225. /package/src/{components → deprecated/components}/Select/__tests__/__snapshots__/SelectOption.test.tsx.snap +0 -0
  226. /package/src/{components → deprecated/components}/Select/__tests__/__snapshots__/SelectToggle.test.tsx.snap +0 -0
  227. /package/src/{components → deprecated/components}/Select/selectConstants.tsx +0 -0
@@ -3,15 +3,15 @@ import {
3
3
  Button,
4
4
  ButtonVariant,
5
5
  Select,
6
+ SelectList,
6
7
  SelectOption,
7
- SelectOptionObject,
8
- SelectVariant,
9
8
  Pagination,
10
9
  Dropdown,
11
10
  DropdownItem,
12
11
  DropdownList,
13
12
  Divider,
14
13
  MenuToggle,
14
+ MenuToggleElement,
15
15
  OverflowMenu,
16
16
  OverflowMenuContent,
17
17
  OverflowMenuControl,
@@ -34,24 +34,14 @@ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-ico
34
34
  export const ToolbarStacked: React.FunctionComponent = () => {
35
35
  // toggle group - three option menus with labels, two icon buttons, Kebab menu - right aligned
36
36
  // pagination - right aligned
37
- const resourceOptions = [
38
- { value: 'All resources', disabled: false },
39
- { value: 'Deployment', disabled: false },
40
- { value: 'Pod', disabled: false }
41
- ];
42
-
43
- const statusOptions = [
44
- { value: 'Running', disabled: false },
45
- { value: 'New', disabled: false },
46
- { value: 'Pending', disabled: false },
47
- { value: 'Cancelled', disabled: false }
48
- ];
37
+ const resourceOptions = ['All resources', 'Deployment', 'Pod'];
38
+ const statusOptions = ['New', 'Pending', 'Running', 'Cancelled'];
49
39
 
50
40
  const [kebabIsOpen, setKebabIsOpen] = React.useState(false);
51
41
  const [resourceIsExpanded, setResourceIsExpanded] = React.useState(false);
52
- const [resourceSelected, setResourceSelected] = React.useState<string | SelectOptionObject>();
42
+ const [resourceSelected, setResourceSelected] = React.useState('');
53
43
  const [statusIsExpanded, setStatusIsExpanded] = React.useState(false);
54
- const [statusSelected, setStatusSelected] = React.useState<string | SelectOptionObject>();
44
+ const [statusSelected, setStatusSelected] = React.useState('');
55
45
  const [splitButtonDropdownIsOpen, setSplitButtonDropdownIsOpen] = React.useState(false);
56
46
  const [page, setPage] = React.useState(1);
57
47
  const [perPage, setPerPage] = React.useState(20);
@@ -60,25 +50,24 @@ export const ToolbarStacked: React.FunctionComponent = () => {
60
50
  setKebabIsOpen(!kebabIsOpen);
61
51
  };
62
52
 
63
- const onResourceToggle = (_event: any, isExpanded: boolean) => {
64
- setResourceIsExpanded(isExpanded);
53
+ const onResourceToggle = () => {
54
+ setResourceIsExpanded(!resourceIsExpanded);
65
55
  };
66
56
 
67
- const onResourceSelect = (_event: React.ChangeEvent | React.MouseEvent, selection: string | SelectOptionObject) => {
57
+ const onResourceSelect = (_event: React.ChangeEvent | React.MouseEvent, selection: string) => {
68
58
  setResourceSelected(selection);
69
59
  setResourceIsExpanded(false);
70
60
  };
71
61
 
72
- const onResourceSelectDropdown = (event: React.MouseEvent<Element, MouseEvent> | undefined) => {
73
- setResourceSelected(event?.target);
62
+ const onResourceSelectDropdown = () => {
74
63
  setResourceIsExpanded(false);
75
64
  };
76
65
 
77
- const onStatusToggle = (_event: any, isExpanded: boolean) => {
78
- setStatusIsExpanded(isExpanded);
66
+ const onStatusToggle = () => {
67
+ setStatusIsExpanded(!statusIsExpanded);
79
68
  };
80
69
 
81
- const onStatusSelect = (_event: React.ChangeEvent | React.MouseEvent, selection: string | SelectOptionObject) => {
70
+ const onStatusSelect = (_event: React.ChangeEvent | React.MouseEvent, selection: string) => {
82
71
  setStatusSelected(selection);
83
72
  setStatusIsExpanded(false);
84
73
  };
@@ -142,17 +131,31 @@ export const ToolbarStacked: React.FunctionComponent = () => {
142
131
  </ToolbarItem>
143
132
  <ToolbarItem>
144
133
  <Select
145
- variant={SelectVariant.single}
146
- aria-label="Select Input"
147
- onToggle={onResourceToggle}
134
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
135
+ <MenuToggle
136
+ ref={toggleRef}
137
+ onClick={() => onResourceToggle()}
138
+ isExpanded={resourceIsExpanded}
139
+ style={
140
+ {
141
+ width: '150px'
142
+ } as React.CSSProperties
143
+ }
144
+ >
145
+ {resourceSelected || 'Resource'}
146
+ </MenuToggle>
147
+ )}
148
148
  onSelect={onResourceSelect}
149
- selections={resourceSelected}
149
+ selected={resourceSelected}
150
+ onOpenChange={isOpen => setResourceIsExpanded(isOpen)}
150
151
  isOpen={resourceIsExpanded}
151
152
  aria-labelledby="stacked-example-resource-select"
152
153
  >
153
- {resourceOptions.map((option, index) => (
154
- <SelectOption isDisabled={option.disabled} key={index} value={option.value} />
155
- ))}
154
+ <SelectList>
155
+ {resourceOptions.map((option, index) => (
156
+ <SelectOption key={index} itemId={option}>{option}</SelectOption>
157
+ ))}
158
+ </SelectList>
156
159
  </Select>
157
160
  </ToolbarItem>
158
161
  <ToolbarItem variant="label" id="stacked-example-status-select">
@@ -160,17 +163,30 @@ export const ToolbarStacked: React.FunctionComponent = () => {
160
163
  </ToolbarItem>
161
164
  <ToolbarItem>
162
165
  <Select
163
- variant={SelectVariant.single}
164
- aria-label="Select Input"
165
- onToggle={onStatusToggle}
166
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
167
+ <MenuToggle
168
+ ref={toggleRef}
169
+ onClick={() => onStatusToggle()}
170
+ isExpanded={statusIsExpanded}
171
+ style={
172
+ {
173
+ width: '150px'
174
+ } as React.CSSProperties
175
+ }
176
+ >
177
+ {statusSelected || 'Status'}
178
+ </MenuToggle>
179
+ )}
166
180
  onSelect={onStatusSelect}
167
- selections={statusSelected}
181
+ onOpenChange={isOpen => setStatusIsExpanded(isOpen)}
182
+ selected={statusSelected}
168
183
  isOpen={statusIsExpanded}
169
- aria-labelledby="stacked-example-status-select"
170
184
  >
171
- {statusOptions.map((option, index) => (
172
- <SelectOption isDisabled={option.disabled} key={index} value={option.value} />
173
- ))}
185
+ <SelectList>
186
+ {statusOptions.map((option, index) => (
187
+ <SelectOption key={index} itemId={option}>{option}</SelectOption>
188
+ ))}
189
+ </SelectList>
174
190
  </Select>
175
191
  </ToolbarItem>
176
192
  </React.Fragment>
@@ -198,6 +214,7 @@ export const ToolbarStacked: React.FunctionComponent = () => {
198
214
  <OverflowMenuControl hasAdditionalOptions>
199
215
  <Dropdown
200
216
  onSelect={onResourceSelectDropdown}
217
+ onOpenChange={(isOpen) => setKebabIsOpen(isOpen)}
201
218
  toggle={(toggleRef) => (
202
219
  <MenuToggle
203
220
  ref={toggleRef}
@@ -6,9 +6,15 @@ import {
6
6
  ToolbarFilter,
7
7
  ToolbarToggleGroup,
8
8
  ToolbarGroup,
9
- SelectOptionObject
9
+ Badge,
10
+ Button,
11
+ MenuToggle,
12
+ MenuToggleElement,
13
+ SearchInput,
14
+ Select,
15
+ SelectList,
16
+ SelectOption
10
17
  } from '@patternfly/react-core';
11
- import { Button, Select, SelectOption, SelectVariant, SearchInput } from '@patternfly/react-core';
12
18
  import {
13
19
  Dropdown as DropdownDeprecated,
14
20
  DropdownItem as DropdownItemDeprecated,
@@ -38,7 +44,7 @@ export const ToolbarWithFilters: React.FunctionComponent = () => {
38
44
  const onSelect = (
39
45
  type: string,
40
46
  event: React.MouseEvent | React.ChangeEvent,
41
- selection: string | SelectOptionObject
47
+ selection: string
42
48
  ) => {
43
49
  const checked = (event.target as HTMLInputElement).checked;
44
50
  setFilters((prev) => {
@@ -50,11 +56,11 @@ export const ToolbarWithFilters: React.FunctionComponent = () => {
50
56
  });
51
57
  };
52
58
 
53
- const onStatusSelect = (event: React.MouseEvent | React.ChangeEvent, selection: string | SelectOptionObject) => {
59
+ const onStatusSelect = (event: React.MouseEvent | React.ChangeEvent, selection: string) => {
54
60
  onSelect('status', event, selection);
55
61
  };
56
62
 
57
- const onRiskSelect = (event: React.MouseEvent | React.ChangeEvent, selection: string | SelectOptionObject) => {
63
+ const onRiskSelect = (event: React.MouseEvent | React.ChangeEvent, selection: string) => {
58
64
  onSelect('risk', event, selection);
59
65
  };
60
66
 
@@ -76,30 +82,83 @@ export const ToolbarWithFilters: React.FunctionComponent = () => {
76
82
  }
77
83
  };
78
84
 
79
- const onStatusToggle = (_event: any, isExpanded: boolean) => {
80
- setStatusIsExpanded(isExpanded);
85
+ const onStatusToggle = () => {
86
+ setStatusIsExpanded(!statusIsExpanded);
81
87
  };
82
88
 
83
- const onRiskToggle = (_event: any, isExpanded: boolean) => {
84
- setRiskIsExpanded(isExpanded);
89
+ const onRiskToggle = () => {
90
+ setRiskIsExpanded(!statusIsExpanded);
85
91
  };
86
92
 
87
93
  const onKebabToggle = (_event: any, isOpen: boolean) => {
88
94
  setKebabIsOpen(isOpen);
89
95
  };
90
96
 
91
- const statusMenuItems = [
92
- <SelectOption key="statusNew" value="New" />,
93
- <SelectOption key="statusPending" value="Pending" />,
94
- <SelectOption key="statusRunning" value="Running" />,
95
- <SelectOption key="statusCancelled" value="Cancelled" />
96
- ];
97
+ const statusMenuItems = (
98
+ <SelectList>
99
+ <SelectOption
100
+ hasCheckbox
101
+ key="statusNew"
102
+ itemId="New"
103
+ isSelected={filters.status.includes("New")}
104
+ >
105
+ New
106
+ </SelectOption>
107
+ <SelectOption
108
+ hasCheckbox
109
+ key="statusPending"
110
+ itemId="Pending"
111
+ isSelected={filters.status.includes("Pending")}
112
+ >
113
+ Pending
114
+ </SelectOption>
115
+ <SelectOption
116
+ hasCheckbox
117
+ key="statusRunning"
118
+ itemId="Running"
119
+ isSelected={filters.status.includes("Running")}
120
+ >
121
+ Running
122
+ </SelectOption>
123
+ <SelectOption
124
+ hasCheckbox
125
+ key="statusCancelled"
126
+ itemId="Cancelled"
127
+ isSelected={filters.status.includes("Cancelled")}
128
+ >
129
+ Cancelled
130
+ </SelectOption>
131
+ </SelectList>
132
+ );
97
133
 
98
- const riskMenuItems = [
99
- <SelectOption key="riskLow" value="Low" />,
100
- <SelectOption key="riskMedium" value="Medium" />,
101
- <SelectOption key="riskHigh" value="High" />
102
- ];
134
+ const riskMenuItems = (
135
+ <SelectList>
136
+ <SelectOption
137
+ hasCheckbox
138
+ key="riskLow"
139
+ itemId="Low"
140
+ isSelected={filters.risk.includes("Low")}
141
+ >
142
+ Low
143
+ </SelectOption>
144
+ <SelectOption
145
+ hasCheckbox
146
+ key="riskMedium"
147
+ itemId="Medium"
148
+ isSelected={filters.risk.includes("Medium")}
149
+ >
150
+ Medium
151
+ </SelectOption>
152
+ <SelectOption
153
+ hasCheckbox
154
+ key="riskHigh"
155
+ itemId="High"
156
+ isSelected={filters.risk.includes("High")}
157
+ >
158
+ High
159
+ </SelectOption>
160
+ </SelectList>
161
+ );
103
162
 
104
163
  const toggleGroupItems = (
105
164
  <React.Fragment>
@@ -121,13 +180,27 @@ export const ToolbarWithFilters: React.FunctionComponent = () => {
121
180
  categoryName="Status"
122
181
  >
123
182
  <Select
124
- variant={SelectVariant.checkbox}
125
183
  aria-label="Status"
126
- onToggle={onStatusToggle}
184
+ role="menu"
185
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
186
+ <MenuToggle
187
+ ref={toggleRef}
188
+ onClick={onStatusToggle}
189
+ isExpanded={statusIsExpanded}
190
+ style={
191
+ {
192
+ width: '140px'
193
+ } as React.CSSProperties
194
+ }
195
+ >
196
+ Status
197
+ {filters.status.length > 0 && <Badge isRead>{filters.status.length}</Badge>}
198
+ </MenuToggle>
199
+ )}
127
200
  onSelect={onStatusSelect}
128
- selections={filters.status}
201
+ selected={filters.status}
129
202
  isOpen={statusIsExpanded}
130
- placeholderText="Status"
203
+ onOpenChange={isOpen => setStatusIsExpanded(isOpen)}
131
204
  >
132
205
  {statusMenuItems}
133
206
  </Select>
@@ -138,13 +211,27 @@ export const ToolbarWithFilters: React.FunctionComponent = () => {
138
211
  categoryName="Risk"
139
212
  >
140
213
  <Select
141
- variant={SelectVariant.checkbox}
142
214
  aria-label="Risk"
143
- onToggle={onRiskToggle}
215
+ role="menu"
216
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
217
+ <MenuToggle
218
+ ref={toggleRef}
219
+ onClick={onRiskToggle}
220
+ isExpanded={riskIsExpanded}
221
+ style={
222
+ {
223
+ width: '140px'
224
+ } as React.CSSProperties
225
+ }
226
+ >
227
+ Risk
228
+ {filters.risk.length > 0 && <Badge isRead>{filters.risk.length}</Badge>}
229
+ </MenuToggle>
230
+ )}
144
231
  onSelect={onRiskSelect}
145
- selections={filters.risk}
232
+ selected={filters.risk}
146
233
  isOpen={riskIsExpanded}
147
- placeholderText="Risk"
234
+ onOpenChange={isOpen => setRiskIsExpanded(isOpen)}
148
235
  >
149
236
  {riskMenuItems}
150
237
  </Select>
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Button, Tooltip, Checkbox, Select, SelectOption, TextInput, TooltipPosition } from '@patternfly/react-core';
2
+ import { Button, Tooltip, Checkbox, Select, SelectList, SelectOption, MenuToggle, MenuToggleElement, TextInput, TooltipPosition } from '@patternfly/react-core';
3
3
 
4
4
  export const TooltipOptions: React.FunctionComponent = () => {
5
5
  const [trigger, setTrigger] = React.useState(['mouseenter', 'focus']);
@@ -96,28 +96,43 @@ export const TooltipOptions: React.FunctionComponent = () => {
96
96
  <div style={{ border: '1px solid' }}>
97
97
  position (will flip if enableFlip is true). The 'auto' position requires enableFlip to be set to true.
98
98
  <Select
99
- onToggle={() => setPositionSelectOpen(!positionSelectOpen)}
99
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
100
+ <MenuToggle
101
+ ref={toggleRef}
102
+ onClick={()=>setPositionSelectOpen(!positionSelectOpen)}
103
+ isExpanded={positionSelectOpen}
104
+ style={
105
+ {
106
+ width: '200px'
107
+ } as React.CSSProperties
108
+ }
109
+ >
110
+ {position}
111
+ </MenuToggle>
112
+ )}
113
+ onOpenChange={setPositionSelectOpen}
100
114
  onSelect={(_event, selection) => {
101
115
  setPosition(selection.toString() as TooltipPosition);
102
116
  setPositionSelectOpen(false);
103
117
  }}
104
118
  isOpen={positionSelectOpen}
105
- selections={position}
106
- menuAppendTo={() => document.body}
119
+ selected={position}
107
120
  >
108
- <SelectOption value={TooltipPosition.auto} />
109
- <SelectOption value={TooltipPosition.top} />
110
- <SelectOption value={TooltipPosition.bottom} />
111
- <SelectOption value={TooltipPosition.left} />
112
- <SelectOption value={TooltipPosition.right} />
113
- <SelectOption value={TooltipPosition.topStart} />
114
- <SelectOption value={TooltipPosition.topEnd} />
115
- <SelectOption value={TooltipPosition.bottomStart} />
116
- <SelectOption value={TooltipPosition.bottomEnd} />
117
- <SelectOption value={TooltipPosition.leftStart} />
118
- <SelectOption value={TooltipPosition.leftEnd} />
119
- <SelectOption value={TooltipPosition.rightStart} />
120
- <SelectOption value={TooltipPosition.rightEnd} />
121
+ <SelectList>
122
+ <SelectOption itemId={TooltipPosition.auto}>{TooltipPosition.auto}</SelectOption>
123
+ <SelectOption itemId={TooltipPosition.top}>{TooltipPosition.top}</SelectOption>
124
+ <SelectOption itemId={TooltipPosition.bottom}>{TooltipPosition.bottom}</SelectOption>
125
+ <SelectOption itemId={TooltipPosition.left}>{TooltipPosition.left}</SelectOption>
126
+ <SelectOption itemId={TooltipPosition.right}>{TooltipPosition.right}</SelectOption>
127
+ <SelectOption itemId={TooltipPosition.topStart}>{TooltipPosition.topStart}</SelectOption>
128
+ <SelectOption itemId={TooltipPosition.topEnd}>{TooltipPosition.topEnd}</SelectOption>
129
+ <SelectOption itemId={TooltipPosition.bottomStart}>{TooltipPosition.bottomStart}</SelectOption>
130
+ <SelectOption itemId={TooltipPosition.bottomEnd}>{TooltipPosition.bottomEnd}</SelectOption>
131
+ <SelectOption itemId={TooltipPosition.leftStart}>{TooltipPosition.leftStart}</SelectOption>
132
+ <SelectOption itemId={TooltipPosition.leftEnd}>{TooltipPosition.leftEnd}</SelectOption>
133
+ <SelectOption itemId={TooltipPosition.rightStart}>{TooltipPosition.rightStart}</SelectOption>
134
+ <SelectOption itemId={TooltipPosition.rightEnd}>{TooltipPosition.rightEnd}</SelectOption>
135
+ </SelectList>
121
136
  </Select>
122
137
  </div>
123
138
  <div style={{ border: '1px solid' }}>
@@ -157,17 +172,32 @@ export const TooltipOptions: React.FunctionComponent = () => {
157
172
  starting position. The second option ensures that there are 3 escape positions for every possible starting
158
173
  position (default). This setting is ignored if position prop is set to 'auto'.
159
174
  <Select
160
- onToggle={() => setFlipSelectOpen(!flipSelectOpen)}
175
+ onOpenChange={setFlipSelectOpen}
161
176
  onSelect={(_event, selection) => {
162
- setFlipBehavior(selection.toString());
177
+ setFlipBehavior(selection as string);
163
178
  setFlipSelectOpen(false);
164
179
  }}
165
180
  isOpen={flipSelectOpen}
166
- selections={flipBehavior}
167
- menuAppendTo={() => document.body}
181
+ selected={flipBehavior}
182
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
183
+ <MenuToggle
184
+ ref={toggleRef}
185
+ onClick={()=>setFlipSelectOpen(!flipSelectOpen)}
186
+ isExpanded={flipSelectOpen}
187
+ style={
188
+ {
189
+ width: '450px'
190
+ } as React.CSSProperties
191
+ }
192
+ >
193
+ {flipBehavior}
194
+ </MenuToggle>
195
+ )}
168
196
  >
169
- <SelectOption value="flip" />
170
- <SelectOption value="clockwise">['top', 'right', 'bottom', 'left', 'top', 'right', 'bottom']</SelectOption>
197
+ <SelectList>
198
+ <SelectOption itemId="flip">flip</SelectOption>
199
+ <SelectOption itemId="clockwise">['top', 'right', 'bottom', 'left', 'top', 'right', 'bottom']</SelectOption>
200
+ </SelectList>
171
201
  </Select>
172
202
  </div>
173
203
  </div>
@@ -39,6 +39,7 @@ This demonstrates how you can assemble a full page view that contains a grid of
39
39
  ```js isFullscreen
40
40
  import React from 'react';
41
41
  import {
42
+ Badge,
42
43
  Bullseye,
43
44
  Button,
44
45
  Card,
@@ -63,16 +64,16 @@ import {
63
64
  PageSection,
64
65
  PageSectionVariants,
65
66
  Pagination,
66
- Select,
67
- SelectOption,
68
- SelectVariant,
69
67
  TextContent,
70
68
  Text,
71
69
  Title,
72
70
  Toolbar,
73
71
  ToolbarItem,
74
72
  ToolbarFilter,
75
- ToolbarContent
73
+ ToolbarContent,
74
+ Select,
75
+ SelectList,
76
+ SelectOption
76
77
  } from '@patternfly/react-core';
77
78
  import {
78
79
  Dropdown as DropdownDeprecated,
@@ -131,9 +132,9 @@ class CardViewBasic extends React.Component {
131
132
  return selected === total;
132
133
  };
133
134
 
134
- this.onToolbarDropdownToggle = (_event, isLowerToolbarDropdownOpen) => {
135
+ this.onToolbarDropdownToggle = () => {
135
136
  this.setState((prevState) => ({
136
- isLowerToolbarDropdownOpen
137
+ isLowerToolbarDropdownOpen: !prevState.isLowerToolbarDropdownOpen
137
138
  }));
138
139
  };
139
140
 
@@ -462,29 +463,44 @@ class CardViewBasic extends React.Component {
462
463
  buildFilterDropdown() {
463
464
  const { isLowerToolbarDropdownOpen, filters } = this.state;
464
465
 
465
- const filterDropdownItems = [
466
- <SelectOption key="patternfly" value="PatternFly" />,
467
- <SelectOption key="activemq" value="ActiveMQ" />,
468
- <SelectOption key="apachespark" value="Apache Spark" />,
469
- <SelectOption key="avro" value="Avro" />,
470
- <SelectOption key="azureservices" value="Azure Services" />,
471
- <SelectOption key="crypto" value="Crypto" />,
472
- <SelectOption key="dropbox" value="DropBox" />,
473
- <SelectOption key="jbossdatagrid" value="JBoss Data Grid" />,
474
- <SelectOption key="rest" value="REST" />,
475
- <SelectOption key="swagger" value="SWAGGER" />
476
- ];
466
+ const filterDropdownItems = (
467
+ <SelectList>
468
+ <SelectOption hasCheckbox key="patternfly" itemId="PatternFly" isSelected={filters.products.includes("PatternFly")}>PatternFly</SelectOption>
469
+ <SelectOption hasCheckbox key="activemq" itemId="ActiveMQ" isSelected={filters.products.includes("ActiveMQ")}>ActiveMQ</SelectOption>
470
+ <SelectOption hasCheckbox key="apachespark" itemId="Apache Spark" isSelected={filters.products.includes("Apache Spark")}>Apache Spark</SelectOption>
471
+ <SelectOption hasCheckbox key="avro" itemId="Avro" isSelected={filters.products.includes("Avro")}>Avro</SelectOption>
472
+ <SelectOption hasCheckbox key="azureservices" itemId="Azure Services" isSelected={filters.products.includes("Azure Services")}>Azure Services</SelectOption>
473
+ <SelectOption hasCheckbox key="crypto" itemId="Crypto" isSelected={filters.products.includes("Crypto")}>Crypto</SelectOption>
474
+ <SelectOption hasCheckbox key="dropbox" itemId="DropBox" isSelected={filters.products.includes("DropBox")}>DropBox</SelectOption>
475
+ <SelectOption hasCheckbox key="jbossdatagrid" itemId="JBoss Data Grid" isSelected={filters.products.includes("JBoss Data Grid")}>JBoss Data Grid</SelectOption>
476
+ <SelectOption hasCheckbox key="rest" itemId="REST" isSelected={filters.products.includes("REST")}>REST</SelectOption>
477
+ <SelectOption hasCheckbox key="swagger" itemId="SWAGGER" isSelected={filters.products.includes("SWAGGER")}>SWAGGER</SelectOption>
478
+ </SelectList>
479
+ );
477
480
 
478
481
  return (
479
482
  <ToolbarFilter categoryName="Products" chips={filters.products} deleteChip={this.onDelete}>
480
483
  <Select
481
- variant={SelectVariant.checkbox}
482
484
  aria-label="Products"
483
- onToggle={this.onToolbarDropdownToggle}
485
+ role="menu"
486
+ toggle={(toggleRef) => (
487
+ <MenuToggle
488
+ ref={toggleRef}
489
+ onClick={this.onToolbarDropdownToggle}
490
+ isExpanded={isLowerToolbarDropdownOpen}
491
+ >
492
+ Filter by creator name
493
+ {filters.products.length > 0 && <Badge isRead>{filters.products.length}</Badge>}
494
+ </MenuToggle>
495
+ )}
484
496
  onSelect={this.onNameSelect}
485
- selections={filters.products}
486
- isExpanded={isLowerToolbarDropdownOpen}
487
- placeholderText="Creator"
497
+ onOpenChange={(isOpen) => {
498
+ this.setState(() => ({
499
+ isLowerToolbarDropdownOpen: isOpen
500
+ }));
501
+ }}
502
+ selected={filters.products}
503
+ isOpen={isLowerToolbarDropdownOpen}
488
504
  >
489
505
  {filterDropdownItems}
490
506
  </Select>