UNPKG

@wordpress/block-editor

Version:
74 lines (64 loc) 2.09 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TextDecorationControl; var _element = require("@wordpress/element"); var _classnames = _interopRequireDefault(require("classnames")); var _components = require("@wordpress/components"); var _icons = require("@wordpress/icons"); var _i18n = require("@wordpress/i18n"); /** * External dependencies */ /** * WordPress dependencies */ const TEXT_DECORATIONS = [{ name: (0, _i18n.__)('None'), value: 'none', icon: _icons.reset }, { name: (0, _i18n.__)('Underline'), value: 'underline', icon: _icons.formatUnderline }, { name: (0, _i18n.__)('Strikethrough'), value: 'line-through', icon: _icons.formatStrikethrough }]; /** * Control to facilitate text decoration selections. * * @param {Object} props Component props. * @param {string} props.value Currently selected text decoration. * @param {Function} props.onChange Handles change in text decoration selection. * @param {string} [props.className] Additional class name to apply. * * @return {WPElement} Text decoration control. */ function TextDecorationControl({ value, onChange, className }) { return (0, _element.createElement)("fieldset", { className: (0, _classnames.default)('block-editor-text-decoration-control', className) }, (0, _element.createElement)(_components.BaseControl.VisualLabel, { as: "legend" }, (0, _i18n.__)('Decoration')), (0, _element.createElement)("div", { className: "block-editor-text-decoration-control__buttons" }, TEXT_DECORATIONS.map(textDecoration => { return (0, _element.createElement)(_components.Button, { key: textDecoration.value, icon: textDecoration.icon, label: textDecoration.name, isPressed: textDecoration.value === value, onClick: () => { onChange(textDecoration.value === value ? undefined : textDecoration.value); } }); }))); } //# sourceMappingURL=index.js.map