@patternfly/react-core 5.0.0-prerelease.24 → 5.0.0-prerelease.25

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 (169) hide show
  1. package/CHANGELOG.md +11 -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/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/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/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/util/package.json +1 -1
  110. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  111. package/dist/dynamic/layouts/Flex/package.json +1 -1
  112. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  113. package/dist/dynamic/layouts/Grid/package.json +1 -1
  114. package/dist/dynamic/layouts/Level/package.json +1 -1
  115. package/dist/dynamic/layouts/Split/package.json +1 -1
  116. package/dist/dynamic/layouts/Stack/package.json +1 -1
  117. package/dist/dynamic/next/components/package.json +1 -1
  118. package/dist/esm/components/Dropdown/DropdownItem.d.ts +5 -0
  119. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
  120. package/dist/esm/components/Dropdown/DropdownItem.js +2 -2
  121. package/dist/esm/components/Dropdown/DropdownItem.js.map +1 -1
  122. package/dist/esm/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  123. package/dist/esm/components/FileUpload/FileUploadField.js +1 -1
  124. package/dist/esm/components/FileUpload/FileUploadField.js.map +1 -1
  125. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  126. package/dist/esm/components/Menu/Menu.js +3 -1
  127. package/dist/esm/components/Menu/Menu.js.map +1 -1
  128. package/dist/esm/components/Menu/MenuItem.d.ts +6 -1
  129. package/dist/esm/components/Menu/MenuItem.d.ts.map +1 -1
  130. package/dist/esm/components/Menu/MenuItem.js +26 -12
  131. package/dist/esm/components/Menu/MenuItem.js.map +1 -1
  132. package/dist/esm/components/Toolbar/ToolbarChipGroupContent.d.ts.map +1 -1
  133. package/dist/esm/components/Toolbar/ToolbarChipGroupContent.js +1 -1
  134. package/dist/esm/components/Toolbar/ToolbarChipGroupContent.js.map +1 -1
  135. package/dist/js/components/Dropdown/DropdownItem.d.ts +5 -0
  136. package/dist/js/components/Dropdown/DropdownItem.d.ts.map +1 -1
  137. package/dist/js/components/Dropdown/DropdownItem.js +2 -2
  138. package/dist/js/components/Dropdown/DropdownItem.js.map +1 -1
  139. package/dist/js/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
  140. package/dist/js/components/FileUpload/FileUploadField.js +1 -1
  141. package/dist/js/components/FileUpload/FileUploadField.js.map +1 -1
  142. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  143. package/dist/js/components/Menu/Menu.js +3 -1
  144. package/dist/js/components/Menu/Menu.js.map +1 -1
  145. package/dist/js/components/Menu/MenuItem.d.ts +6 -1
  146. package/dist/js/components/Menu/MenuItem.d.ts.map +1 -1
  147. package/dist/js/components/Menu/MenuItem.js +26 -12
  148. package/dist/js/components/Menu/MenuItem.js.map +1 -1
  149. package/dist/js/components/Toolbar/ToolbarChipGroupContent.d.ts.map +1 -1
  150. package/dist/js/components/Toolbar/ToolbarChipGroupContent.js +1 -1
  151. package/dist/js/components/Toolbar/ToolbarChipGroupContent.js.map +1 -1
  152. package/dist/umd/react-core.min.js +2 -2
  153. package/helpers/package.json +1 -1
  154. package/layouts/package.json +1 -1
  155. package/next/package.json +1 -1
  156. package/package.json +2 -2
  157. package/src/components/Dropdown/DropdownItem.tsx +9 -0
  158. package/src/components/Dropdown/examples/Dropdown.md +2 -1
  159. package/src/components/Dropdown/examples/DropdownBasic.tsx +5 -2
  160. package/src/components/FileUpload/FileUploadField.tsx +1 -1
  161. package/src/components/FileUpload/__tests__/__snapshots__/FileUpload.test.tsx.snap +1 -1
  162. package/src/components/FileUpload/__tests__/__snapshots__/FileUploadField.test.tsx.snap +1 -1
  163. package/src/components/Menu/Menu.tsx +2 -0
  164. package/src/components/Menu/MenuItem.tsx +61 -28
  165. package/src/components/Menu/examples/Menu.md +2 -1
  166. package/src/components/Menu/examples/MenuBasic.tsx +6 -0
  167. package/src/components/Toolbar/ToolbarChipGroupContent.tsx +1 -0
  168. package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarChipGroupContent.test.tsx.snap +1 -1
  169. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +2 -2
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.0.0-prerelease.23"}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.0.0-prerelease.24"}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.0.0-prerelease.23"}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.0.0-prerelease.24"}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.0.0-prerelease.23"}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.0.0-prerelease.24"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.0.0-prerelease.24",
3
+ "version": "5.0.0-prerelease.25",
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",
@@ -71,5 +71,5 @@
71
71
  "react": "^17 || ^18",
72
72
  "react-dom": "^17 || ^18"
73
73
  },
74
- "gitHead": "84f2a1ecd3211da181754c55d9257feab2ddd205"
74
+ "gitHead": "b70bc3268c58e7d5bcf798b177b46017d79428a1"
75
75
  }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import { MenuItemProps, MenuItem } from '../Menu';
4
+ import { TooltipProps } from '../Tooltip';
4
5
  import { useOUIAProps, OUIAProps } from '../../helpers';
5
6
 
6
7
  /**
@@ -17,6 +18,8 @@ export interface DropdownItemProps extends Omit<MenuItemProps, 'ref'>, OUIAProps
17
18
  description?: React.ReactNode;
18
19
  /** Render item as disabled option */
19
20
  isDisabled?: boolean;
21
+ /** Render item as aria-disabled option */
22
+ isAriaDisabled?: boolean;
20
23
  /** Identifies the component in the dropdown onSelect callback */
21
24
  value?: any;
22
25
  /** Callback for item click */
@@ -25,6 +28,8 @@ export interface DropdownItemProps extends Omit<MenuItemProps, 'ref'>, OUIAProps
25
28
  ouiaId?: number | string;
26
29
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
27
30
  ouiaSafe?: boolean;
31
+ /** Props for adding a tooltip to a menu item */
32
+ tooltipProps?: TooltipProps;
28
33
  }
29
34
 
30
35
  const DropdownItemBase: React.FunctionComponent<DropdownItemProps> = ({
@@ -32,11 +37,13 @@ const DropdownItemBase: React.FunctionComponent<DropdownItemProps> = ({
32
37
  className,
33
38
  description,
34
39
  isDisabled,
40
+ isAriaDisabled,
35
41
  value,
36
42
  onClick,
37
43
  ouiaId,
38
44
  ouiaSafe,
39
45
  innerRef,
46
+ tooltipProps,
40
47
  ...props
41
48
  }: DropdownItemProps) => {
42
49
  const ouiaProps = useOUIAProps(DropdownItem.displayName, ouiaId, ouiaSafe);
@@ -45,8 +52,10 @@ const DropdownItemBase: React.FunctionComponent<DropdownItemProps> = ({
45
52
  className={css(className)}
46
53
  description={description}
47
54
  isDisabled={isDisabled}
55
+ isAriaDisabled={isAriaDisabled}
48
56
  itemId={value}
49
57
  onClick={onClick}
58
+ tooltipProps={tooltipProps}
50
59
  ref={innerRef}
51
60
  {...ouiaProps}
52
61
  {...props}
@@ -11,7 +11,8 @@ propComponents:
11
11
  'DropdownList',
12
12
  'MenuToggle',
13
13
  'DropdownToggleProps',
14
- 'DropdownPopperProps'
14
+ 'DropdownPopperProps',
15
+ 'TooltipProps'
15
16
  ]
16
17
  ---
17
18
 
@@ -46,11 +46,14 @@ export const DropdownBasic: React.FunctionComponent = () => {
46
46
  <DropdownItem value={3} isDisabled key="disabled link" to="#default-link4">
47
47
  Disabled Link
48
48
  </DropdownItem>
49
+ <DropdownItem value={4} isAriaDisabled key="aria-disabled link" to="#default-link5" tooltipProps={{content: "aria-disabled link", position: "top"}}>
50
+ Aria-disabled Link
51
+ </DropdownItem>
49
52
  <Divider component="li" key="separator" />
50
- <DropdownItem value={4} key="separated action">
53
+ <DropdownItem value={5} key="separated action">
51
54
  Separated Action
52
55
  </DropdownItem>
53
- <DropdownItem value={5} key="separated link" to="#default-link6" onClick={(ev) => ev.preventDefault()}>
56
+ <DropdownItem value={6} key="separated link" to="#default-link6" onClick={(ev) => ev.preventDefault()}>
54
57
  Separated Link
55
58
  </DropdownItem>
56
59
  </DropdownList>
@@ -132,7 +132,7 @@ export const FileUploadField: React.FunctionComponent<FileUploadFieldProps> = ({
132
132
  <InputGroup>
133
133
  <InputGroupItem isFill>
134
134
  <TextInput
135
- readOnlyVariant="plain" // Always read-only regardless of isReadOnly prop (which is just for the TextArea)
135
+ readOnlyVariant="default" // Always read-only regardless of isReadOnly prop (which is just for the TextArea)
136
136
  isDisabled={isDisabled}
137
137
  id={`${id}-filename`}
138
138
  name={`${id}-filename`}
@@ -16,7 +16,7 @@ exports[`simple fileupload 1`] = `
16
16
  class="pf-v5-c-input-group__item pf-m-fill"
17
17
  >
18
18
  <span
19
- class="pf-v5-c-form-control pf-m-readonly pf-m-plain"
19
+ class="pf-v5-c-form-control pf-m-readonly"
20
20
  >
21
21
  <input
22
22
  aria-describedby="simple-text-file-browse-button"
@@ -15,7 +15,7 @@ exports[`simple fileuploadfield 1`] = `
15
15
  class="pf-v5-c-input-group__item pf-m-fill"
16
16
  >
17
17
  <span
18
- class="pf-v5-c-form-control pf-m-readonly pf-m-plain"
18
+ class="pf-v5-c-form-control pf-m-readonly"
19
19
  >
20
20
  <input
21
21
  aria-describedby="custom-file-upload-browse-button"
@@ -302,6 +302,8 @@ class MenuBase extends React.Component<MenuProps, MenuState> {
302
302
  (navigableElement?.tagName === 'DIV' && navigableElement.querySelector('input')) || // for MenuSearchInput
303
303
  ((navigableElement.firstChild as Element)?.tagName === 'LABEL' &&
304
304
  navigableElement.querySelector('input')) || // for MenuItem checkboxes
305
+ ((navigableElement.firstChild as Element)?.tagName === 'DIV' &&
306
+ navigableElement.querySelector('a, button, input')) || // For aria-disabled element that is rendered inside a div with "display: contents" styling
305
307
  (navigableElement.firstChild as Element)
306
308
  }
307
309
  noHorizontalArrowHandling={
@@ -11,6 +11,7 @@ import CheckIcon from '@patternfly/react-icons/dist/esm/icons/check-icon';
11
11
  import { Checkbox } from '../Checkbox';
12
12
  import { MenuContext, MenuItemContext } from './MenuContext';
13
13
  import { MenuItemAction } from './MenuItemAction';
14
+ import { Tooltip, TooltipProps } from '../Tooltip';
14
15
  import { canUseDOM } from '../../helpers/util';
15
16
  import { useIsomorphicLayoutEffect } from '../../helpers/useIsomorphicLayout';
16
17
  import { GenerateId } from '../../helpers/GenerateId/GenerateId';
@@ -40,6 +41,10 @@ export interface MenuItemProps extends Omit<React.HTMLProps<HTMLLIElement>, 'onC
40
41
  component?: React.ElementType<any> | React.ComponentType<any>;
41
42
  /** Render item as disabled option */
42
43
  isDisabled?: boolean;
44
+ /** Render item as aria-disabled option */
45
+ isAriaDisabled?: boolean;
46
+ /** Props for adding a tooltip to a menu item */
47
+ tooltipProps?: TooltipProps;
43
48
  /** Render item with icon */
44
49
  icon?: React.ReactNode;
45
50
  /** Render item with one or more actions */
@@ -94,6 +99,7 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
94
99
  onClick = () => {},
95
100
  component = 'button',
96
101
  isDisabled = false,
102
+ isAriaDisabled = false,
97
103
  isExternalLink = false,
98
104
  isSelected = null,
99
105
  isFocused,
@@ -106,6 +112,7 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
106
112
  innerRef,
107
113
  id,
108
114
  'aria-label': ariaLabel,
115
+ tooltipProps,
109
116
  ...props
110
117
  }: MenuItemProps) => {
111
118
  const {
@@ -225,10 +232,12 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
225
232
  };
226
233
 
227
234
  const onItemSelect = (event: any, onSelect: any) => {
228
- // Trigger callback for Menu onSelect
229
- onSelect && onSelect(event, itemId);
230
- // Trigger callback for item onClick
231
- onClick && onClick(event);
235
+ if (!isAriaDisabled) {
236
+ // Trigger callback for Menu onSelect
237
+ onSelect && onSelect(event, itemId);
238
+ // Trigger callback for item onClick
239
+ onClick && onClick(event);
240
+ }
232
241
  };
233
242
  const _isOnPath = (isOnPath && isOnPath) || (drilldownItemPath && drilldownItemPath.includes(itemId)) || false;
234
243
  let drill: (event: React.KeyboardEvent | React.MouseEvent) => void;
@@ -252,16 +261,18 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
252
261
  if (Component === 'a') {
253
262
  additionalProps = {
254
263
  href: to,
255
- 'aria-disabled': isDisabled ? true : null,
264
+ 'aria-disabled': isDisabled || isAriaDisabled ? true : null,
256
265
  // prevent invalid 'disabled' attribute on <a> tags
257
266
  disabled: null,
258
267
  target: isExternalLink ? '_blank' : null
259
268
  };
260
269
  } else if (Component === 'button') {
261
270
  additionalProps = {
262
- type: 'button'
271
+ type: 'button',
272
+ 'aria-disabled': isAriaDisabled ? true : null
263
273
  };
264
274
  }
275
+
265
276
  if (isOnPath) {
266
277
  additionalProps['aria-expanded'] = true;
267
278
  } else if (hasFlyout) {
@@ -300,25 +311,8 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
300
311
  };
301
312
  const isSelectMenu = menuRole === 'listbox';
302
313
 
303
- return (
304
- <li
305
- className={css(
306
- styles.menuListItem,
307
- isDisabled && styles.modifiers.disabled,
308
- _isOnPath && styles.modifiers.currentPath,
309
- isLoadButton && styles.modifiers.load,
310
- isLoading && styles.modifiers.loading,
311
- isFocused && styles.modifiers.focus,
312
- isDanger && styles.modifiers.danger,
313
- className
314
- )}
315
- onMouseOver={onMouseOver}
316
- {...(flyoutMenu && { onKeyDown: handleFlyout })}
317
- ref={ref}
318
- role={!hasCheckbox ? 'none' : 'menuitem'}
319
- {...(hasCheckbox && { 'aria-label': ariaLabel })}
320
- {...props}
321
- >
314
+ const renderItem = (
315
+ <>
322
316
  <GenerateId>
323
317
  {(randomId) => (
324
318
  <Component
@@ -332,9 +326,13 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
332
326
  ref={innerRef}
333
327
  {...(!hasCheckbox && {
334
328
  onClick: (event: React.KeyboardEvent | React.MouseEvent) => {
335
- onItemSelect(event, onSelect);
336
- drill && drill(event);
337
- flyoutMenu && handleFlyout(event);
329
+ if (!isAriaDisabled) {
330
+ onItemSelect(event, onSelect);
331
+ drill && drill(event);
332
+ flyoutMenu && handleFlyout(event);
333
+ } else {
334
+ event.preventDefault();
335
+ }
338
336
  }
339
337
  })}
340
338
  {...(hasCheckbox && { htmlFor: randomId })}
@@ -355,6 +353,7 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
355
353
  isChecked={isSelected || false}
356
354
  onChange={(event) => onItemSelect(event, onSelect)}
357
355
  isDisabled={isDisabled}
356
+ aria-disabled={isAriaDisabled}
358
357
  />
359
358
  </span>
360
359
  )}
@@ -402,6 +401,40 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
402
401
  />
403
402
  )}
404
403
  </MenuItemContext.Provider>
404
+ </>
405
+ );
406
+
407
+ return (
408
+ <li
409
+ className={css(
410
+ styles.menuListItem,
411
+ isDisabled && styles.modifiers.disabled,
412
+ isAriaDisabled && styles.modifiers.ariaDisabled,
413
+ _isOnPath && styles.modifiers.currentPath,
414
+ isLoadButton && styles.modifiers.load,
415
+ isLoading && styles.modifiers.loading,
416
+ isFocused && styles.modifiers.focus,
417
+ isDanger && styles.modifiers.danger,
418
+ className
419
+ )}
420
+ onMouseOver={() => {
421
+ if (!isAriaDisabled) {
422
+ onMouseOver();
423
+ }
424
+ }}
425
+ {...(flyoutMenu && !isAriaDisabled && { onKeyDown: handleFlyout })}
426
+ ref={ref}
427
+ role={!hasCheckbox ? 'none' : 'menuitem'}
428
+ {...(hasCheckbox && { 'aria-label': ariaLabel })}
429
+ {...props}
430
+ >
431
+ {tooltipProps ? (
432
+ <Tooltip {...tooltipProps}>
433
+ {renderItem}
434
+ </Tooltip>
435
+ ) : (
436
+ renderItem
437
+ )}
405
438
  </li>
406
439
  );
407
440
  };
@@ -14,7 +14,8 @@ propComponents:
14
14
  'MenuSearchInput',
15
15
  'MenuGroup',
16
16
  'MenuContainer',
17
- 'MenuPopperProps'
17
+ 'MenuPopperProps',
18
+ 'TooltipProps'
18
19
  ]
19
20
  ouia: true
20
21
  ---
@@ -33,6 +33,12 @@ export const MenuBasic: React.FunctionComponent = () => {
33
33
  <MenuItem isDisabled to="#default-link4">
34
34
  Disabled link
35
35
  </MenuItem>
36
+ <MenuItem isAriaDisabled tooltipProps={{content: "aria-disabled action", position: "top"}}>
37
+ Aria-disabled action
38
+ </MenuItem>
39
+ <MenuItem isAriaDisabled to="#default-link5" tooltipProps={{content: "aria-disabled link", position: "top"}}>
40
+ Aria-disabled link
41
+ </MenuItem>
36
42
  </MenuList>
37
43
  </MenuContent>
38
44
  </Menu>
@@ -72,6 +72,7 @@ export class ToolbarChipGroupContent extends React.Component<ToolbarChipGroupCon
72
72
  <div
73
73
  className={css(
74
74
  styles.toolbarContent,
75
+ !collapseListedFilters && styles.modifiers.chipContainer,
75
76
  (numberOfFilters === 0 || isExpanded) && styles.modifiers.hidden,
76
77
  className
77
78
  )}
@@ -3,7 +3,7 @@
3
3
  exports[`ToolbarChipGroupContent should match snapshot (auto-generated) 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- class="pf-v5-c-toolbar__content pf-m-hidden string"
6
+ class="pf-v5-c-toolbar__content pf-m-chip-container pf-m-hidden string"
7
7
  hidden=""
8
8
  >
9
9
  <div
@@ -44,7 +44,7 @@ exports[`Toolbar should render inset 1`] = `
44
44
  </div>
45
45
  </div>
46
46
  <div
47
- class="pf-v5-c-toolbar__content pf-m-hidden"
47
+ class="pf-v5-c-toolbar__content pf-m-chip-container pf-m-hidden"
48
48
  hidden=""
49
49
  >
50
50
  <div
@@ -395,7 +395,7 @@ exports[`Toolbar should render with page inset flag 1`] = `
395
395
  </div>
396
396
  </div>
397
397
  <div
398
- class="pf-v5-c-toolbar__content pf-m-hidden"
398
+ class="pf-v5-c-toolbar__content pf-m-chip-container pf-m-hidden"
399
399
  hidden=""
400
400
  >
401
401
  <div