@patternfly/react-core 4.214.5 → 4.215.0

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 (53) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/esm/components/Checkbox/Checkbox.d.ts +2 -0
  3. package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
  4. package/dist/esm/components/Checkbox/Checkbox.js +4 -3
  5. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  6. package/dist/esm/components/Menu/MenuItem.d.ts +3 -1
  7. package/dist/esm/components/Menu/MenuItem.d.ts.map +1 -1
  8. package/dist/esm/components/Menu/MenuItem.js +15 -6
  9. package/dist/esm/components/Menu/MenuItem.js.map +1 -1
  10. package/dist/js/components/Checkbox/Checkbox.d.ts +2 -0
  11. package/dist/js/components/Checkbox/Checkbox.d.ts.map +1 -1
  12. package/dist/js/components/Checkbox/Checkbox.js +4 -3
  13. package/dist/js/components/Checkbox/Checkbox.js.map +1 -1
  14. package/dist/js/components/Menu/MenuItem.d.ts +3 -1
  15. package/dist/js/components/Menu/MenuItem.d.ts.map +1 -1
  16. package/dist/js/components/Menu/MenuItem.js +15 -6
  17. package/dist/js/components/Menu/MenuItem.js.map +1 -1
  18. package/dist/umd/react-core.js +17 -9
  19. package/dist/umd/react-core.min.js +2 -2
  20. package/package.json +5 -5
  21. package/src/components/Checkbox/Checkbox.tsx +7 -3
  22. package/src/components/Checkbox/__tests__/Checkbox.test.tsx +9 -0
  23. package/src/components/Dropdown/examples/Dropdown.md +25 -1530
  24. package/src/components/Dropdown/examples/DropdownAlignmentOnBreakpoints.tsx +64 -0
  25. package/src/components/Dropdown/examples/DropdownAppendBodyVsParent.tsx +83 -0
  26. package/src/components/Dropdown/examples/DropdownBadge.tsx +46 -0
  27. package/src/components/Dropdown/examples/DropdownBasic.tsx +57 -0
  28. package/src/components/Dropdown/examples/DropdownBasicPanel.tsx +34 -0
  29. package/src/components/Dropdown/examples/DropdownDescriptions.tsx +55 -0
  30. package/src/components/Dropdown/examples/DropdownDirectionUp.tsx +58 -0
  31. package/src/components/Dropdown/examples/DropdownDisabled.tsx +57 -0
  32. package/src/components/Dropdown/examples/DropdownGroups.tsx +55 -0
  33. package/src/components/Dropdown/examples/DropdownIconOnly.tsx +59 -0
  34. package/src/components/Dropdown/examples/DropdownImageAndText.tsx +64 -0
  35. package/src/components/Dropdown/examples/DropdownInitialSelection.tsx +57 -0
  36. package/src/components/Dropdown/examples/DropdownKebab.tsx +54 -0
  37. package/src/components/Dropdown/examples/DropdownPlainTextToggle.tsx +59 -0
  38. package/src/components/Dropdown/examples/DropdownPositionRight.tsx +58 -0
  39. package/src/components/Dropdown/examples/DropdownPrimaryToggle.tsx +57 -0
  40. package/src/components/Dropdown/examples/DropdownRouterLink.tsx +36 -0
  41. package/src/components/Dropdown/examples/DropdownSecondaryToggle.tsx +57 -0
  42. package/src/components/Dropdown/examples/DropdownSplitButton.tsx +67 -0
  43. package/src/components/Dropdown/examples/DropdownSplitButtonAction.tsx +105 -0
  44. package/src/components/Dropdown/examples/DropdownSplitButtonActionPrimary.tsx +107 -0
  45. package/src/components/Dropdown/examples/DropdownSplitButtonDisabled.tsx +73 -0
  46. package/src/components/Dropdown/examples/DropdownSplitButtonIndeterminate.tsx +78 -0
  47. package/src/components/Dropdown/examples/DropdownSplitButtonText.tsx +69 -0
  48. package/src/components/Menu/MenuItem.tsx +69 -43
  49. package/src/components/Menu/__tests__/Menu.test.tsx +23 -0
  50. package/src/components/Menu/examples/Menu.md +5 -0
  51. package/src/components/Menu/examples/MenuWithCheckbox.tsx +34 -0
  52. package/src/demos/ComposableMenu/ComposableMenu.md +5 -0
  53. package/src/demos/ComposableMenu/examples/ComposableSimpleCheckboxSelect.tsx +98 -0
@@ -8181,7 +8181,7 @@
8181
8181
  };
8182
8182
  }
8183
8183
  render() {
8184
- const _a = this.props, { 'aria-label': ariaLabel, className, onChange, isValid, isDisabled, isChecked, label, checked, defaultChecked, description, body, ouiaId, ouiaSafe } = _a, props = __rest$1(_a, ['aria-label', "className", "onChange", "isValid", "isDisabled", "isChecked", "label", "checked", "defaultChecked", "description", "body", "ouiaId", "ouiaSafe"]);
8184
+ const _a = this.props, { 'aria-label': ariaLabel, className, onChange, isValid, isDisabled, isChecked, label, checked, defaultChecked, description, body, ouiaId, ouiaSafe, component: Component } = _a, props = __rest$1(_a, ['aria-label', "className", "onChange", "isValid", "isDisabled", "isChecked", "label", "checked", "defaultChecked", "description", "body", "ouiaId", "ouiaSafe", "component"]);
8185
8185
  if (!props.id) {
8186
8186
  // eslint-disable-next-line no-console
8187
8187
  console.error('Checkbox:', 'id is required to make input accessible');
@@ -8197,7 +8197,7 @@
8197
8197
  checkedProps.defaultChecked = defaultChecked;
8198
8198
  }
8199
8199
  checkedProps.checked = checkedProps.checked === null ? false : checkedProps.checked;
8200
- return (React__namespace.createElement("div", { className: css(styles$Y.check, !label && styles$Y.modifiers.standalone, className) },
8200
+ return (React__namespace.createElement(Component, { className: css(styles$Y.check, !label && styles$Y.modifiers.standalone, className) },
8201
8201
  React__namespace.createElement("input", Object.assign({}, props, { className: css(styles$Y.checkInput), type: "checkbox", onChange: this.handleChange, "aria-invalid": !isValid, "aria-label": ariaLabel, disabled: isDisabled, ref: elem => elem && (elem.indeterminate = isChecked === null) }, checkedProps, getOUIAProps(Checkbox.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe))),
8202
8202
  label && (React__namespace.createElement("label", { className: css(styles$Y.checkLabel, isDisabled && styles$Y.modifiers.disabled), htmlFor: props.id }, label)),
8203
8203
  description && React__namespace.createElement("span", { className: css(styles$Y.checkDescription) }, description),
@@ -8211,7 +8211,8 @@
8211
8211
  isDisabled: false,
8212
8212
  isChecked: false,
8213
8213
  onChange: defaultOnChange,
8214
- ouiaSafe: true
8214
+ ouiaSafe: true,
8215
+ component: 'div'
8215
8216
  };
8216
8217
 
8217
8218
  Promise.resolve().then(function () { return clipboardCopy; });
@@ -14989,9 +14990,12 @@
14989
14990
  direction: 'right'
14990
14991
  });
14991
14992
  const MenuItemBase = (_a) => {
14992
- var { children, className, itemId = null, to, isActive = null, isFavorited = null, isLoadButton = false, isLoading = false, flyoutMenu, direction, description = null, onClick = () => { }, component = 'button', isDisabled = false, isExternalLink = false, isSelected = null, icon, actions, onShowFlyout, drilldownMenu, isOnPath, innerRef } = _a, props = __rest$1(_a, ["children", "className", "itemId", "to", "isActive", "isFavorited", "isLoadButton", "isLoading", "flyoutMenu", "direction", "description", "onClick", "component", "isDisabled", "isExternalLink", "isSelected", "icon", "actions", "onShowFlyout", "drilldownMenu", "isOnPath", "innerRef"]);
14993
+ var { children, className, itemId = null, to, hasCheck = false, isActive = null, isFavorited = null, isLoadButton = false, isLoading = false, flyoutMenu, direction, description = null, onClick = () => { }, component = 'button', isDisabled = false, isExternalLink = false, isSelected = null, icon, actions, onShowFlyout, drilldownMenu, isOnPath, innerRef } = _a, props = __rest$1(_a, ["children", "className", "itemId", "to", "hasCheck", "isActive", "isFavorited", "isLoadButton", "isLoading", "flyoutMenu", "direction", "description", "onClick", "component", "isDisabled", "isExternalLink", "isSelected", "icon", "actions", "onShowFlyout", "drilldownMenu", "isOnPath", "innerRef"]);
14993
14994
  const { menuId, parentMenu, onSelect, onActionClick, activeItemId, selected, drilldownItemPath, onDrillIn, onDrillOut, flyoutRef, setFlyoutRef, disableHover } = React__namespace.useContext(MenuContext);
14994
- const Component = (to ? 'a' : component);
14995
+ let Component = (to ? 'a' : component);
14996
+ if (hasCheck && !to) {
14997
+ Component = 'label';
14998
+ }
14995
14999
  const [flyoutTarget, setFlyoutTarget] = React__namespace.useState(null);
14996
15000
  const flyoutContext = React__namespace.useContext(FlyoutContext);
14997
15001
  const [flyoutXDirection, setFlyoutXDirection] = React__namespace.useState(flyoutContext.direction);
@@ -15152,15 +15156,19 @@
15152
15156
  setFlyoutRef(null);
15153
15157
  }
15154
15158
  };
15155
- return (React__namespace.createElement("li", Object.assign({ className: css(menuStyles.menuListItem, isDisabled && menuStyles.modifiers.disabled, _isOnPath && menuStyles.modifiers.currentPath, isLoadButton && menuStyles.modifiers.load, isLoading && menuStyles.modifiers.loading, className), onMouseOver: onMouseOver }, (flyoutMenu && { onKeyDown: handleFlyout }), { ref: ref, role: "none" }, props),
15156
- React__namespace.createElement(Component, Object.assign({ tabIndex: -1, className: css(menuStyles.menuItem, getIsSelected() && menuStyles.modifiers.selected, className), "aria-current": getAriaCurrent(), disabled: isDisabled, role: "menuitem", ref: innerRef, onClick: (event) => {
15159
+ return (React__namespace.createElement("li", Object.assign({ className: css(menuStyles.menuListItem, isDisabled && menuStyles.modifiers.disabled, _isOnPath && menuStyles.modifiers.currentPath, isLoadButton && menuStyles.modifiers.load, isLoading && menuStyles.modifiers.loading, className), onMouseOver: onMouseOver }, (flyoutMenu && { onKeyDown: handleFlyout }), { ref: ref, role: !hasCheck ? 'none' : 'menuitem' }, props),
15160
+ React__namespace.createElement(GenerateId, null, randomId => (React__namespace.createElement(Component, Object.assign({ tabIndex: -1, className: css(menuStyles.menuItem, getIsSelected() && !hasCheck && menuStyles.modifiers.selected, className), "aria-current": getAriaCurrent() }, (!hasCheck && { disabled: isDisabled }), (!hasCheck && { role: 'menuitem' }), { ref: innerRef }, (!hasCheck && {
15161
+ onClick: (event) => {
15157
15162
  onItemSelect(event, onSelect);
15158
15163
  _drill && _drill();
15159
- } }, additionalProps),
15164
+ }
15165
+ }), (hasCheck && { htmlFor: randomId }), additionalProps),
15160
15166
  React__namespace.createElement("span", { className: css(menuStyles.menuItemMain) },
15161
15167
  direction === 'up' && (React__namespace.createElement("span", { className: css(menuStyles.menuItemToggleIcon) },
15162
15168
  React__namespace.createElement(AngleLeftIcon$1, { "aria-hidden": true }))),
15163
15169
  icon && React__namespace.createElement("span", { className: css(menuStyles.menuItemIcon) }, icon),
15170
+ hasCheck && (React__namespace.createElement("span", { className: css('pf-c-menu__item-check') },
15171
+ React__namespace.createElement(Checkbox, { id: randomId, component: "span", isChecked: isSelected || false, onChange: event => onItemSelect(event, onSelect), isDisabled: isDisabled }))),
15164
15172
  React__namespace.createElement("span", { className: css(menuStyles.menuItemText) }, children),
15165
15173
  isExternalLink && (React__namespace.createElement("span", { className: css(menuStyles.menuItemExternalIcon) },
15166
15174
  React__namespace.createElement(ExternalLinkAltIcon$1, { "aria-hidden": true }))),
@@ -15169,7 +15177,7 @@
15169
15177
  getIsSelected() && (React__namespace.createElement("span", { className: css(menuStyles.menuItemSelectIcon) },
15170
15178
  React__namespace.createElement(CheckIcon$1, { "aria-hidden": true })))),
15171
15179
  description && direction !== 'up' && (React__namespace.createElement("span", { className: css(menuStyles.menuItemDescription) },
15172
- React__namespace.createElement("span", null, description)))),
15180
+ React__namespace.createElement("span", null, description)))))),
15173
15181
  flyoutVisible && (React__namespace.createElement(MenuContext.Provider, { value: { disableHover } },
15174
15182
  React__namespace.createElement(FlyoutContext.Provider, { value: { direction: flyoutXDirection } }, flyoutMenu))),
15175
15183
  typeof drilldownMenu === 'function' ? drilldownMenu() : drilldownMenu,