@wordpress/components
Version:
UI components for WordPress.
105 lines (89 loc) • 3.05 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = CircularOptionPicker;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _classnames = _interopRequireDefault(require("classnames"));
var _icons = require("@wordpress/icons");
var _button = _interopRequireDefault(require("../button"));
var _dropdown = _interopRequireDefault(require("../dropdown"));
var _tooltip = _interopRequireDefault(require("../tooltip"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function Option({
className,
isSelected,
selectedIconProps,
tooltipText,
...additionalProps
}) {
const optionButton = (0, _element.createElement)(_button.default, (0, _extends2.default)({
isPressed: isSelected,
className: (0, _classnames.default)(className, 'components-circular-option-picker__option')
}, additionalProps));
return (0, _element.createElement)("div", {
className: "components-circular-option-picker__option-wrapper"
}, tooltipText ? (0, _element.createElement)(_tooltip.default, {
text: tooltipText
}, optionButton) : optionButton, isSelected && (0, _element.createElement)(_icons.Icon, (0, _extends2.default)({
icon: _icons.check
}, selectedIconProps ? selectedIconProps : {})));
}
function DropdownLinkAction({
buttonProps,
className,
dropdownProps,
linkText
}) {
return (0, _element.createElement)(_dropdown.default, (0, _extends2.default)({
className: (0, _classnames.default)('components-circular-option-picker__dropdown-link-action', className),
renderToggle: ({
isOpen,
onToggle
}) => (0, _element.createElement)(_button.default, (0, _extends2.default)({
"aria-expanded": isOpen,
"aria-haspopup": "true",
onClick: onToggle,
isLink: true
}, buttonProps), linkText)
}, dropdownProps));
}
function ButtonAction({
className,
children,
...additionalProps
}) {
return (0, _element.createElement)(_button.default, (0, _extends2.default)({
className: (0, _classnames.default)('components-circular-option-picker__clear', className),
isSmall: true,
isSecondary: true
}, additionalProps), children);
}
function CircularOptionPicker({
actions,
className,
options,
children
}) {
return (0, _element.createElement)("div", {
className: (0, _classnames.default)('components-circular-option-picker', className)
}, (0, _element.createElement)("div", {
className: "components-circular-option-picker__swatches"
}, options), children, actions && (0, _element.createElement)("div", {
className: "components-circular-option-picker__custom-clear-wrapper"
}, actions));
}
CircularOptionPicker.Option = Option;
CircularOptionPicker.ButtonAction = ButtonAction;
CircularOptionPicker.DropdownLinkAction = DropdownLinkAction;
//# sourceMappingURL=index.js.map