UNPKG

@wordpress/block-editor

Version:
78 lines (72 loc) 2.1 kB
import { createElement } from "@wordpress/element"; /** * WordPress dependencies */ import { ColorIndicator, Dropdown, DuotonePicker, DuotoneSwatch, MenuGroup, ToolbarButton } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { DOWN } from '@wordpress/keycodes'; import { Icon, filter } from '@wordpress/icons'; function DuotoneControl({ colorPalette, duotonePalette, disableCustomColors, disableCustomDuotone, value, onChange }) { let toolbarIcon; if (value === 'unset') { toolbarIcon = createElement(ColorIndicator, { className: "block-editor-duotone-control__unset-indicator" }); } else if (value) { toolbarIcon = createElement(DuotoneSwatch, { values: value }); } else { toolbarIcon = createElement(Icon, { icon: filter }); } return createElement(Dropdown, { popoverProps: { className: 'block-editor-duotone-control__popover', headerTitle: __('Duotone'), variant: 'toolbar' }, renderToggle: ({ isOpen, onToggle }) => { const openOnArrowDown = event => { if (!isOpen && event.keyCode === DOWN) { event.preventDefault(); onToggle(); } }; return createElement(ToolbarButton, { showTooltip: true, onClick: onToggle, "aria-haspopup": "true", "aria-expanded": isOpen, onKeyDown: openOnArrowDown, label: __('Apply duotone filter'), icon: toolbarIcon }); }, renderContent: () => createElement(MenuGroup, { label: __('Duotone') }, createElement("div", { className: "block-editor-duotone-control__description" }, __('Create a two-tone color effect without losing your original image.')), createElement(DuotonePicker, { colorPalette: colorPalette, duotonePalette: duotonePalette, disableCustomColors: disableCustomColors, disableCustomDuotone: disableCustomDuotone, value: value, onChange: onChange })) }); } export default DuotoneControl; //# sourceMappingURL=index.js.map