UNPKG

@wordpress/block-editor

Version:
119 lines (113 loc) 9.23 kB
import _styled from "@emotion/styled/base"; function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /** * External dependencies */ /** * WordPress dependencies */ import { __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUnitControl as UnitControl } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime"; const SingleColumnToolsPanelItem = /*#__PURE__*/_styled(ToolsPanelItem, process.env.NODE_ENV === "production" ? { target: "ef8pe3d0" } : { target: "ef8pe3d0", label: "SingleColumnToolsPanelItem" })(process.env.NODE_ENV === "production" ? { name: "957xgf", styles: "grid-column:span 1" } : { name: "957xgf", styles: "grid-column:span 1", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvYmxvY2stZWRpdG9yL3NyYy9jb21wb25lbnRzL2RpbWVuc2lvbnMtdG9vbC93aWR0aC1oZWlnaHQtdG9vbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjMkQiLCJmaWxlIjoiQHdvcmRwcmVzcy9ibG9jay1lZGl0b3Ivc3JjL2NvbXBvbmVudHMvZGltZW5zaW9ucy10b29sL3dpZHRoLWhlaWdodC10b29sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0X19leHBlcmltZW50YWxUb29sc1BhbmVsSXRlbSBhcyBUb29sc1BhbmVsSXRlbSxcblx0X19leHBlcmltZW50YWxVbml0Q29udHJvbCBhcyBVbml0Q29udHJvbCxcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuY29uc3QgU2luZ2xlQ29sdW1uVG9vbHNQYW5lbEl0ZW0gPSBzdHlsZWQoIFRvb2xzUGFuZWxJdGVtIClgXG5cdGdyaWQtY29sdW1uOiBzcGFuIDE7XG5gO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0B3b3JkcHJlc3MvY29tcG9uZW50cy9idWlsZC10eXBlcy91bml0LWNvbnRyb2wvdHlwZXMnKS5XUFVuaXRDb250cm9sVW5pdH0gV1BVbml0Q29udHJvbFVuaXRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFdpZHRoSGVpZ2h0VG9vbFZhbHVlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3dpZHRoXSAgV2lkdGggQ1NTIHZhbHVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtoZWlnaHRdIEhlaWdodCBDU1MgdmFsdWUuXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgV2lkdGhIZWlnaHRUb29sT25DaGFuZ2VcbiAqIEBwYXJhbSB7V2lkdGhIZWlnaHRUb29sVmFsdWV9IG5leHRWYWx1ZSBOZXh0IGRpbWVuc2lvbnMgdmFsdWUuXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gV2lkdGhIZWlnaHRUb29sUHJvcHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSAgICAgICAgICAgICAgICAgIFtwYW5lbElkXSAgICAgICAgICBJRCBvZiB0aGUgcGFuZWwgdGhhdCBjb250YWlucyB0aGUgY29udHJvbHMuXG4gKiBAcHJvcGVydHkge1dpZHRoSGVpZ2h0VG9vbFZhbHVlfSAgICBbdmFsdWVdICAgICAgICAgICAgQ3VycmVudCBkaW1lbnNpb25zIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7V2lkdGhIZWlnaHRUb29sT25DaGFuZ2V9IFtvbkNoYW5nZV0gICAgICAgICBDYWxsYmFjayB0byB1cGRhdGUgdGhlIGRpbWVuc2lvbnMgdmFsdWVzLlxuICogQHByb3BlcnR5IHtXUFVuaXRDb250cm9sVW5pdFtdfSAgICAgW3VuaXRzXSAgICAgICAgICAgIFVuaXRzIG9wdGlvbnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59ICAgICAgICAgICAgICAgICBbaXNTaG93bkJ5RGVmYXVsdF0gV2hldGhlciB0aGUgcGFuZWwgaXMgc2hvd24gYnkgZGVmYXVsdC5cbiAqL1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHJlbmRlcnMgY29udHJvbHMgdG8gZWRpdCB0aGUgZGltZW5zaW9ucyBvZiBhbiBpbWFnZSBvciBjb250YWluZXIuXG4gKlxuICogQHBhcmFtIHtXaWR0aEhlaWdodFRvb2xQcm9wc30gcHJvcHMgVGhlIGNvbXBvbmVudCBwcm9wcy5cbiAqXG4gKiBAcmV0dXJuIHtpbXBvcnQoJ3JlYWN0JykuUmVhY3RFbGVtZW50fSBUaGUgd2lkdGggYW5kIGhlaWdodCB0b29sLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBXaWR0aEhlaWdodFRvb2woIHtcblx0cGFuZWxJZCxcblx0dmFsdWUgPSB7fSxcblx0b25DaGFuZ2UgPSAoKSA9PiB7fSxcblx0dW5pdHMsXG5cdGlzU2hvd25CeURlZmF1bHQgPSB0cnVlLFxufSApIHtcblx0Ly8gbnVsbCwgdW5kZWZpbmVkLCBhbmQgJ2F1dG8nIGFsbCByZXByZXNlbnQgdGhlIGRlZmF1bHQgdmFsdWUuXG5cdGNvbnN0IHdpZHRoID0gdmFsdWUud2lkdGggPT09ICdhdXRvJyA/ICcnIDogdmFsdWUud2lkdGggPz8gJyc7XG5cdGNvbnN0IGhlaWdodCA9IHZhbHVlLmhlaWdodCA9PT0gJ2F1dG8nID8gJycgOiB2YWx1ZS5oZWlnaHQgPz8gJyc7XG5cblx0Y29uc3Qgb25EaW1lbnNpb25DaGFuZ2UgPSAoIGRpbWVuc2lvbiApID0+ICggbmV4dERpbWVuc2lvbiApID0+IHtcblx0XHRjb25zdCBuZXh0VmFsdWUgPSB7IC4uLnZhbHVlIH07XG5cdFx0Ly8gRW1wdHkgc3RyaW5ncyBvciB1bmRlZmluZWQgbWF5IGJlIHBhc3NlZCBhbmQgYm90aCByZXByZXNlbnQgcmVtb3ZpbmcgdGhlIHZhbHVlLlxuXHRcdGlmICggISBuZXh0RGltZW5zaW9uICkge1xuXHRcdFx0ZGVsZXRlIG5leHRWYWx1ZVsgZGltZW5zaW9uIF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5leHRWYWx1ZVsgZGltZW5zaW9uIF0gPSBuZXh0RGltZW5zaW9uO1xuXHRcdH1cblx0XHRvbkNoYW5nZSggbmV4dFZhbHVlICk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PFNpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtXG5cdFx0XHRcdGxhYmVsPXsgX18oICdXaWR0aCcgKSB9XG5cdFx0XHRcdGlzU2hvd25CeURlZmF1bHQ9eyBpc1Nob3duQnlEZWZhdWx0IH1cblx0XHRcdFx0aGFzVmFsdWU9eyAoKSA9PiB3aWR0aCAhPT0gJycgfVxuXHRcdFx0XHRvbkRlc2VsZWN0PXsgb25EaW1lbnNpb25DaGFuZ2UoICd3aWR0aCcgKSB9XG5cdFx0XHRcdHBhbmVsSWQ9eyBwYW5lbElkIH1cblx0XHRcdD5cblx0XHRcdFx0PFVuaXRDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1dpZHRoJyApIH1cblx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnQXV0bycgKSB9XG5cdFx0XHRcdFx0bGFiZWxQb3NpdGlvbj1cInRvcFwiXG5cdFx0XHRcdFx0dW5pdHM9eyB1bml0cyB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0dmFsdWU9eyB3aWR0aCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBvbkRpbWVuc2lvbkNoYW5nZSggJ3dpZHRoJyApIH1cblx0XHRcdFx0XHRzaXplPVwiX191bnN0YWJsZS1sYXJnZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1NpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtPlxuXHRcdFx0PFNpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtXG5cdFx0XHRcdGxhYmVsPXsgX18oICdIZWlnaHQnICkgfVxuXHRcdFx0XHRpc1Nob3duQnlEZWZhdWx0PXsgaXNTaG93bkJ5RGVmYXVsdCB9XG5cdFx0XHRcdGhhc1ZhbHVlPXsgKCkgPT4gaGVpZ2h0ICE9PSAnJyB9XG5cdFx0XHRcdG9uRGVzZWxlY3Q9eyBvbkRpbWVuc2lvbkNoYW5nZSggJ2hlaWdodCcgKSB9XG5cdFx0XHRcdHBhbmVsSWQ9eyBwYW5lbElkIH1cblx0XHRcdD5cblx0XHRcdFx0PFVuaXRDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hlaWdodCcgKSB9XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ0F1dG8nICkgfVxuXHRcdFx0XHRcdGxhYmVsUG9zaXRpb249XCJ0b3BcIlxuXHRcdFx0XHRcdHVuaXRzPXsgdW5pdHMgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdHZhbHVlPXsgaGVpZ2h0IH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IG9uRGltZW5zaW9uQ2hhbmdlKCAnaGVpZ2h0JyApIH1cblx0XHRcdFx0XHRzaXplPVwiX191bnN0YWJsZS1sYXJnZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1NpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtPlxuXHRcdDwvPlxuXHQpO1xufVxuIl19 */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }); /** * @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit */ /** * @typedef {Object} WidthHeightToolValue * @property {string} [width] Width CSS value. * @property {string} [height] Height CSS value. */ /** * @callback WidthHeightToolOnChange * @param {WidthHeightToolValue} nextValue Next dimensions value. * @return {void} */ /** * @typedef {Object} WidthHeightToolProps * @property {string} [panelId] ID of the panel that contains the controls. * @property {WidthHeightToolValue} [value] Current dimensions values. * @property {WidthHeightToolOnChange} [onChange] Callback to update the dimensions values. * @property {WPUnitControlUnit[]} [units] Units options. * @property {boolean} [isShownByDefault] Whether the panel is shown by default. */ /** * Component that renders controls to edit the dimensions of an image or container. * * @param {WidthHeightToolProps} props The component props. * * @return {import('react').ReactElement} The width and height tool. */ export default function WidthHeightTool({ panelId, value = {}, onChange = () => {}, units, isShownByDefault = true }) { var _value$width, _value$height; // null, undefined, and 'auto' all represent the default value. const width = value.width === 'auto' ? '' : (_value$width = value.width) !== null && _value$width !== void 0 ? _value$width : ''; const height = value.height === 'auto' ? '' : (_value$height = value.height) !== null && _value$height !== void 0 ? _value$height : ''; const onDimensionChange = dimension => nextDimension => { const nextValue = { ...value }; // Empty strings or undefined may be passed and both represent removing the value. if (!nextDimension) { delete nextValue[dimension]; } else { nextValue[dimension] = nextDimension; } onChange(nextValue); }; return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsx(SingleColumnToolsPanelItem, { label: __('Width'), isShownByDefault: isShownByDefault, hasValue: () => width !== '', onDeselect: onDimensionChange('width'), panelId: panelId, children: /*#__PURE__*/_jsx(UnitControl, { label: __('Width'), placeholder: __('Auto'), labelPosition: "top", units: units, min: 0, value: width, onChange: onDimensionChange('width'), size: "__unstable-large" }) }), /*#__PURE__*/_jsx(SingleColumnToolsPanelItem, { label: __('Height'), isShownByDefault: isShownByDefault, hasValue: () => height !== '', onDeselect: onDimensionChange('height'), panelId: panelId, children: /*#__PURE__*/_jsx(UnitControl, { label: __('Height'), placeholder: __('Auto'), labelPosition: "top", units: units, min: 0, value: height, onChange: onDimensionChange('height'), size: "__unstable-large" }) })] }); } //# sourceMappingURL=width-height-tool.js.map