UNPKG

@wordpress/components

Version:
71 lines (65 loc) 1.96 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { createElement } from "@wordpress/element"; // @ts-nocheck /** * External dependencies */ import classnames from 'classnames'; /** * WordPress dependencies */ import { cloneElement, forwardRef } from '@wordpress/element'; /** * Internal dependencies */ import Shortcut from '../shortcut'; import Button from '../button'; import Icon from '../icon'; export function MenuItem(props, ref) { let { children, info, className, icon, iconPosition = 'right', shortcut, isSelected, role = 'menuitem', suffix, ...buttonProps } = props; className = classnames('components-menu-item__button', className); if (info) { children = createElement("span", { className: "components-menu-item__info-wrapper" }, createElement("span", { className: "components-menu-item__item" }, children), createElement("span", { className: "components-menu-item__info" }, info)); } if (icon && typeof icon !== 'string') { icon = cloneElement(icon, { className: classnames('components-menu-items__item-icon', { 'has-icon-right': iconPosition === 'right' }) }); } return createElement(Button, _extends({ ref: ref // Make sure aria-checked matches spec https://www.w3.org/TR/wai-aria-1.1/#aria-checked , "aria-checked": role === 'menuitemcheckbox' || role === 'menuitemradio' ? isSelected : undefined, role: role, icon: iconPosition === 'left' ? icon : undefined, className: className }, buttonProps), createElement("span", { className: "components-menu-item__item" }, children), !suffix && createElement(Shortcut, { className: "components-menu-item__shortcut", shortcut: shortcut }), !suffix && icon && iconPosition === 'right' && createElement(Icon, { icon: icon }), suffix); } export default forwardRef(MenuItem); //# sourceMappingURL=index.js.map