diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/js/dist/customize-widgets.js --- a/wp/wp-includes/js/dist/customize-widgets.js Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/js/dist/customize-widgets.js Fri Sep 05 18:40:08 2025 +0200 @@ -1,66 +1,82 @@ -/******/ (function() { // webpackBootstrap +/******/ (() => { // webpackBootstrap +/******/ "use strict"; /******/ var __webpack_modules__ = ({ -/***/ 4403: -/***/ (function(module, exports) { +/***/ 7734: +/***/ ((module) => { + + + +// do not edit .js files directly - edit src/index.jst + -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -/* global define */ + var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; -(function () { - 'use strict'; - - var hasOwn = {}.hasOwnProperty; + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } - function classNames() { - var classes = []; - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; + if ((a instanceof Map) && (b instanceof Map)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + for (i of a.entries()) + if (!equal(i[1], b.get(i[0]))) return false; + return true; + } - if (argType === 'string' || argType === 'number') { - classes.push(arg); - } else if (Array.isArray(arg)) { - if (arg.length) { - var inner = classNames.apply(null, arg); - if (inner) { - classes.push(inner); - } - } - } else if (argType === 'object') { - if (arg.toString === Object.prototype.toString) { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes.push(key); - } - } - } else { - classes.push(arg.toString()); - } - } - } + if ((a instanceof Set) && (b instanceof Set)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + return true; + } + + if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (a[i] !== b[i]) return false; + return true; + } + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - return classes.join(' '); - } + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; - if ( true && module.exports) { - classNames.default = classNames; - module.exports = classNames; - } else if (true) { - // register as 'classnames', consistent with npm package name - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { - return classNames; - }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else {} -}()); + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; /***/ }) @@ -93,120 +109,155 @@ /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ -/******/ !function() { +/******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { +/******/ __webpack_require__.n = (module) => { /******/ var getter = module && module.__esModule ? -/******/ function() { return module['default']; } : -/******/ function() { return module; }; +/******/ () => (module['default']) : +/******/ () => (module); /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; -/******/ }(); +/******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ -/******/ !function() { +/******/ (() => { /******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { +/******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; -/******/ }(); +/******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ -/******/ !function() { +/******/ (() => { /******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { +/******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; -/******/ }(); +/******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -!function() { -"use strict"; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { - "initialize": function() { return /* binding */ initialize; } + initialize: () => (/* binding */ initialize), + store: () => (/* reexport */ store) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js var selectors_namespaceObject = {}; __webpack_require__.r(selectors_namespaceObject); __webpack_require__.d(selectors_namespaceObject, { - "__experimentalGetInsertionPoint": function() { return __experimentalGetInsertionPoint; }, - "isInserterOpened": function() { return isInserterOpened; } + __experimentalGetInsertionPoint: () => (__experimentalGetInsertionPoint), + isInserterOpened: () => (isInserterOpened) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js var actions_namespaceObject = {}; __webpack_require__.r(actions_namespaceObject); __webpack_require__.d(actions_namespaceObject, { - "setIsInserterOpened": function() { return setIsInserterOpened; } -}); - -// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js -var store_actions_namespaceObject = {}; -__webpack_require__.r(store_actions_namespaceObject); -__webpack_require__.d(store_actions_namespaceObject, { - "disableComplementaryArea": function() { return disableComplementaryArea; }, - "enableComplementaryArea": function() { return enableComplementaryArea; }, - "pinItem": function() { return pinItem; }, - "setFeatureDefaults": function() { return setFeatureDefaults; }, - "setFeatureValue": function() { return setFeatureValue; }, - "toggleFeature": function() { return toggleFeature; }, - "unpinItem": function() { return unpinItem; } -}); - -// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js -var store_selectors_namespaceObject = {}; -__webpack_require__.r(store_selectors_namespaceObject); -__webpack_require__.d(store_selectors_namespaceObject, { - "getActiveComplementaryArea": function() { return getActiveComplementaryArea; }, - "isFeatureActive": function() { return isFeatureActive; }, - "isItemPinned": function() { return isItemPinned; } + setIsInserterOpened: () => (setIsInserterOpened) }); ;// CONCATENATED MODULE: external ["wp","element"] -var external_wp_element_namespaceObject = window["wp"]["element"]; +const external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: external ["wp","blockLibrary"] -var external_wp_blockLibrary_namespaceObject = window["wp"]["blockLibrary"]; +const external_wp_blockLibrary_namespaceObject = window["wp"]["blockLibrary"]; ;// CONCATENATED MODULE: external ["wp","widgets"] -var external_wp_widgets_namespaceObject = window["wp"]["widgets"]; +const external_wp_widgets_namespaceObject = window["wp"]["widgets"]; ;// CONCATENATED MODULE: external ["wp","blocks"] -var external_wp_blocks_namespaceObject = window["wp"]["blocks"]; +const external_wp_blocks_namespaceObject = window["wp"]["blocks"]; ;// CONCATENATED MODULE: external ["wp","data"] -var external_wp_data_namespaceObject = window["wp"]["data"]; +const external_wp_data_namespaceObject = window["wp"]["data"]; ;// CONCATENATED MODULE: external ["wp","preferences"] -var external_wp_preferences_namespaceObject = window["wp"]["preferences"]; +const external_wp_preferences_namespaceObject = window["wp"]["preferences"]; ;// CONCATENATED MODULE: external ["wp","components"] -var external_wp_components_namespaceObject = window["wp"]["components"]; -;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"] -var external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"]; +const external_wp_components_namespaceObject = window["wp"]["components"]; ;// CONCATENATED MODULE: external ["wp","i18n"] -var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; +const external_wp_i18n_namespaceObject = window["wp"]["i18n"]; ;// CONCATENATED MODULE: external ["wp","blockEditor"] -var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"]; +const external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"]; ;// CONCATENATED MODULE: external ["wp","compose"] -var external_wp_compose_namespaceObject = window["wp"]["compose"]; +const external_wp_compose_namespaceObject = window["wp"]["compose"]; +;// CONCATENATED MODULE: external ["wp","hooks"] +const external_wp_hooks_namespaceObject = window["wp"]["hooks"]; +;// CONCATENATED MODULE: external "ReactJSXRuntime" +const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/error-boundary/index.js +/** + * WordPress dependencies + */ + + + + + +function CopyButton({ + text, + children +}) { + const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, { + variant: "secondary", + ref: ref, + children: children + }); +} +class ErrorBoundary extends external_wp_element_namespaceObject.Component { + constructor() { + super(...arguments); + this.state = { + error: null + }; + } + componentDidCatch(error) { + this.setState({ + error + }); + (0,external_wp_hooks_namespaceObject.doAction)('editor.ErrorBoundary.errorLogged', error); + } + render() { + const { + error + } = this.state; + if (!error) { + return this.props.children; + } + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, { + className: "customize-widgets-error-boundary", + actions: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CopyButton, { + text: error.stack, + children: (0,external_wp_i18n_namespaceObject.__)('Copy Error') + }, "copy-error")], + children: (0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error.') + }); + } +} + +;// CONCATENATED MODULE: external ["wp","coreData"] +const external_wp_coreData_namespaceObject = window["wp"]["coreData"]; +;// CONCATENATED MODULE: external ["wp","mediaUtils"] +const external_wp_mediaUtils_namespaceObject = window["wp"]["mediaUtils"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-inspector-button/index.js /** * WordPress dependencies */ @@ -216,216 +267,152 @@ -function CopyButton(_ref) { - let { - text, - children - } = _ref; - const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { - variant: "secondary", - ref: ref - }, children); +function BlockInspectorButton({ + inspector, + closeMenu, + ...props +}) { + const selectedBlockClientId = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSelectedBlockClientId(), []); + const selectedBlock = (0,external_wp_element_namespaceObject.useMemo)(() => document.getElementById(`block-${selectedBlockClientId}`), [selectedBlockClientId]); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + // Open the inspector. + inspector.open({ + returnFocusWhenClose: selectedBlock + }); + // Then close the dropdown menu. + closeMenu(); + }, + ...props, + children: (0,external_wp_i18n_namespaceObject.__)('Show more settings') + }); } - -class ErrorBoundary extends external_wp_element_namespaceObject.Component { - constructor() { - super(...arguments); - this.state = { - error: null - }; - } - - componentDidCatch(error) { - this.setState({ - error - }); - } - - render() { - const { - error - } = this.state; - - if (!error) { - return this.props.children; - } +/* harmony default export */ const block_inspector_button = (BlockInspectorButton); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, { - className: "customize-widgets-error-boundary", - actions: [(0,external_wp_element_namespaceObject.createElement)(CopyButton, { - key: "copy-error", - text: error.stack - }, (0,external_wp_i18n_namespaceObject.__)('Copy Error'))] - }, (0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error.')); - } - -} - -;// CONCATENATED MODULE: external "lodash" -var external_lodash_namespaceObject = window["lodash"]; -;// CONCATENATED MODULE: external ["wp","coreData"] -var external_wp_coreData_namespaceObject = window["wp"]["coreData"]; -;// CONCATENATED MODULE: external ["wp","mediaUtils"] -var external_wp_mediaUtils_namespaceObject = window["wp"]["mediaUtils"]; -;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js -function _extends() { - _extends = Object.assign ? Object.assign.bind() : function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - return _extends.apply(this, arguments); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-inspector-button/index.js - - - +;// CONCATENATED MODULE: ./node_modules/clsx/dist/clsx.mjs +function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t select(external_wp_blockEditor_namespaceObject.store).getSelectedBlockClientId(), []); - const selectedBlock = (0,external_wp_element_namespaceObject.useMemo)(() => document.getElementById(`block-${selectedBlockClientId}`), [selectedBlockClientId]); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, _extends({ - onClick: () => { - // Open the inspector. - inspector.open({ - returnFocusWhenClose: selectedBlock - }); // Then close the dropdown menu. - - closeMenu(); - } - }, props), (0,external_wp_i18n_namespaceObject.__)('Show more settings')); -} - -/* harmony default export */ var block_inspector_button = (BlockInspectorButton); - -// EXTERNAL MODULE: ./node_modules/classnames/index.js -var classnames = __webpack_require__(4403); -var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); -;// CONCATENATED MODULE: external ["wp","keycodes"] -var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; -;// CONCATENATED MODULE: external ["wp","primitives"] -var external_wp_primitives_namespaceObject = window["wp"]["primitives"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js /** * WordPress dependencies */ -const undo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + +const redo = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z" -})); -/* harmony default export */ var library_undo = (undo); + viewBox: "0 0 24 24", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { + d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z" + }) +}); +/* harmony default export */ const library_redo = (redo); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js /** * WordPress dependencies */ -const redo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + +const plus = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z" -})); -/* harmony default export */ var library_redo = (redo); + viewBox: "0 0 24 24", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { + d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" + }) +}); +/* harmony default export */ const library_plus = (plus); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js /** * WordPress dependencies */ -const plus = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + +const closeSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" -})); -/* harmony default export */ var library_plus = (plus); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js - - -/** - * WordPress dependencies - */ - -const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" -})); -/* harmony default export */ var close_small = (closeSmall); + viewBox: "0 0 24 24", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { + d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" + }) +}); +/* harmony default export */ const close_small = (closeSmall); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/reducer.js /** * WordPress dependencies */ + /** * Reducer tracking whether the inserter is open. * * @param {boolean|Object} state * @param {Object} action */ - -function blockInserterPanel() { - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - let action = arguments.length > 1 ? arguments[1] : undefined; - +function blockInserterPanel(state = false, action) { switch (action.type) { case 'SET_IS_INSERTER_OPENED': return action.value; } - return state; } - -/* harmony default export */ var reducer = ((0,external_wp_data_namespaceObject.combineReducers)({ +/* harmony default export */ const reducer = ((0,external_wp_data_namespaceObject.combineReducers)({ blockInserterPanel })); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js +const EMPTY_INSERTION_POINT = { + rootClientId: undefined, + insertionIndex: undefined +}; + /** * Returns true if the inserter is opened. * * @param {Object} state Global application state. * + * @example + * ```js + * import { store as customizeWidgetsStore } from '@wordpress/customize-widgets'; + * import { __ } from '@wordpress/i18n'; + * import { useSelect } from '@wordpress/data'; + * + * const ExampleComponent = () => { + * const { isInserterOpened } = useSelect( + * ( select ) => select( customizeWidgetsStore ), + * [] + * ); + * + * return isInserterOpened() + * ? __( 'Inserter is open' ) + * : __( 'Inserter is closed.' ); + * }; + * ``` + * * @return {boolean} Whether the inserter is opened. */ function isInserterOpened(state) { return !!state.blockInserterPanel; } + /** * Get the insertion point for the inserter. * @@ -433,16 +420,11 @@ * * @return {Object} The root client ID and index to insert at. */ - function __experimentalGetInsertionPoint(state) { - const { - rootClientId, - insertionIndex - } = state.blockInserterPanel; - return { - rootClientId, - insertionIndex - }; + if (typeof state.blockInserterPanel === 'boolean') { + return EMPTY_INSERTION_POINT; + } + return state.blockInserterPanel; } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js @@ -456,6 +438,31 @@ * @param {string} value.rootClientId The root client ID to insert at. * @param {number} value.insertionIndex The index to insert at. * + * @example + * ```js + * import { useState } from 'react'; + * import { store as customizeWidgetsStore } from '@wordpress/customize-widgets'; + * import { __ } from '@wordpress/i18n'; + * import { useDispatch } from '@wordpress/data'; + * import { Button } from '@wordpress/components'; + * + * const ExampleComponent = () => { + * const { setIsInserterOpened } = useDispatch( customizeWidgetsStore ); + * const [ isOpen, setIsOpen ] = useState( false ); + * + * return ( + * + * ); + * }; + * ``` + * * @return {Object} Action object. */ function setIsInserterOpened(value) { @@ -476,6 +483,7 @@ * WordPress dependencies */ + /** * Internal dependencies */ @@ -491,12 +499,12 @@ * * @type {Object} */ - const storeConfig = { reducer: reducer, selectors: selectors_namespaceObject, actions: actions_namespaceObject }; + /** * Store definition for the edit widgets namespace. * @@ -504,13 +512,10 @@ * * @type {Object} */ - const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, storeConfig); (0,external_wp_data_namespaceObject.register)(store); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/index.js - - /** * WordPress dependencies */ @@ -520,378 +525,78 @@ + /** * Internal dependencies */ -function Inserter(_ref) { - let { - setIsOpened - } = _ref; +function Inserter({ + setIsOpened +}) { const inserterTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(Inserter, 'customize-widget-layout__inserter-panel-title'); const insertionPoint = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).__experimentalGetInsertionPoint(), []); - return (0,external_wp_element_namespaceObject.createElement)("div", { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { className: "customize-widgets-layout__inserter-panel", - "aria-labelledby": inserterTitleId - }, (0,external_wp_element_namespaceObject.createElement)("div", { - className: "customize-widgets-layout__inserter-panel-header" - }, (0,external_wp_element_namespaceObject.createElement)("h2", { - id: inserterTitleId, - className: "customize-widgets-layout__inserter-panel-header-title" - }, (0,external_wp_i18n_namespaceObject.__)('Add a block')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { - className: "customize-widgets-layout__inserter-panel-header-close-button", - icon: close_small, - onClick: () => setIsOpened(false), - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close inserter') - })), (0,external_wp_element_namespaceObject.createElement)("div", { - className: "customize-widgets-layout__inserter-panel-content" - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLibrary, { - rootClientId: insertionPoint.rootClientId, - __experimentalInsertionIndex: insertionPoint.insertionIndex, - showInserterHelpPanel: true, - onSelect: () => setIsOpened(false) - }))); + "aria-labelledby": inserterTitleId, + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { + className: "customize-widgets-layout__inserter-panel-header", + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", { + id: inserterTitleId, + className: "customize-widgets-layout__inserter-panel-header-title", + children: (0,external_wp_i18n_namespaceObject.__)('Add a block') + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, { + className: "customize-widgets-layout__inserter-panel-header-close-button", + icon: close_small, + onClick: () => setIsOpened(false), + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Close inserter') + })] + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { + className: "customize-widgets-layout__inserter-panel-content", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalLibrary, { + rootClientId: insertionPoint.rootClientId, + __experimentalInsertionIndex: insertionPoint.insertionIndex, + showInserterHelpPanel: true, + onSelect: () => setIsOpened(false) + }) + })] + }); } - -/* harmony default export */ var components_inserter = (Inserter); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js - - -/** - * WordPress dependencies - */ - -const external = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z" -})); -/* harmony default export */ var library_external = (external); +/* harmony default export */ const components_inserter = (Inserter); ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js - - -/** - * WordPress dependencies - */ - -const moreVertical = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" -})); -/* harmony default export */ var more_vertical = (moreVertical); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-dropdown/index.js - - -/** - * External dependencies - */ - -/** - * WordPress dependencies - */ - - - - -function MoreMenuDropdown(_ref) { - let { - as: DropdownComponent = external_wp_components_namespaceObject.DropdownMenu, - className, - - /* translators: button label text should, if possible, be under 16 characters. */ - label = (0,external_wp_i18n_namespaceObject.__)('Options'), - popoverProps, - toggleProps, - children - } = _ref; - return (0,external_wp_element_namespaceObject.createElement)(DropdownComponent, { - className: classnames_default()('interface-more-menu-dropdown', className), - icon: more_vertical, - label: label, - popoverProps: { - position: 'bottom left', - ...popoverProps, - className: classnames_default()('interface-more-menu-dropdown__content', popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.className) - }, - toggleProps: { - tooltipPosition: 'bottom', - ...toggleProps - } - }, onClose => children(onClose)); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/index.js - - - - - - - - - - - - - -;// CONCATENATED MODULE: external ["wp","deprecated"] -var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"]; -var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject); -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/actions.js /** * WordPress dependencies */ -/** - * Enable the complementary area. - * - * @param {string} scope Complementary area scope. - * @param {string} area Area identifier. - */ - -const enableComplementaryArea = (scope, area) => _ref => { - let { - registry - } = _ref; - - // Return early if there's no area. - if (!area) { - return; - } - - registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'complementaryArea', area); -}; -/** - * Disable the complementary area. - * - * @param {string} scope Complementary area scope. - */ - -const disableComplementaryArea = scope => _ref2 => { - let { - registry - } = _ref2; - registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'complementaryArea', null); -}; -/** - * Pins an item. - * - * @param {string} scope Item scope. - * @param {string} item Item identifier. - * - * @return {Object} Action object. - */ - -const pinItem = (scope, item) => _ref3 => { - let { - registry - } = _ref3; - - // Return early if there's no item. - if (!item) { - return; - } - - const pinnedItems = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems'); // The item is already pinned, there's nothing to do. - - if ((pinnedItems === null || pinnedItems === void 0 ? void 0 : pinnedItems[item]) === true) { - return; - } - - registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'pinnedItems', { ...pinnedItems, - [item]: true - }); -}; -/** - * Unpins an item. - * - * @param {string} scope Item scope. - * @param {string} item Item identifier. - */ - -const unpinItem = (scope, item) => _ref4 => { - let { - registry - } = _ref4; +const moreVertical = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { + d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" + }) +}); +/* harmony default export */ const more_vertical = (moreVertical); - // Return early if there's no item. - if (!item) { - return; - } - - const pinnedItems = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems'); - registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'pinnedItems', { ...pinnedItems, - [item]: false - }); -}; -/** - * Returns an action object used in signalling that a feature should be toggled. - * - * @param {string} scope The feature scope (e.g. core/edit-post). - * @param {string} featureName The feature name. - */ - -function toggleFeature(scope, featureName) { - return function (_ref5) { - let { - registry - } = _ref5; - external_wp_deprecated_default()(`dispatch( 'core/interface' ).toggleFeature`, { - since: '6.0', - alternative: `dispatch( 'core/preferences' ).toggle` - }); - registry.dispatch(external_wp_preferences_namespaceObject.store).toggle(scope, featureName); - }; -} -/** - * Returns an action object used in signalling that a feature should be set to - * a true or false value - * - * @param {string} scope The feature scope (e.g. core/edit-post). - * @param {string} featureName The feature name. - * @param {boolean} value The value to set. - * - * @return {Object} Action object. - */ - -function setFeatureValue(scope, featureName, value) { - return function (_ref6) { - let { - registry - } = _ref6; - external_wp_deprecated_default()(`dispatch( 'core/interface' ).setFeatureValue`, { - since: '6.0', - alternative: `dispatch( 'core/preferences' ).set` - }); - registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, featureName, !!value); - }; -} -/** - * Returns an action object used in signalling that defaults should be set for features. - * - * @param {string} scope The feature scope (e.g. core/edit-post). - * @param {Object} defaults A key/value map of feature names to values. - * - * @return {Object} Action object. - */ - -function setFeatureDefaults(scope, defaults) { - return function (_ref7) { - let { - registry - } = _ref7; - external_wp_deprecated_default()(`dispatch( 'core/interface' ).setFeatureDefaults`, { - since: '6.0', - alternative: `dispatch( 'core/preferences' ).setDefaults` - }); - registry.dispatch(external_wp_preferences_namespaceObject.store).setDefaults(scope, defaults); - }; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/selectors.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js /** * WordPress dependencies */ - -/** - * Returns the complementary area that is active in a given scope. - * - * @param {Object} state Global application state. - * @param {string} scope Item scope. - * - * @return {string} The complementary area that is active in the given scope. - */ - -const getActiveComplementaryArea = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope) => { - return select(external_wp_preferences_namespaceObject.store).get(scope, 'complementaryArea'); +const external = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, { + d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" + }) }); -/** - * Returns a boolean indicating if an item is pinned or not. - * - * @param {Object} state Global application state. - * @param {string} scope Scope. - * @param {string} item Item to check. - * - * @return {boolean} True if the item is pinned and false otherwise. - */ - -const isItemPinned = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope, item) => { - var _pinnedItems$item; - - const pinnedItems = select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems'); - return (_pinnedItems$item = pinnedItems === null || pinnedItems === void 0 ? void 0 : pinnedItems[item]) !== null && _pinnedItems$item !== void 0 ? _pinnedItems$item : true; -}); -/** - * Returns a boolean indicating whether a feature is active for a particular - * scope. - * - * @param {Object} state The store state. - * @param {string} scope The scope of the feature (e.g. core/edit-post). - * @param {string} featureName The name of the feature. - * - * @return {boolean} Is the feature enabled? - */ +/* harmony default export */ const library_external = (external); -const isFeatureActive = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope, featureName) => { - external_wp_deprecated_default()(`select( 'core/interface' ).isFeatureActive( scope, featureName )`, { - since: '6.0', - alternative: `select( 'core/preferences' ).get( scope, featureName )` - }); - return !!select(external_wp_preferences_namespaceObject.store).get(scope, featureName); -}); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/constants.js -/** - * The identifier for the data store. - * - * @type {string} - */ -const constants_STORE_NAME = 'core/interface'; - -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/index.js -/** - * WordPress dependencies - */ - -/** - * Internal dependencies - */ - - - - -/** - * Store definition for the interface namespace. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore - * - * @type {Object} - */ - -const store_store = (0,external_wp_data_namespaceObject.createReduxStore)(constants_STORE_NAME, { - reducer: () => {}, - actions: store_actions_namespaceObject, - selectors: store_selectors_namespaceObject -}); // Once we build a more generic persistence plugin that works across types of stores -// we'd be able to replace this with a register call. - -(0,external_wp_data_namespaceObject.register)(store_store); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/index.js - - - +;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"] +const external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.js /** * WordPress dependencies @@ -923,19 +628,52 @@ description: (0,external_wp_i18n_namespaceObject.__)('Remove a link.') }, { keyCombination: { + character: '[[' + }, + description: (0,external_wp_i18n_namespaceObject.__)('Insert a link to a post or page.') +}, { + keyCombination: { modifier: 'primary', character: 'u' }, description: (0,external_wp_i18n_namespaceObject.__)('Underline the selected text.') +}, { + keyCombination: { + modifier: 'access', + character: 'd' + }, + description: (0,external_wp_i18n_namespaceObject.__)('Strikethrough the selected text.') +}, { + keyCombination: { + modifier: 'access', + character: 'x' + }, + description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text inline code.') +}, { + keyCombination: { + modifier: 'access', + character: '0' + }, + aliases: [{ + modifier: 'access', + character: '7' + }], + description: (0,external_wp_i18n_namespaceObject.__)('Convert the current heading to a paragraph.') +}, { + keyCombination: { + modifier: 'access', + character: '1-6' + }, + description: (0,external_wp_i18n_namespaceObject.__)('Convert the current paragraph or heading to a heading of level 1 to 6.') +}, { + keyCombination: { + modifier: 'primaryShift', + character: 'SPACE' + }, + description: (0,external_wp_i18n_namespaceObject.__)('Add non breaking space.') }]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js - - -/** - * External dependencies - */ - /** * WordPress dependencies */ @@ -943,71 +681,68 @@ -function KeyCombination(_ref) { - let { - keyCombination, - forceAriaLabel - } = _ref; + +function KeyCombination({ + keyCombination, + forceAriaLabel +}) { const shortcut = keyCombination.modifier ? external_wp_keycodes_namespaceObject.displayShortcutList[keyCombination.modifier](keyCombination.character) : keyCombination.character; const ariaLabel = keyCombination.modifier ? external_wp_keycodes_namespaceObject.shortcutAriaLabel[keyCombination.modifier](keyCombination.character) : keyCombination.character; - return (0,external_wp_element_namespaceObject.createElement)("kbd", { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("kbd", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination", - "aria-label": forceAriaLabel || ariaLabel - }, (0,external_lodash_namespaceObject.castArray)(shortcut).map((character, index) => { - if (character === '+') { - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, { - key: index - }, character); - } - - return (0,external_wp_element_namespaceObject.createElement)("kbd", { - key: index, - className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key" - }, character); - })); + "aria-label": forceAriaLabel || ariaLabel, + children: (Array.isArray(shortcut) ? shortcut : [shortcut]).map((character, index) => { + if (character === '+') { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.Fragment, { + children: character + }, index); + } + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("kbd", { + className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key", + children: character + }, index); + }) + }); } - -function Shortcut(_ref2) { - let { - description, - keyCombination, - aliases = [], - ariaLabel - } = _ref2; - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { - className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description" - }, description), (0,external_wp_element_namespaceObject.createElement)("div", { - className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term" - }, (0,external_wp_element_namespaceObject.createElement)(KeyCombination, { - keyCombination: keyCombination, - forceAriaLabel: ariaLabel - }), aliases.map((alias, index) => (0,external_wp_element_namespaceObject.createElement)(KeyCombination, { - keyCombination: alias, - forceAriaLabel: ariaLabel, - key: index - })))); +function Shortcut({ + description, + keyCombination, + aliases = [], + ariaLabel +}) { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { + className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description", + children: description + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { + className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term", + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyCombination, { + keyCombination: keyCombination, + forceAriaLabel: ariaLabel + }), aliases.map((alias, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyCombination, { + keyCombination: alias, + forceAriaLabel: ariaLabel + }, index))] + })] + }); } - -/* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut); +/* harmony default export */ const keyboard_shortcut_help_modal_shortcut = (Shortcut); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js - - /** * WordPress dependencies */ + /** * Internal dependencies */ - -function DynamicShortcut(_ref) { - let { - name - } = _ref; +function DynamicShortcut({ + name +}) { const { keyCombination, description, @@ -1024,23 +759,18 @@ description: getShortcutDescription(name) }; }, [name]); - if (!keyCombination) { return null; } - - return (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcut_help_modal_shortcut, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal_shortcut, { keyCombination: keyCombination, description: description, aliases: aliases }); } - -/* harmony default export */ var dynamic_shortcut = (DynamicShortcut); +/* harmony default export */ const dynamic_shortcut = (DynamicShortcut); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.js - - /** * External dependencies */ @@ -1062,66 +792,58 @@ -const ShortcutList = _ref => { - let { - shortcuts - } = _ref; - return ( - /* - * Disable reason: The `list` ARIA role is redundant but - * Safari+VoiceOver won't announce the list otherwise. - */ - - /* eslint-disable jsx-a11y/no-redundant-roles */ - (0,external_wp_element_namespaceObject.createElement)("ul", { - className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list", - role: "list" - }, shortcuts.map((shortcut, index) => (0,external_wp_element_namespaceObject.createElement)("li", { - className: "customize-widgets-keyboard-shortcut-help-modal__shortcut", - key: index - }, (0,external_lodash_namespaceObject.isString)(shortcut) ? (0,external_wp_element_namespaceObject.createElement)(dynamic_shortcut, { +const ShortcutList = ({ + shortcuts +}) => +/*#__PURE__*/ +/* + * Disable reason: The `list` ARIA role is redundant but + * Safari+VoiceOver won't announce the list otherwise. + */ +/* eslint-disable jsx-a11y/no-redundant-roles */ +(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", { + className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list", + role: "list", + children: shortcuts.map((shortcut, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", { + className: "customize-widgets-keyboard-shortcut-help-modal__shortcut", + children: typeof shortcut === 'string' ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(dynamic_shortcut, { name: shortcut - }) : (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcut_help_modal_shortcut, shortcut)))) - /* eslint-enable jsx-a11y/no-redundant-roles */ - - ); -}; - -const ShortcutSection = _ref2 => { - let { - title, - shortcuts, - className - } = _ref2; - return (0,external_wp_element_namespaceObject.createElement)("section", { - className: classnames_default()('customize-widgets-keyboard-shortcut-help-modal__section', className) - }, !!title && (0,external_wp_element_namespaceObject.createElement)("h2", { - className: "customize-widgets-keyboard-shortcut-help-modal__section-title" - }, title), (0,external_wp_element_namespaceObject.createElement)(ShortcutList, { + }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal_shortcut, { + ...shortcut + }) + }, index)) +}) +/* eslint-enable jsx-a11y/no-redundant-roles */; +const ShortcutSection = ({ + title, + shortcuts, + className +}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("section", { + className: dist_clsx('customize-widgets-keyboard-shortcut-help-modal__section', className), + children: [!!title && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", { + className: "customize-widgets-keyboard-shortcut-help-modal__section-title", + children: title + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutList, { shortcuts: shortcuts - })); -}; - -const ShortcutCategorySection = _ref3 => { - let { - title, - categoryName, - additionalShortcuts = [] - } = _ref3; + })] +}); +const ShortcutCategorySection = ({ + title, + categoryName, + additionalShortcuts = [] +}) => { const categoryShortcuts = (0,external_wp_data_namespaceObject.useSelect)(select => { return select(external_wp_keyboardShortcuts_namespaceObject.store).getCategoryShortcuts(categoryName); }, [categoryName]); - return (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, { title: title, shortcuts: categoryShortcuts.concat(additionalShortcuts) }); }; - -function KeyboardShortcutHelpModal(_ref4) { - let { - isModalActive, - toggleModal - } = _ref4; +function KeyboardShortcutHelpModal({ + isModalActive, + toggleModal +}) { const { registerShortcut } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store); @@ -1135,46 +857,41 @@ } }); (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/keyboard-shortcuts', toggleModal); - if (!isModalActive) { return null; } - - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, { className: "customize-widgets-keyboard-shortcut-help-modal", title: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts'), - closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close'), - onRequestClose: toggleModal - }, (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, { - className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts", - shortcuts: ['core/customize-widgets/keyboard-shortcuts'] - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutCategorySection, { - title: (0,external_wp_i18n_namespaceObject.__)('Global shortcuts'), - categoryName: "global" - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutCategorySection, { - title: (0,external_wp_i18n_namespaceObject.__)('Selection shortcuts'), - categoryName: "selection" - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutCategorySection, { - title: (0,external_wp_i18n_namespaceObject.__)('Block shortcuts'), - categoryName: "block", - additionalShortcuts: [{ - keyCombination: { - character: '/' - }, - description: (0,external_wp_i18n_namespaceObject.__)('Change the block type after adding a new paragraph.'), - - /* translators: The forward-slash character. e.g. '/'. */ - ariaLabel: (0,external_wp_i18n_namespaceObject.__)('Forward-slash') - }] - }), (0,external_wp_element_namespaceObject.createElement)(ShortcutSection, { - title: (0,external_wp_i18n_namespaceObject.__)('Text formatting'), - shortcuts: textFormattingShortcuts - })); + onRequestClose: toggleModal, + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, { + className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts", + shortcuts: ['core/customize-widgets/keyboard-shortcuts'] + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, { + title: (0,external_wp_i18n_namespaceObject.__)('Global shortcuts'), + categoryName: "global" + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, { + title: (0,external_wp_i18n_namespaceObject.__)('Selection shortcuts'), + categoryName: "selection" + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, { + title: (0,external_wp_i18n_namespaceObject.__)('Block shortcuts'), + categoryName: "block", + additionalShortcuts: [{ + keyCombination: { + character: '/' + }, + description: (0,external_wp_i18n_namespaceObject.__)('Change the block type after adding a new paragraph.'), + /* translators: The forward-slash character. e.g. '/'. */ + ariaLabel: (0,external_wp_i18n_namespaceObject.__)('Forward-slash') + }] + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, { + title: (0,external_wp_i18n_namespaceObject.__)('Text formatting'), + shortcuts: textFormattingShortcuts + })] + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/index.js - - /** * WordPress dependencies */ @@ -1191,66 +908,84 @@ */ + + function MoreMenu() { const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = (0,external_wp_element_namespaceObject.useState)(false); - const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive); - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(MoreMenuDropdown, { - as: external_wp_components_namespaceObject.ToolbarDropdownMenu - }, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject._x)('View', 'noun') - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { - scope: "core/customize-widgets", - name: "fixedToolbar", - label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar'), - info: (0,external_wp_i18n_namespaceObject.__)('Access all block and document tools in a single place'), - messageActivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar activated'), - messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar deactivated') - })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Tools') - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => { - setIsKeyboardShortcutsModalVisible(true); - }, - shortcut: external_wp_keycodes_namespaceObject.displayShortcut.access('h') - }, (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts')), (0,external_wp_element_namespaceObject.createElement)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { - scope: "core/customize-widgets", - name: "welcomeGuide", - label: (0,external_wp_i18n_namespaceObject.__)('Welcome Guide') - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { - role: "menuitem", - icon: library_external, - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/block-based-widgets-editor/'), - target: "_blank", - rel: "noopener noreferrer" - }, (0,external_wp_i18n_namespaceObject.__)('Help'), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "span" - }, - /* translators: accessibility text */ - (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)')))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Preferences') - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { - scope: "core/customize-widgets", - name: "keepCaretInsideBlock", - label: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block'), - info: (0,external_wp_i18n_namespaceObject.__)('Aids screen readers by stopping text caret from leaving blocks.'), - messageActivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block activated'), - messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block deactivated') - })))), (0,external_wp_element_namespaceObject.createElement)(KeyboardShortcutHelpModal, { - isModalActive: isKeyboardShortcutsModalActive, - toggleModal: toggleKeyboardShortcutsModal - })); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { + icon: more_vertical, + label: (0,external_wp_i18n_namespaceObject.__)('Options'), + popoverProps: { + placement: 'bottom-end', + className: 'more-menu-dropdown__content' + }, + toggleProps: { + tooltipPosition: 'bottom', + size: 'compact' + }, + children: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject._x)('View', 'noun'), + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { + scope: "core/customize-widgets", + name: "fixedToolbar", + label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar'), + info: (0,external_wp_i18n_namespaceObject.__)('Access all block and document tools in a single place'), + messageActivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar activated'), + messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar deactivated') + }) + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Tools'), + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + setIsKeyboardShortcutsModalVisible(true); + }, + shortcut: external_wp_keycodes_namespaceObject.displayShortcut.access('h'), + children: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts') + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { + scope: "core/customize-widgets", + name: "welcomeGuide", + label: (0,external_wp_i18n_namespaceObject.__)('Welcome Guide') + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuItem, { + role: "menuitem", + icon: library_external, + href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/block-based-widgets-editor/'), + target: "_blank", + rel: "noopener noreferrer", + children: [(0,external_wp_i18n_namespaceObject.__)('Help'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "span", + children: /* translators: accessibility text */ + (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)') + })] + })] + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Preferences'), + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, { + scope: "core/customize-widgets", + name: "keepCaretInsideBlock", + label: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block'), + info: (0,external_wp_i18n_namespaceObject.__)('Aids screen readers by stopping text caret from leaving blocks.'), + messageActivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block activated'), + messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block deactivated') + }) + })] + }) + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyboardShortcutHelpModal, { + isModalActive: isKeyboardShortcutsModalActive, + toggleModal: toggleKeyboardShortcutsModal + })] + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/header/index.js - - /** * External dependencies */ + /** * WordPress dependencies */ @@ -1268,66 +1003,70 @@ -function Header(_ref) { - let { - sidebar, - inserter, - isInserterOpened, - setIsInserterOpened, - isFixedToolbarActive - } = _ref; + +function Header({ + sidebar, + inserter, + isInserterOpened, + setIsInserterOpened, + isFixedToolbarActive +}) { const [[hasUndo, hasRedo], setUndoRedo] = (0,external_wp_element_namespaceObject.useState)([sidebar.hasUndo(), sidebar.hasRedo()]); + const shortcut = (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('z') : external_wp_keycodes_namespaceObject.displayShortcut.primary('y'); (0,external_wp_element_namespaceObject.useEffect)(() => { return sidebar.subscribeHistory(() => { setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]); }); }, [sidebar]); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { - className: classnames_default()('customize-widgets-header', { - 'is-fixed-toolbar-active': isFixedToolbarActive - }) - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.NavigableToolbar, { - className: "customize-widgets-header-toolbar", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Document tools') - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_undo : library_redo - /* translators: button label text should, if possible, be under 16 characters. */ - , - label: (0,external_wp_i18n_namespaceObject.__)('Undo'), - shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('z') // If there are no undo levels we don't want to actually disable this - // button, because it will remove focus for keyboard users. - // See: https://github.com/WordPress/gutenberg/issues/3486 - , - "aria-disabled": !hasUndo, - onClick: sidebar.undo, - className: "customize-widgets-editor-history-button undo-button" - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_redo : library_undo - /* translators: button label text should, if possible, be under 16 characters. */ - , - label: (0,external_wp_i18n_namespaceObject.__)('Redo'), - shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('z') // If there are no undo levels we don't want to actually disable this - // button, because it will remove focus for keyboard users. - // See: https://github.com/WordPress/gutenberg/issues/3486 - , - "aria-disabled": !hasRedo, - onClick: sidebar.redo, - className: "customize-widgets-editor-history-button redo-button" - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - className: "customize-widgets-header-toolbar__inserter-toggle", - isPressed: isInserterOpened, - variant: "primary", - icon: library_plus, - label: (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'), - onClick: () => { - setIsInserterOpened(isOpen => !isOpen); - } - }), (0,external_wp_element_namespaceObject.createElement)(MoreMenu, null))), (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(components_inserter, { - setIsOpened: setIsInserterOpened - }), inserter.contentContainer[0])); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { + className: dist_clsx('customize-widgets-header', { + 'is-fixed-toolbar-active': isFixedToolbarActive + }), + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.NavigableToolbar, { + className: "customize-widgets-header-toolbar", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Document tools'), + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, { + icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_undo : library_redo + /* translators: button label text should, if possible, be under 16 characters. */, + label: (0,external_wp_i18n_namespaceObject.__)('Undo'), + shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('z') + // If there are no undo levels we don't want to actually disable this + // button, because it will remove focus for keyboard users. + // See: https://github.com/WordPress/gutenberg/issues/3486 + , + "aria-disabled": !hasUndo, + onClick: sidebar.undo, + className: "customize-widgets-editor-history-button undo-button" + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, { + icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_redo : library_undo + /* translators: button label text should, if possible, be under 16 characters. */, + label: (0,external_wp_i18n_namespaceObject.__)('Redo'), + shortcut: shortcut + // If there are no undo levels we don't want to actually disable this + // button, because it will remove focus for keyboard users. + // See: https://github.com/WordPress/gutenberg/issues/3486 + , + "aria-disabled": !hasRedo, + onClick: sidebar.redo, + className: "customize-widgets-editor-history-button redo-button" + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, { + className: "customize-widgets-header-toolbar__inserter-toggle", + isPressed: isInserterOpened, + variant: "primary", + icon: library_plus, + label: (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'), + onClick: () => { + setIsInserterOpened(isOpen => !isOpen); + } + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MoreMenu, {})] + }) + }), (0,external_wp_element_namespaceObject.createPortal)( /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(components_inserter, { + setIsOpened: setIsInserterOpened + }), inserter.contentContainer[0])] + }); } - -/* harmony default export */ var header = (Header); +/* harmony default export */ const header = (Header); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/use-inserter.js /** @@ -1335,11 +1074,11 @@ */ + /** * Internal dependencies */ - function useInserter(inserter) { const isInserterOpened = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isInserterOpened(), []); const { @@ -1354,30 +1093,26 @@ }, [inserter, isInserterOpened]); return [isInserterOpened, (0,external_wp_element_namespaceObject.useCallback)(updater => { let isOpen = updater; - if (typeof updater === 'function') { isOpen = updater((0,external_wp_data_namespaceObject.select)(store).isInserterOpened()); } - setIsInserterOpened(isOpen); }, [setIsInserterOpened])]; } +// EXTERNAL MODULE: ./node_modules/fast-deep-equal/es6/index.js +var es6 = __webpack_require__(7734); +var es6_default = /*#__PURE__*/__webpack_require__.n(es6); ;// CONCATENATED MODULE: external ["wp","isShallowEqual"] -var external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"]; +const external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"]; var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/utils.js // @ts-check - /** * WordPress dependencies */ -/** - * External dependencies - */ - /** * Convert settingId to widgetId. @@ -1385,18 +1120,16 @@ * @param {string} settingId The setting id. * @return {string} The widget id. */ - function settingIdToWidgetId(settingId) { const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/); - if (matches) { const idBase = matches[1]; const number = parseInt(matches[2], 10); return `${idBase}-${number}`; } - return settingId; } + /** * Transform a block to a customizable widget. * @@ -1404,12 +1137,9 @@ * @param {Object} existingWidget The widget to be extended from. * @return {Object} The transformed widget. */ - -function blockToWidget(block) { - let existingWidget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; +function blockToWidget(block, existingWidget = null) { let widget; const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance); - if (isValidLegacyWidgetBlock) { if (block.attributes.id) { // Widget that does not extend WP_Widget. @@ -1422,11 +1152,13 @@ hash, raw, ...rest - } = block.attributes.instance; // Widget that extends WP_Widget. + } = block.attributes.instance; + // Widget that extends WP_Widget. widget = { idBase: block.attributes.idBase, - instance: { ...(existingWidget === null || existingWidget === void 0 ? void 0 : existingWidget.instance), + instance: { + ...existingWidget?.instance, // Required only for the customizer. is_widget_customizer_js_value: true, encoded_serialized_instance: encoded, @@ -1448,11 +1180,17 @@ } }; } - - return { ...(0,external_lodash_namespaceObject.omit)(existingWidget, ['form', 'rendered']), + const { + form, + rendered, + ...restExistingWidget + } = existingWidget || {}; + return { + ...restExistingWidget, ...widget }; } + /** * Transform a widget to a block. * @@ -1463,14 +1201,12 @@ * @param {Object} widget.instance The instance of the widget. * @return {WPBlock} The transformed block. */ - -function widgetToBlock(_ref) { - let { - id, - idBase, - number, - instance - } = _ref; +function widgetToBlock({ + id, + idBase, + number, + instance +}) { let block; const { encoded_serialized_instance: encoded, @@ -1478,9 +1214,11 @@ raw_instance: raw, ...rest } = instance; - if (idBase === 'block') { - const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)(raw.content); + var _raw$content; + const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)((_raw$content = raw.content) !== null && _raw$content !== void 0 ? _raw$content : '', { + __unstableSkipAutop: true + }); block = parsedBlocks.length ? parsedBlocks[0] : (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {}); } else if (number) { // Widget that extends WP_Widget. @@ -1499,7 +1237,6 @@ id }); } - return (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(block, id); } @@ -1508,6 +1245,7 @@ * External dependencies */ + /** * WordPress dependencies */ @@ -1519,12 +1257,9 @@ * Internal dependencies */ - - function widgetsToBlocks(widgets) { return widgets.map(widget => widgetToBlock(widget)); } - function useSidebarBlockEditor(sidebar) { const [blocks, setBlocks] = (0,external_wp_element_namespaceObject.useState)(() => widgetsToBlocks(sidebar.getWidgets())); (0,external_wp_element_namespaceObject.useEffect)(() => { @@ -1533,19 +1268,19 @@ const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget])); const prevBlocksMap = new Map(prevBlocks.map(block => [(0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block), block])); const nextBlocks = nextWidgets.map(nextWidget => { - const prevWidget = prevWidgetsMap.get(nextWidget.id); // Bail out updates. + const prevWidget = prevWidgetsMap.get(nextWidget.id); + // Bail out updates. if (prevWidget && prevWidget === nextWidget) { return prevBlocksMap.get(nextWidget.id); } + return widgetToBlock(nextWidget); + }); - return widgetToBlock(nextWidget); - }); // Bail out updates. - + // Bail out updates. if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) { return prevBlocks; } - return nextBlocks; }); }); @@ -1555,45 +1290,42 @@ if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) { return prevBlocks; } - const prevBlocksMap = new Map(prevBlocks.map(block => [(0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block), block])); const nextWidgets = nextBlocks.map(nextBlock => { - const widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(nextBlock); // Update existing widgets. + const widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(nextBlock); + // Update existing widgets. if (widgetId && prevBlocksMap.has(widgetId)) { const prevBlock = prevBlocksMap.get(widgetId); - const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets. + const prevWidget = sidebar.getWidget(widgetId); + + // Bail out updates by returning the previous widgets. // Deep equality is necessary until the block editor's internals changes. - - if ((0,external_lodash_namespaceObject.isEqual)(nextBlock, prevBlock) && prevWidget) { + if (es6_default()(nextBlock, prevBlock) && prevWidget) { return prevWidget; } - return blockToWidget(nextBlock, prevWidget); - } // Add a new widget. + } - + // Add a new widget. return blockToWidget(nextBlock); - }); // Bail out updates if the updated widgets are the same. + }); + // Bail out updates if the updated widgets are the same. if (external_wp_isShallowEqual_default()(sidebar.getWidgets(), nextWidgets)) { return prevBlocks; } - const addedWidgetIds = sidebar.setWidgets(nextWidgets); return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => { const addedWidgetId = addedWidgetIds[index]; - if (addedWidgetId !== null) { // Only create a new instance if necessary to prevent // the whole editor from re-rendering on every edit. if (updatedNextBlocks === nextBlocks) { updatedNextBlocks = nextBlocks.slice(); } - updatedNextBlocks[index] = (0,external_wp_widgets_namespaceObject.addWidgetIdToBlock)(nextBlock, addedWidgetId); } - return updatedNextBlocks; }, nextBlocks); }); @@ -1602,31 +1334,28 @@ } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/index.js - - /** * WordPress dependencies */ + /** * Internal dependencies */ const FocusControlContext = (0,external_wp_element_namespaceObject.createContext)(); -function FocusControl(_ref) { - let { - api, - sidebarControls, - children - } = _ref; +function FocusControl({ + api, + sidebarControls, + children +}) { const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0,external_wp_element_namespaceObject.useState)({ current: null }); const focusWidget = (0,external_wp_element_namespaceObject.useCallback)(widgetId => { for (const sidebarControl of sidebarControls) { const widgets = sidebarControl.setting.get(); - if (widgets.includes(widgetId)) { sidebarControl.sectionInstance.expand({ // Schedule it after the complete callback so that @@ -1638,7 +1367,6 @@ current: widgetId }); } - }); break; } @@ -1649,21 +1377,24 @@ const widgetId = settingIdToWidgetId(settingId); focusWidget(widgetId); } - + let previewBound = false; function handleReady() { api.previewer.preview.bind('focus-control-for-setting', handleFocus); + previewBound = true; } - api.previewer.bind('ready', handleReady); return () => { api.previewer.unbind('ready', handleReady); - api.previewer.preview.unbind('focus-control-for-setting', handleFocus); + if (previewBound) { + api.previewer.preview.unbind('focus-control-for-setting', handleFocus); + } }; }, [api, focusWidget]); const context = (0,external_wp_element_namespaceObject.useMemo)(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]); - return (0,external_wp_element_namespaceObject.createElement)(FocusControlContext.Provider, { - value: context - }, children); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FocusControlContext.Provider, { + value: context, + children: children + }); } const useFocusControl = () => (0,external_wp_element_namespaceObject.useContext)(FocusControlContext); @@ -1675,11 +1406,11 @@ + /** * Internal dependencies */ - function useBlocksFocusControl(blocks) { const { selectBlock @@ -1692,52 +1423,64 @@ (0,external_wp_element_namespaceObject.useEffect)(() => { if (focusedWidgetIdRef.current) { const focusedBlock = blocksRef.current.find(block => (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(block) === focusedWidgetIdRef.current); - if (focusedBlock) { - selectBlock(focusedBlock.clientId); // If the block is already being selected, the DOM node won't + selectBlock(focusedBlock.clientId); + // If the block is already being selected, the DOM node won't // get focused again automatically. // We select the DOM and focus it manually here. - const blockNode = document.querySelector(`[data-block="${focusedBlock.clientId}"]`); - blockNode === null || blockNode === void 0 ? void 0 : blockNode.focus(); + blockNode?.focus(); } } }, [focusedWidgetIdRef, selectBlock]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.js - - +;// CONCATENATED MODULE: external ["wp","privateApis"] +const external_wp_privateApis_namespaceObject = window["wp"]["privateApis"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/lock-unlock.js /** * WordPress dependencies */ +const { + lock, + unlock +} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/customize-widgets'); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.js +/** + * WordPress dependencies + */ + + /** * Internal dependencies */ -function SidebarEditorProvider(_ref) { - let { - sidebar, - settings, - children - } = _ref; + +const { + ExperimentalBlockEditorProvider +} = unlock(external_wp_blockEditor_namespaceObject.privateApis); +function SidebarEditorProvider({ + sidebar, + settings, + children +}) { const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar); useBlocksFocusControl(blocks); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockEditorProvider, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ExperimentalBlockEditorProvider, { value: blocks, onInput: onInput, onChange: onChange, settings: settings, - useSubRegistry: false - }, children); + useSubRegistry: false, + children: children + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/welcome-guide/index.js - - /** * WordPress dependencies */ @@ -1745,46 +1488,58 @@ -function WelcomeGuide(_ref) { - let { - sidebar - } = _ref; + + +function WelcomeGuide({ + sidebar +}) { const { toggle } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store); const isEntirelyBlockWidgets = sidebar.getWidgets().every(widget => widget.id.startsWith('block-')); - return (0,external_wp_element_namespaceObject.createElement)("div", { - className: "customize-widgets-welcome-guide" - }, (0,external_wp_element_namespaceObject.createElement)("div", { - className: "customize-widgets-welcome-guide__image__wrapper" - }, (0,external_wp_element_namespaceObject.createElement)("picture", null, (0,external_wp_element_namespaceObject.createElement)("source", { - srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg", - media: "(prefers-reduced-motion: reduce)" - }), (0,external_wp_element_namespaceObject.createElement)("img", { - className: "customize-widgets-welcome-guide__image", - src: "https://s.w.org/images/block-editor/welcome-editor.gif", - width: "312", - height: "240", - alt: "" - }))), (0,external_wp_element_namespaceObject.createElement)("h1", { - className: "customize-widgets-welcome-guide__heading" - }, (0,external_wp_i18n_namespaceObject.__)('Welcome to block Widgets')), (0,external_wp_element_namespaceObject.createElement)("p", { - className: "customize-widgets-welcome-guide__text" - }, isEntirelyBlockWidgets ? (0,external_wp_i18n_namespaceObject.__)('Your theme provides different “block” areas for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ll look on your site.') : (0,external_wp_i18n_namespaceObject.__)('You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { - className: "customize-widgets-welcome-guide__button", - variant: "primary", - onClick: () => toggle('core/customize-widgets', 'welcomeGuide') - }, (0,external_wp_i18n_namespaceObject.__)('Got it')), (0,external_wp_element_namespaceObject.createElement)("hr", { - className: "customize-widgets-welcome-guide__separator" - }), !isEntirelyBlockWidgets && (0,external_wp_element_namespaceObject.createElement)("p", { - className: "customize-widgets-welcome-guide__more-info" - }, (0,external_wp_i18n_namespaceObject.__)('Want to stick with the old widgets?'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/plugins/classic-widgets/') - }, (0,external_wp_i18n_namespaceObject.__)('Get the Classic Widgets plugin.'))), (0,external_wp_element_namespaceObject.createElement)("p", { - className: "customize-widgets-welcome-guide__more-info" - }, (0,external_wp_i18n_namespaceObject.__)('New to the block editor?'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/support/article/wordpress-editor/') - }, (0,external_wp_i18n_namespaceObject.__)("Here's a detailed guide.")))); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { + className: "customize-widgets-welcome-guide", + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { + className: "customize-widgets-welcome-guide__image__wrapper", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("picture", { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("source", { + srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg", + media: "(prefers-reduced-motion: reduce)" + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", { + className: "customize-widgets-welcome-guide__image", + src: "https://s.w.org/images/block-editor/welcome-editor.gif", + width: "312", + height: "240", + alt: "" + })] + }) + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h1", { + className: "customize-widgets-welcome-guide__heading", + children: (0,external_wp_i18n_namespaceObject.__)('Welcome to block Widgets') + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", { + className: "customize-widgets-welcome-guide__text", + children: isEntirelyBlockWidgets ? (0,external_wp_i18n_namespaceObject.__)('Your theme provides different “block” areas for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ll look on your site.') : (0,external_wp_i18n_namespaceObject.__)('You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.') + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, { + className: "customize-widgets-welcome-guide__button", + variant: "primary", + onClick: () => toggle('core/customize-widgets', 'welcomeGuide'), + children: (0,external_wp_i18n_namespaceObject.__)('Got it') + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", { + className: "customize-widgets-welcome-guide__separator" + }), !isEntirelyBlockWidgets && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", { + className: "customize-widgets-welcome-guide__more-info", + children: [(0,external_wp_i18n_namespaceObject.__)('Want to stick with the old widgets?'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, { + href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/plugins/classic-widgets/'), + children: (0,external_wp_i18n_namespaceObject.__)('Get the Classic Widgets plugin.') + })] + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", { + className: "customize-widgets-welcome-guide__more-info", + children: [(0,external_wp_i18n_namespaceObject.__)('New to the block editor?'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, { + href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/wordpress-block-editor/'), + children: (0,external_wp_i18n_namespaceObject.__)("Here's a detailed guide.") + })] + })] + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcuts/index.js @@ -1796,12 +1551,11 @@ -function KeyboardShortcuts(_ref) { - let { - undo, - redo, - save - } = _ref; +function KeyboardShortcuts({ + undo, + redo, + save +}) { (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/customize-widgets/undo', event => { undo(); event.preventDefault(); @@ -1816,7 +1570,6 @@ }); return null; } - function KeyboardShortcutsRegister() { const { registerShortcut, @@ -1839,7 +1592,15 @@ keyCombination: { modifier: 'primaryShift', character: 'z' - } + }, + // Disable on Apple OS because it conflicts with the browser's + // history shortcut. It's a fine alias for both Windows and Linux. + // Since there's no conflict for Ctrl+Shift+Z on both Windows and + // Linux, we keep it as the default for consistency. + aliases: (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? [] : [{ + modifier: 'primary', + character: 'y' + }] }); registerShortcut({ name: 'core/customize-widgets/save', @@ -1858,48 +1619,40 @@ }, [registerShortcut]); return null; } - KeyboardShortcuts.Register = KeyboardShortcutsRegister; -/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts); +/* harmony default export */ const keyboard_shortcuts = (KeyboardShortcuts); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-appender/index.js - - - /** * WordPress dependencies */ + function BlockAppender(props) { const ref = (0,external_wp_element_namespaceObject.useRef)(); - const isBlocksListEmpty = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlockCount() === 0); // Move the focus to the block appender to prevent focus from + const isBlocksListEmpty = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlockCount() === 0); + + // Move the focus to the block appender to prevent focus from // being lost when emptying the widget area. - (0,external_wp_element_namespaceObject.useEffect)(() => { if (isBlocksListEmpty && ref.current) { const { ownerDocument } = ref.current; - if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) { ref.current.focus(); } } }, [isBlocksListEmpty]); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ButtonBlockAppender, _extends({}, props, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ButtonBlockAppender, { + ...props, ref: ref - })); + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/index.js - - -/** - * External dependencies - */ - /** * WordPress dependencies */ @@ -1910,6 +1663,8 @@ + + /** * Internal dependencies */ @@ -1921,25 +1676,35 @@ -function SidebarBlockEditor(_ref) { - let { - blockEditorSettings, - sidebar, - inserter, - inspector - } = _ref; + + + +const { + ExperimentalBlockCanvas: BlockCanvas +} = unlock(external_wp_blockEditor_namespaceObject.privateApis); +const { + BlockKeyboardShortcuts +} = unlock(external_wp_blockLibrary_namespaceObject.privateApis); +function SidebarBlockEditor({ + blockEditorSettings, + sidebar, + inserter, + inspector +}) { const [isInserterOpened, setIsInserterOpened] = useInserter(inserter); + const isMediumViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('small'); const { hasUploadPermissions, isFixedToolbarActive, keepCaretInsideBlock, isWelcomeGuideActive } = (0,external_wp_data_namespaceObject.useSelect)(select => { + var _select$canUser; const { get } = select(external_wp_preferences_namespaceObject.store); return { - hasUploadPermissions: (0,external_lodash_namespaceObject.defaultTo)(select(external_wp_coreData_namespaceObject.store).canUser('create', 'media'), true), + hasUploadPermissions: (_select$canUser = select(external_wp_coreData_namespaceObject.store).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true, isFixedToolbarActive: !!get('core/customize-widgets', 'fixedToolbar'), keepCaretInsideBlock: !!get('core/customize-widgets', 'keepCaretInsideBlock'), isWelcomeGuideActive: !!get('core/customize-widgets', 'welcomeGuide') @@ -1947,96 +1712,96 @@ }, []); const settings = (0,external_wp_element_namespaceObject.useMemo)(() => { let mediaUploadBlockEditor; - if (hasUploadPermissions) { - mediaUploadBlockEditor = _ref2 => { - let { - onError, - ...argumentsObject - } = _ref2; + mediaUploadBlockEditor = ({ + onError, + ...argumentsObject + }) => { (0,external_wp_mediaUtils_namespaceObject.uploadMedia)({ wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes, - onError: _ref3 => { - let { - message - } = _ref3; - return onError(message); - }, + onError: ({ + message + }) => onError(message), ...argumentsObject }); }; } - - return { ...blockEditorSettings, + return { + ...blockEditorSettings, __experimentalSetIsInserterOpened: setIsInserterOpened, mediaUpload: mediaUploadBlockEditor, - hasFixedToolbar: isFixedToolbarActive, + hasFixedToolbar: isFixedToolbarActive || !isMediumViewport, keepCaretInsideBlock, __unstableHasCustomAppender: true }; - }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, setIsInserterOpened]); - + }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, isMediumViewport, keepCaretInsideBlock, setIsInserterOpened]); if (isWelcomeGuideActive) { - return (0,external_wp_element_namespaceObject.createElement)(WelcomeGuide, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WelcomeGuide, { sidebar: sidebar }); } - - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockEditorKeyboardShortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(SidebarEditorProvider, { - sidebar: sidebar, - settings: settings - }, (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts, { - undo: sidebar.undo, - redo: sidebar.redo, - save: sidebar.save - }), (0,external_wp_element_namespaceObject.createElement)(header, { - sidebar: sidebar, - inserter: inserter, - isInserterOpened: isInserterOpened, - setIsInserterOpened: setIsInserterOpened, - isFixedToolbarActive: isFixedToolbarActive - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.CopyHandler, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockTools, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableEditorStyles, { - styles: settings.defaultEditorStyles - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockSelectionClearer, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.WritingFlow, { - className: "editor-styles-wrapper" - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ObserveTyping, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockList, { - renderAppender: BlockAppender - })))))), (0,external_wp_element_namespaceObject.createPortal)( // This is a temporary hack to prevent button component inside - // from submitting form when type="button" is not specified. - (0,external_wp_element_namespaceObject.createElement)("form", { - onSubmit: event => event.preventDefault() - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockInspector, null)), inspector.contentContainer[0])), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableBlockSettingsMenuFirstItem, null, _ref4 => { - let { - onClose - } = _ref4; - return (0,external_wp_element_namespaceObject.createElement)(block_inspector_button, { - inspector: inspector, - closeMenu: onClose - }); - })); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcuts.Register, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockKeyboardShortcuts, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(SidebarEditorProvider, { + sidebar: sidebar, + settings: settings, + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcuts, { + undo: sidebar.undo, + redo: sidebar.redo, + save: sidebar.save + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(header, { + sidebar: sidebar, + inserter: inserter, + isInserterOpened: isInserterOpened, + setIsInserterOpened: setIsInserterOpened, + isFixedToolbarActive: isFixedToolbarActive || !isMediumViewport + }), (isFixedToolbarActive || !isMediumViewport) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockToolbar, { + hideDragHandle: true + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockCanvas, { + shouldIframe: false, + styles: settings.defaultEditorStyles, + height: "100%", + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockList, { + renderAppender: BlockAppender + }) + }), (0,external_wp_element_namespaceObject.createPortal)( + /*#__PURE__*/ + // This is a temporary hack to prevent button component inside + // from submitting form when type="button" is not specified. + (0,external_ReactJSXRuntime_namespaceObject.jsx)("form", { + onSubmit: event => event.preventDefault(), + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockInspector, {}) + }), inspector.contentContainer[0])] + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__unstableBlockSettingsMenuFirstItem, { + children: ({ + onClose + }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(block_inspector_button, { + inspector: inspector, + closeMenu: onClose + }) + })] + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-controls/index.js - - /** * WordPress dependencies */ + const SidebarControlsContext = (0,external_wp_element_namespaceObject.createContext)(); -function SidebarControls(_ref) { - let { - sidebarControls, - activeSidebarControl, - children - } = _ref; +function SidebarControls({ + sidebarControls, + activeSidebarControl, + children +}) { const context = (0,external_wp_element_namespaceObject.useMemo)(() => ({ sidebarControls, activeSidebarControl }), [sidebarControls, activeSidebarControl]); - return (0,external_wp_element_namespaceObject.createElement)(SidebarControlsContext.Provider, { - value: context - }, children); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarControlsContext.Provider, { + value: context, + children: children + }); } function useSidebarControls() { const { @@ -2058,6 +1823,7 @@ + /** * We can't just use because the customizer has * many root nodes rather than just one in the post editor. @@ -2074,7 +1840,6 @@ * @param {Object} sidebarControl The sidebar control instance. * @param {Object} popoverRef The ref object of the popover node container. */ - function useClearSelectedBlock(sidebarControl, popoverRef) { const { hasSelectedBlock, @@ -2089,27 +1854,28 @@ const container = sidebarControl.container[0]; const ownerDocument = container.ownerDocument; const ownerWindow = ownerDocument.defaultView; - function handleClearSelectedBlock(element) { - if ( // 1. Make sure there are blocks being selected. - (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted). - element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog. - !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened. + if ( + // 1. Make sure there are blocks being selected. + (hasSelectedBlock() || hasMultiSelection()) && + // 2. The element should exist in the DOM (not deleted). + element && ownerDocument.contains(element) && + // 3. It should also not exist in the container, the popover, nor the dialog. + !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && + // 4. The inspector should not be opened. !inspector.expanded()) { clearSelectedBlock(); } - } // Handle mouse down in the same document. + } - + // Handle mouse down in the same document. function handleMouseDown(event) { handleClearSelectedBlock(event.target); - } // Handle focusing outside the current document, like to iframes. - - + } + // Handle focusing outside the current document, like to iframes. function handleBlur() { handleClearSelectedBlock(ownerDocument.activeElement); } - ownerDocument.addEventListener('mousedown', handleMouseDown); ownerWindow.addEventListener('blur', handleBlur); return () => { @@ -2121,8 +1887,6 @@ } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/index.js - - /** * WordPress dependencies */ @@ -2138,12 +1902,12 @@ -function CustomizeWidgets(_ref) { - let { - api, - sidebarControls, - blockEditorSettings - } = _ref; + +function CustomizeWidgets({ + api, + sidebarControls, + blockEditorSettings +}) { const [activeSidebarControl, setActiveSidebarControl] = (0,external_wp_element_namespaceObject.useState)(null); const parentContainer = document.getElementById('customize-theme-controls'); const popoverRef = (0,external_wp_element_namespaceObject.useRef)(); @@ -2158,26 +1922,33 @@ unsubscribers.forEach(unsubscriber => unsubscriber()); }; }, [sidebarControls]); - const activeSidebar = activeSidebarControl && (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)(ErrorBoundary, null, (0,external_wp_element_namespaceObject.createElement)(SidebarBlockEditor, { - key: activeSidebarControl.id, - blockEditorSettings: blockEditorSettings, - sidebar: activeSidebarControl.sidebarAdapter, - inserter: activeSidebarControl.inserter, - inspector: activeSidebarControl.inspector - })), activeSidebarControl.container[0]); // We have to portal this to the parent of both the editor and the inspector, - // so that the popovers will appear above both of them. + const activeSidebar = activeSidebarControl && (0,external_wp_element_namespaceObject.createPortal)( /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ErrorBoundary, { + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarBlockEditor, { + blockEditorSettings: blockEditorSettings, + sidebar: activeSidebarControl.sidebarAdapter, + inserter: activeSidebarControl.inserter, + inspector: activeSidebarControl.inspector + }, activeSidebarControl.id) + }), activeSidebarControl.container[0]); - const popover = parentContainer && (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)("div", { + // We have to portal this to the parent of both the editor and the inspector, + // so that the popovers will appear above both of them. + const popover = parentContainer && (0,external_wp_element_namespaceObject.createPortal)( /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { className: "customize-widgets-popover", - ref: popoverRef - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover.Slot, null)), parentContainer); - return (0,external_wp_element_namespaceObject.createElement)(external_wp_keyboardShortcuts_namespaceObject.ShortcutProvider, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SlotFillProvider, null, (0,external_wp_element_namespaceObject.createElement)(SidebarControls, { - sidebarControls: sidebarControls, - activeSidebarControl: activeSidebarControl - }, (0,external_wp_element_namespaceObject.createElement)(FocusControl, { - api: api, - sidebarControls: sidebarControls - }, activeSidebar, popover)))); + ref: popoverRef, + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover.Slot, {}) + }), parentContainer); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SlotFillProvider, { + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarControls, { + sidebarControls: sidebarControls, + activeSidebarControl: activeSidebarControl, + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(FocusControl, { + api: api, + sidebarControls: sidebarControls, + children: [activeSidebar, popover] + }) + }) + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inspector-section.js @@ -2194,27 +1965,21 @@ this.returnFocusWhenClose = null; this._isOpen = false; } - get isOpen() { return this._isOpen; } - set isOpen(value) { this._isOpen = value; this.triggerActiveCallbacks(); } - ready() { this.contentContainer[0].classList.add('customize-widgets-layout__inspector'); } - isContextuallyActive() { return this.isOpen; } - onChangeExpanded(expanded, args) { super.onChangeExpanded(expanded, args); - if (this.parentSection && !args.unchanged) { if (expanded) { this.parentSection.collapse({ @@ -2233,24 +1998,20 @@ } } } - - open() { - let { - returnFocusWhenClose - } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + open({ + returnFocusWhenClose + } = {}) { this.isOpen = true; this.returnFocusWhenClose = returnFocusWhenClose; this.expand({ allowMultiple: true }); } - close() { this.collapse({ allowMultiple: true }); } - collapse(options) { // Overridden collapse() function. Mostly call the parent collapse(), but also // move our .isOpen to false. @@ -2264,7 +2025,6 @@ this.isOpen = false; super.collapse(options); } - triggerActiveCallbacks() { // Manually fire the callbacks associated with moving this.active // from false to true. "active" is always true for this section, @@ -2280,7 +2040,6 @@ // update its view of our status. this.active.callbacks.fireWith(this.active, [false, true]); } - }; } @@ -2289,14 +2048,12 @@ * WordPress dependencies */ + /** * Internal dependencies */ - - const getInspectorSectionId = sidebarId => `widgets-inspector-${sidebarId}`; - function getSidebarSection() { const { wp: { @@ -2319,28 +2076,20 @@ customize.section.add(this.inspector); this.contentContainer[0].classList.add('customize-widgets__sidebar-section'); } - hasSubSectionOpened() { return this.inspector.expanded(); } - onChangeExpanded(expanded, _args) { const controls = this.controls(); - const args = { ..._args, - + const args = { + ..._args, completeCallback() { - var _args$completeCallbac; - controls.forEach(control => { - var _control$onChangeSect; - - (_control$onChangeSect = control.onChangeSectionExpanded) === null || _control$onChangeSect === void 0 ? void 0 : _control$onChangeSect.call(control, expanded, args); + control.onChangeSectionExpanded?.(expanded, args); }); - (_args$completeCallbac = _args.completeCallback) === null || _args$completeCallbac === void 0 ? void 0 : _args$completeCallbac.call(_args); + _args.completeCallback?.(); } - }; - if (args.manualTransition) { if (expanded) { this.contentContainer.addClass(['busy', 'open']); @@ -2351,12 +2100,10 @@ this.contentContainer.closest('.wp-full-overlay').addClass('section-open'); this.contentContainer.removeClass('open'); } - const handleTransitionEnd = () => { this.contentContainer.removeClass('busy'); args.completeCallback(); }; - if (isReducedMotion) { handleTransitionEnd(); } else { @@ -2366,7 +2113,6 @@ super.onChangeExpanded(expanded, args); } } - }; } @@ -2378,35 +2124,31 @@ const { wp } = window; - function parseWidgetId(widgetId) { const matches = widgetId.match(/^(.+)-(\d+)$/); - if (matches) { return { idBase: matches[1], number: parseInt(matches[2], 10) }; - } // Likely an old single widget. + } - + // Likely an old single widget. return { idBase: widgetId }; } - function widgetIdToSettingId(widgetId) { const { idBase, number } = parseWidgetId(widgetId); - if (number) { return `widget_${idBase}[${number}]`; } - return `widget_${idBase}`; } + /** * This is a custom debounce function to call different callbacks depending on * whether it's the _leading_ call or not. @@ -2416,17 +2158,10 @@ * @param {number} timeout The debounced time in milliseconds. * @return {Function} The debounced function. */ - - function debounce(leading, callback, timeout) { let isLeading = false; let timerID; - - function debounced() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - + function debounced(...args) { const result = (isLeading ? callback : leading).apply(this, args); isLeading = true; clearTimeout(timerID); @@ -2435,15 +2170,12 @@ }, timeout); return result; } - debounced.cancel = () => { isLeading = false; clearTimeout(timerID); }; - return debounced; } - class SidebarAdapter { constructor(setting, api) { this.setting = setting; @@ -2453,8 +2185,8 @@ this.subscribers = new Set(); this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))]; this.historyIndex = 0; - this.historySubscribers = new Set(); // Debounce the input for 1 second. - + this.historySubscribers = new Set(); + // Debounce the input for 1 second. this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000); this.setting.bind(this._handleSettingChange.bind(this)); this.api.bind('change', this._handleAllSettingsChange.bind(this)); @@ -2462,83 +2194,63 @@ this.redo = this.redo.bind(this); this.save = this.save.bind(this); } - subscribe(callback) { this.subscribers.add(callback); return () => { this.subscribers.delete(callback); }; } - getWidgets() { return this.history[this.historyIndex]; } - - _emit() { + _emit(...args) { for (const callback of this.subscribers) { - callback(...arguments); + callback(...args); } } - _getWidgetIds() { return this.setting.get(); } - _pushHistory() { this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))]; this.historyIndex += 1; this.historySubscribers.forEach(listener => listener()); } - _replaceHistory() { this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId)); } - _handleSettingChange() { if (this.locked) { return; } - const prevWidgets = this.getWidgets(); - this._pushHistory(); - this._emit(prevWidgets, this.getWidgets()); } - _handleAllSettingsChange(setting) { if (this.locked) { return; } - if (!setting.id.startsWith('widget_')) { return; } - const widgetId = settingIdToWidgetId(setting.id); - if (!this.setting.get().includes(widgetId)) { return; } - const prevWidgets = this.getWidgets(); - this._pushHistory(); - this._emit(prevWidgets, this.getWidgets()); } - _createWidget(widget) { const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({ id_base: widget.idBase }); let number = widget.number; - if (widgetModel.get('is_multi') && !number) { widgetModel.set('multi_number', widgetModel.get('multi_number') + 1); number = widgetModel.get('multi_number'); } - const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`; const settingArgs = { transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh', @@ -2549,61 +2261,51 @@ const widgetId = settingIdToWidgetId(settingId); return widgetId; } - _removeWidget(widget) { const settingId = widgetIdToSettingId(widget.id); const setting = this.api(settingId); - if (setting) { const instance = setting.get(); this.widgetsCache.delete(instance); } - this.api.remove(settingId); } + _updateWidget(widget) { + const prevWidget = this.getWidget(widget.id); - _updateWidget(widget) { - const prevWidget = this.getWidget(widget.id); // Bail out update if nothing changed. - + // Bail out update if nothing changed. if (prevWidget === widget) { return widget.id; - } // Update existing setting if only the widget's instance changed. + } - + // Update existing setting if only the widget's instance changed. if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) { const settingId = widgetIdToSettingId(widget.id); this.api(settingId).set(widget.instance); return widget.id; - } // Otherwise delete and re-create. - + } + // Otherwise delete and re-create. this._removeWidget(widget); - return this._createWidget(widget); } - getWidget(widgetId) { if (!widgetId) { return null; } - const { idBase, number } = parseWidgetId(widgetId); const settingId = widgetIdToSettingId(widgetId); const setting = this.api(settingId); - if (!setting) { return null; } - const instance = setting.get(); - if (this.widgetsCache.has(instance)) { return this.widgetsCache.get(instance); } - const widget = { id: widgetId, idBase, @@ -2613,7 +2315,6 @@ this.widgetsCache.set(instance, widget); return widget; } - _updateWidgets(nextWidgets) { this.locked = true; const addedWidgetIds = []; @@ -2622,9 +2323,7 @@ addedWidgetIds.push(null); return this._updateWidget(nextWidget); } - const widgetId = this._createWidget(nextWidget); - addedWidgetIds.push(widgetId); return widgetId; }); @@ -2634,72 +2333,55 @@ this.locked = false; return addedWidgetIds; } - setWidgets(nextWidgets) { const addedWidgetIds = this._updateWidgets(nextWidgets); - this._debounceSetHistory(); - return addedWidgetIds; } + /** * Undo/Redo related features */ - - hasUndo() { return this.historyIndex > 0; } - hasRedo() { return this.historyIndex < this.history.length - 1; } - _seek(historyIndex) { const currentWidgets = this.getWidgets(); this.historyIndex = historyIndex; const widgets = this.history[this.historyIndex]; - this._updateWidgets(widgets); - this._emit(currentWidgets, this.getWidgets()); - this.historySubscribers.forEach(listener => listener()); - this._debounceSetHistory.cancel(); } - undo() { if (!this.hasUndo()) { return; } - this._seek(this.historyIndex - 1); } - redo() { if (!this.hasRedo()) { return; } - this._seek(this.historyIndex + 1); } - subscribeHistory(listener) { this.historySubscribers.add(listener); return () => { this.historySubscribers.delete(listener); }; } - save() { this.api.previewer.save(); } - } ;// CONCATENATED MODULE: external ["wp","dom"] -var external_wp_dom_namespaceObject = window["wp"]["dom"]; +const external_wp_dom_namespaceObject = window["wp"]["dom"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inserter-outer-section.js /** * WordPress dependencies @@ -2707,21 +2389,21 @@ + /** * Internal dependencies */ - function getInserterOuterSection() { const { wp: { customize } } = window; - const OuterSection = customize.OuterSection; // Override the OuterSection class to handle multiple outer sections. + const OuterSection = customize.OuterSection; + // Override the OuterSection class to handle multiple outer sections. // It closes all the other outer sections whenever one is opened. // The result is that at most one outer section can be opened at the same time. - customize.OuterSection = class extends OuterSection { onChangeExpanded(expanded, args) { if (expanded) { @@ -2733,44 +2415,44 @@ } }); } - return super.onChangeExpanded(expanded, args); } - - }; // Handle constructor so that "params.type" can be correctly pointed to "outer". - + }; + // Handle constructor so that "params.type" can be correctly pointed to "outer". customize.sectionConstructor.outer = customize.OuterSection; return class InserterOuterSection extends customize.OuterSection { - constructor() { - super(...arguments); // This is necessary since we're creating a new class which is not identical to the original OuterSection. + constructor(...args) { + super(...args); + + // This is necessary since we're creating a new class which is not identical to the original OuterSection. // @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436 - this.params.type = 'outer'; this.activeElementBeforeExpanded = null; - const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; // Handle closing the inserter when pressing the Escape key. + const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; + // Handle closing the inserter when pressing the Escape key. ownerWindow.addEventListener('keydown', event => { if (this.expanded() && (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE || event.code === 'Escape') && !event.defaultPrevented) { event.preventDefault(); event.stopPropagation(); (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(false); } - }, // Use capture mode to make this run before other event listeners. + }, + // Use capture mode to make this run before other event listeners. true); - this.contentContainer.addClass('widgets-inserter'); // Set a flag if the state is being changed from open() or close(). + this.contentContainer.addClass('widgets-inserter'); + + // Set a flag if the state is being changed from open() or close(). // Don't propagate the event if it's an internal action to prevent infinite loop. - this.isFromInternalAction = false; this.expanded.bind(() => { if (!this.isFromInternalAction) { // Propagate the event to React to sync the state. (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(this.expanded()); } - this.isFromInternalAction = false; }); } - open() { if (!this.expanded()) { const contentContainer = this.contentContainer[0]; @@ -2782,16 +2464,13 @@ // The first one should be the close button, // we want to skip it and choose the second one instead, which is the search box. const searchBox = external_wp_dom_namespaceObject.focus.tabbable.find(contentContainer)[1]; - if (searchBox) { searchBox.focus(); } } - }); } } - close() { if (this.expanded()) { const contentContainer = this.contentContainer[0]; @@ -2811,11 +2490,9 @@ } } } - }); } } - }; } @@ -2824,16 +2501,14 @@ * WordPress dependencies */ + /** * Internal dependencies */ - - const getInserterId = controlId => `widgets-inserter-${controlId}`; - function getSidebarControl() { const { wp: { @@ -2841,11 +2516,10 @@ } } = window; return class SidebarControl extends customize.Control { - constructor() { - super(...arguments); + constructor(...args) { + super(...args); this.subscribers = new Set(); } - ready() { const InserterOuterSection = getInserterOuterSection(); this.inserter = new InserterOuterSection(getInserterId(this.id), {}); @@ -2854,37 +2528,25 @@ this.inspector = this.sectionInstance.inspector; this.sidebarAdapter = new SidebarAdapter(this.setting, customize); } - subscribe(callback) { this.subscribers.add(callback); return () => { this.subscribers.delete(callback); }; } - onChangeSectionExpanded(expanded, args) { if (!args.unchanged) { // Close the inserter when the section collapses. if (!expanded) { (0,external_wp_data_namespaceObject.dispatch)(store).setIsInserterOpened(false); } - this.subscribers.forEach(subscriber => subscriber(expanded, args)); } } - }; } -;// CONCATENATED MODULE: external ["wp","hooks"] -var external_wp_hooks_namespaceObject = window["wp"]["hooks"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/move-to-sidebar.js - - -/** - * External dependencies - */ - /** * WordPress dependencies */ @@ -2901,11 +2563,13 @@ + + const withMoveToSidebarToolbarItem = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { let widgetId = (0,external_wp_widgets_namespaceObject.getWidgetIdFromBlock)(props); const sidebarControls = useSidebarControls(); const activeSidebarControl = useActiveSidebarControl(); - const hasMultipleSidebars = (sidebarControls === null || sidebarControls === void 0 ? void 0 : sidebarControls.length) > 1; + const hasMultipleSidebars = sidebarControls?.length > 1; const blockName = props.name; const clientId = props.clientId; const canInsertBlockInSidebar = (0,external_wp_data_namespaceObject.useSelect)(select => { @@ -2918,17 +2582,15 @@ removeBlock } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); const [, focusWidget] = useFocusControl(); - function moveToSidebar(sidebarControlId) { const newSidebarControl = sidebarControls.find(sidebarControl => sidebarControl.id === sidebarControlId); - if (widgetId) { /** * If there's a widgetId, move it to the other sidebar. */ const oldSetting = activeSidebarControl.setting; const newSetting = newSidebarControl.setting; - oldSetting((0,external_lodash_namespaceObject.without)(oldSetting(), widgetId)); + oldSetting(oldSetting().filter(id => id !== widgetId)); newSetting([...newSetting(), widgetId]); } else { /** @@ -2938,24 +2600,29 @@ */ const sidebarAdapter = newSidebarControl.sidebarAdapter; removeBlock(clientId); - const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); // The last non-null id is the added widget's id. - + const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); + // The last non-null id is the added widget's id. widgetId = addedWidgetIds.reverse().find(id => !!id); - } // Move focus to the moved widget and expand the sidebar. + } - + // Move focus to the moved widget and expand the sidebar. focusWidget(widgetId); } - - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(BlockEdit, props), hasMultipleSidebars && canInsertBlockInSidebar && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_widgets_namespaceObject.MoveToWidgetArea, { - widgetAreas: sidebarControls.map(sidebarControl => ({ - id: sidebarControl.id, - name: sidebarControl.params.label, - description: sidebarControl.params.description - })), - currentWidgetAreaId: activeSidebarControl === null || activeSidebarControl === void 0 ? void 0 : activeSidebarControl.id, - onSelect: moveToSidebar - }))); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, { + children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockEdit, { + ...props + }), hasMultipleSidebars && canInsertBlockInSidebar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, { + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_widgets_namespaceObject.MoveToWidgetArea, { + widgetAreas: sidebarControls.map(sidebarControl => ({ + id: sidebarControl.id, + name: sidebarControl.params.label, + description: sidebarControl.params.description + })), + currentWidgetAreaId: activeSidebarControl?.id, + onSelect: moveToSidebar + }) + })] + }); }, 'withMoveToSidebarToolbarItem'); (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/customize-widgets/block-edit', withMoveToSidebarToolbarItem); @@ -2965,33 +2632,29 @@ */ - const replaceMediaUpload = () => external_wp_mediaUtils_namespaceObject.MediaUpload; - (0,external_wp_hooks_namespaceObject.addFilter)('editor.MediaUpload', 'core/edit-widgets/replace-media-upload', replaceMediaUpload); ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/wide-widget-display.js - - - /** * WordPress dependencies */ + const { wp: wide_widget_display_wp } = window; const withWideWidgetDisplay = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { - var _wp$customize$Widgets, _wp$customize$Widgets2; - + var _wp$customize$Widgets; const { idBase } = props.attributes; - const isWide = (_wp$customize$Widgets = (_wp$customize$Widgets2 = wide_widget_display_wp.customize.Widgets.data.availableWidgets.find(widget => widget.id_base === idBase)) === null || _wp$customize$Widgets2 === void 0 ? void 0 : _wp$customize$Widgets2.is_wide) !== null && _wp$customize$Widgets !== void 0 ? _wp$customize$Widgets : false; - return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, _extends({}, props, { + const isWide = (_wp$customize$Widgets = wide_widget_display_wp.customize.Widgets.data.availableWidgets.find(widget => widget.id_base === idBase)?.is_wide) !== null && _wp$customize$Widgets !== void 0 ? _wp$customize$Widgets : false; + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockEdit, { + ...props, isWide: isWide - })); + }); }, 'withWideWidgetDisplay'); (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/customize-widgets/wide-widget-display', withWideWidgetDisplay); @@ -3004,8 +2667,6 @@ ;// CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/index.js - - /** * WordPress dependencies */ @@ -3015,6 +2676,7 @@ + /** * Internal dependencies */ @@ -3028,36 +2690,32 @@ } = window; const DISABLED_BLOCKS = ['core/more', 'core/block', 'core/freeform', 'core/template-part']; const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false; + /** * Initializes the widgets block editor in the customizer. * * @param {string} editorName The editor name. * @param {Object} blockEditorSettings Block editor settings. */ - function initialize(editorName, blockEditorSettings) { (0,external_wp_data_namespaceObject.dispatch)(external_wp_preferences_namespaceObject.store).setDefaults('core/customize-widgets', { fixedToolbar: false, welcomeGuide: true }); - - (0,external_wp_data_namespaceObject.dispatch)(external_wp_blocks_namespaceObject.store).__experimentalReapplyBlockTypeFilters(); - + (0,external_wp_data_namespaceObject.dispatch)(external_wp_blocks_namespaceObject.store).reapplyBlockTypeFilters(); const coreBlocks = (0,external_wp_blockLibrary_namespaceObject.__experimentalGetCoreBlocks)().filter(block => { return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site') || block.name.startsWith('core/navigation')); }); - (0,external_wp_blockLibrary_namespaceObject.registerCoreBlocks)(coreBlocks); (0,external_wp_widgets_namespaceObject.registerLegacyWidgetBlock)(); - if (false) {} + (0,external_wp_widgets_namespaceObject.registerLegacyWidgetVariations)(blockEditorSettings); + (0,external_wp_widgets_namespaceObject.registerWidgetGroupBlock)(); - (0,external_wp_widgets_namespaceObject.registerLegacyWidgetVariations)(blockEditorSettings); - (0,external_wp_widgets_namespaceObject.registerWidgetGroupBlock)(); // As we are unregistering `core/freeform` to avoid the Classic block, we must + // As we are unregistering `core/freeform` to avoid the Classic block, we must // replace it with something as the default freeform content handler. Failure to // do this will result in errors in the default block parser. // see: https://github.com/WordPress/gutenberg/issues/33097 - (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)('core/html'); const SidebarControl = getSidebarControl(blockEditorSettings); build_module_wp.customize.sectionConstructor.sidebar = getSidebarSection(); @@ -3071,15 +2729,17 @@ sidebarControls.push(control); } }); - (0,external_wp_element_namespaceObject.render)((0,external_wp_element_namespaceObject.createElement)(CustomizeWidgets, { + (0,external_wp_element_namespaceObject.createRoot)(container).render( /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CustomizeWidgets, { api: build_module_wp.customize, sidebarControls: sidebarControls, blockEditorSettings: blockEditorSettings - }), container); + })); }); } -}(); + +})(); + (window.wp = window.wp || {}).customizeWidgets = __webpack_exports__; /******/ })() ; \ No newline at end of file