UNPKG

@wordpress/block-editor

Version:
92 lines (88 loc) 3.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _clsx = _interopRequireDefault(require("clsx")); var _i18n = require("@wordpress/i18n"); var _element = require("@wordpress/element"); var _components = require("@wordpress/components"); var _label = _interopRequireDefault(require("./label")); var _jsxRuntime = require("react/jsx-runtime"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function ResponsiveBlockControl(props) { const { title, property, toggleLabel, onIsResponsiveChange, renderDefaultControl, renderResponsiveControls, isResponsive = false, defaultLabel = { id: 'all', label: (0, _i18n._x)('All', 'screen sizes') }, viewports = [{ id: 'small', label: (0, _i18n.__)('Small screens') }, { id: 'medium', label: (0, _i18n.__)('Medium screens') }, { id: 'large', label: (0, _i18n.__)('Large screens') }] } = props; if (!title || !property || !renderDefaultControl) { return null; } const toggleControlLabel = toggleLabel || (0, _i18n.sprintf)(/* translators: %s: Property value for the control (eg: margin, padding, etc.). */ (0, _i18n.__)('Use the same %s on all screen sizes.'), property); const toggleHelpText = (0, _i18n.__)('Choose whether to use the same value for all screen sizes or a unique value for each screen size.'); const defaultControl = renderDefaultControl(/*#__PURE__*/(0, _jsxRuntime.jsx)(_label.default, { property: property, viewport: defaultLabel }), defaultLabel); const defaultResponsiveControls = () => { return viewports.map(viewport => /*#__PURE__*/(0, _jsxRuntime.jsx)(_element.Fragment, { children: renderDefaultControl(/*#__PURE__*/(0, _jsxRuntime.jsx)(_label.default, { property: property, viewport: viewport }), viewport) }, viewport.id)); }; return /*#__PURE__*/(0, _jsxRuntime.jsxs)("fieldset", { className: "block-editor-responsive-block-control", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("legend", { className: "block-editor-responsive-block-control__title", children: title }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: "block-editor-responsive-block-control__inner", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, { __nextHasNoMarginBottom: true, className: "block-editor-responsive-block-control__toggle", label: toggleControlLabel, checked: !isResponsive, onChange: onIsResponsiveChange, help: toggleHelpText }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: (0, _clsx.default)('block-editor-responsive-block-control__group', { 'is-responsive': isResponsive }), children: [!isResponsive && defaultControl, isResponsive && (renderResponsiveControls ? renderResponsiveControls(viewports) : defaultResponsiveControls())] })] })] }); } var _default = exports.default = ResponsiveBlockControl; //# sourceMappingURL=index.js.map