@wordpress/components
Version:
UI components for WordPress.
90 lines (83 loc) • 2.4 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import classnames from 'classnames';
/**
* WordPress dependencies
*/
import { Icon, check } from '@wordpress/icons';
/**
* Internal dependencies
*/
import Button from '../button';
import Dropdown from '../dropdown';
import Tooltip from '../tooltip';
function Option({
className,
isSelected,
selectedIconProps,
tooltipText,
...additionalProps
}) {
const optionButton = createElement(Button, _extends({
isPressed: isSelected,
className: classnames(className, 'components-circular-option-picker__option')
}, additionalProps));
return createElement("div", {
className: "components-circular-option-picker__option-wrapper"
}, tooltipText ? createElement(Tooltip, {
text: tooltipText
}, optionButton) : optionButton, isSelected && createElement(Icon, _extends({
icon: check
}, selectedIconProps ? selectedIconProps : {})));
}
function DropdownLinkAction({
buttonProps,
className,
dropdownProps,
linkText
}) {
return createElement(Dropdown, _extends({
className: classnames('components-circular-option-picker__dropdown-link-action', className),
renderToggle: ({
isOpen,
onToggle
}) => createElement(Button, _extends({
"aria-expanded": isOpen,
"aria-haspopup": "true",
onClick: onToggle,
isLink: true
}, buttonProps), linkText)
}, dropdownProps));
}
function ButtonAction({
className,
children,
...additionalProps
}) {
return createElement(Button, _extends({
className: classnames('components-circular-option-picker__clear', className),
isSmall: true,
isSecondary: true
}, additionalProps), children);
}
export default function CircularOptionPicker({
actions,
className,
options,
children
}) {
return createElement("div", {
className: classnames('components-circular-option-picker', className)
}, createElement("div", {
className: "components-circular-option-picker__swatches"
}, options), children, actions && createElement("div", {
className: "components-circular-option-picker__custom-clear-wrapper"
}, actions));
}
CircularOptionPicker.Option = Option;
CircularOptionPicker.ButtonAction = ButtonAction;
CircularOptionPicker.DropdownLinkAction = DropdownLinkAction;
//# sourceMappingURL=index.js.map