b0y-101 Mini Shell


Current Path : E:/www/km/wp/wp-content/plugins/gutenberg/build/customize-widgets/
File Upload :
Current File : E:/www/km/wp/wp-content/plugins/gutenberg/build/customize-widgets/index.min.js.map

{"version":3,"file":"./build/customize-widgets/index.min.js","mappings":"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","sources":["webpack://wp/./node_modules/classnames/index.js","webpack://wp/./node_modules/fast-deep-equal/es6/index.js","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/external window [\"wp\",\"element\"]","webpack://wp/external window [\"wp\",\"blockLibrary\"]","webpack://wp/external window [\"wp\",\"widgets\"]","webpack://wp/external window [\"wp\",\"blocks\"]","webpack://wp/external window [\"wp\",\"data\"]","webpack://wp/external window [\"wp\",\"preferences\"]","webpack://wp/external window [\"wp\",\"components\"]","webpack://wp/external window [\"wp\",\"keyboardShortcuts\"]","webpack://wp/external window [\"wp\",\"i18n\"]","webpack://wp/external window [\"wp\",\"blockEditor\"]","webpack://wp/external window [\"wp\",\"compose\"]","webpack://wp/external window [\"wp\",\"hooks\"]","webpack://wp/./packages/customize-widgets/build-module/components/error-boundary/@wordpress/customize-widgets/src/components/error-boundary/index.js","webpack://wp/external window [\"wp\",\"coreData\"]","webpack://wp/external window [\"wp\",\"mediaUtils\"]","webpack://wp/./packages/customize-widgets/build-module/components/block-inspector-button/@wordpress/customize-widgets/src/components/block-inspector-button/index.js","webpack://wp/external window [\"wp\",\"keycodes\"]","webpack://wp/external window [\"wp\",\"primitives\"]","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/undo.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/redo.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/plus.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/close-small.js","webpack://wp/./packages/customize-widgets/build-module/store/@wordpress/customize-widgets/src/store/selectors.js","webpack://wp/./packages/customize-widgets/build-module/store/@wordpress/customize-widgets/src/store/actions.js","webpack://wp/./packages/customize-widgets/build-module/store/@wordpress/customize-widgets/src/store/constants.js","webpack://wp/./packages/customize-widgets/build-module/store/@wordpress/customize-widgets/src/store/index.js","webpack://wp/./packages/customize-widgets/build-module/store/@wordpress/customize-widgets/src/store/reducer.js","webpack://wp/./packages/customize-widgets/build-module/components/inserter/@wordpress/customize-widgets/src/components/inserter/index.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/external.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/more-vertical.js","webpack://wp/./packages/interface/build-module/components/more-menu-dropdown/@wordpress/interface/src/components/more-menu-dropdown/index.js","webpack://wp/external window [\"wp\",\"deprecated\"]","webpack://wp/./packages/interface/build-module/store/@wordpress/interface/src/store/actions.js","webpack://wp/./packages/interface/build-module/store/@wordpress/interface/src/store/selectors.js","webpack://wp/./packages/interface/build-module/store/@wordpress/interface/src/store/reducer.js","webpack://wp/./packages/interface/build-module/store/@wordpress/interface/src/store/index.js","webpack://wp/./packages/interface/build-module/store/@wordpress/interface/src/store/constants.js","webpack://wp/./packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/config.js","webpack://wp/./packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/shortcut.js","webpack://wp/./packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js","webpack://wp/./packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/index.js","webpack://wp/./packages/customize-widgets/build-module/components/more-menu/@wordpress/customize-widgets/src/components/more-menu/index.js","webpack://wp/./packages/customize-widgets/build-module/components/header/@wordpress/customize-widgets/src/components/header/index.js","webpack://wp/external window [\"wp\",\"isShallowEqual\"]","webpack://wp/./packages/customize-widgets/build-module/@wordpress/customize-widgets/src/utils.js","webpack://wp/./packages/customize-widgets/build-module/components/focus-control/@wordpress/customize-widgets/src/components/focus-control/index.js","webpack://wp/external window [\"wp\",\"privateApis\"]","webpack://wp/./packages/customize-widgets/build-module/@wordpress/customize-widgets/src/lock-unlock.js","webpack://wp/./packages/customize-widgets/build-module/components/sidebar-block-editor/@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-editor-provider.js","webpack://wp/./packages/customize-widgets/build-module/components/sidebar-block-editor/@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js","webpack://wp/./packages/customize-widgets/build-module/components/focus-control/@wordpress/customize-widgets/src/components/focus-control/use-blocks-focus-control.js","webpack://wp/./packages/customize-widgets/build-module/components/welcome-guide/@wordpress/customize-widgets/src/components/welcome-guide/index.js","webpack://wp/./packages/customize-widgets/build-module/components/keyboard-shortcuts/@wordpress/customize-widgets/src/components/keyboard-shortcuts/index.js","webpack://wp/./packages/customize-widgets/build-module/components/block-appender/@wordpress/customize-widgets/src/components/block-appender/index.js","webpack://wp/./packages/customize-widgets/build-module/components/sidebar-block-editor/@wordpress/customize-widgets/src/components/sidebar-block-editor/index.js","webpack://wp/./packages/customize-widgets/build-module/components/inserter/@wordpress/customize-widgets/src/components/inserter/use-inserter.js","webpack://wp/./packages/customize-widgets/build-module/components/sidebar-controls/@wordpress/customize-widgets/src/components/sidebar-controls/index.js","webpack://wp/./packages/customize-widgets/build-module/components/customize-widgets/@wordpress/customize-widgets/src/components/customize-widgets/index.js","webpack://wp/./packages/customize-widgets/build-module/components/customize-widgets/@wordpress/customize-widgets/src/components/customize-widgets/use-clear-selected-block.js","webpack://wp/./packages/customize-widgets/build-module/controls/@wordpress/customize-widgets/src/controls/sidebar-section.js","webpack://wp/./packages/customize-widgets/build-module/components/sidebar-block-editor/@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js","webpack://wp/external window [\"wp\",\"dom\"]","webpack://wp/./packages/customize-widgets/build-module/controls/@wordpress/customize-widgets/src/controls/sidebar-control.js","webpack://wp/./packages/customize-widgets/build-module/filters/@wordpress/customize-widgets/src/filters/move-to-sidebar.js","webpack://wp/./packages/customize-widgets/build-module/filters/@wordpress/customize-widgets/src/filters/replace-media-upload.js","webpack://wp/./packages/customize-widgets/build-module/filters/@wordpress/customize-widgets/src/filters/wide-widget-display.js","webpack://wp/./packages/customize-widgets/build-module/@wordpress/customize-widgets/src/index.js","webpack://wp/./packages/customize-widgets/build-module/controls/@wordpress/customize-widgets/src/controls/inserter-outer-section.js","webpack://wp/./packages/customize-widgets/build-module/controls/@wordpress/customize-widgets/src/controls/inspector-section.js"],"sourcesContent":["/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n  var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n\n    if ((a instanceof Map) && (b instanceof Map)) {\n      if (a.size !== b.size) return false;\n      for (i of a.entries())\n        if (!b.has(i[0])) return false;\n      for (i of a.entries())\n        if (!equal(i[1], b.get(i[0]))) return false;\n      return true;\n    }\n\n    if ((a instanceof Set) && (b instanceof Set)) {\n      if (a.size !== b.size) return false;\n      for (i of a.entries())\n        if (!b.has(i[0])) return false;\n      return true;\n    }\n\n    if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (a[i] !== b[i]) return false;\n      return true;\n    }\n\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n\n      if (!equal(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a!==a && b!==b;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockLibrary\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"widgets\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blocks\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"data\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"preferences\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"components\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keyboardShortcuts\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"i18n\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockEditor\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"compose\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"hooks\"];","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { Warning } from '@wordpress/block-editor';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { doAction } from '@wordpress/hooks';\n\nfunction CopyButton( { text, children } ) {\n\tconst ref = useCopyToClipboard( text );\n\treturn (\n\t\t<Button variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nexport default class ErrorBoundary extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tcomponentDidCatch( error ) {\n\t\tthis.setState( { error } );\n\n\t\tdoAction( 'editor.ErrorBoundary.errorLogged', error );\n\t}\n\n\trender() {\n\t\tconst { error } = this.state;\n\t\tif ( ! error ) {\n\t\t\treturn this.props.children;\n\t\t}\n\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tclassName=\"customize-widgets-error-boundary\"\n\t\t\t\tactions={ [\n\t\t\t\t\t<CopyButton key=\"copy-error\" text={ error.stack }>\n\t\t\t\t\t\t{ __( 'Copy Error' ) }\n\t\t\t\t\t</CopyButton>,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ __( 'The editor has encountered an unexpected error.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"coreData\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"mediaUtils\"];","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction BlockInspectorButton( { inspector, closeMenu, ...props } ) {\n\tconst selectedBlockClientId = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSelectedBlockClientId(),\n\t\t[]\n\t);\n\n\tconst selectedBlock = useMemo(\n\t\t() => document.getElementById( `block-${ selectedBlockClientId }` ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\t// Open the inspector.\n\t\t\t\tinspector.open( {\n\t\t\t\t\treturnFocusWhenClose: selectedBlock,\n\t\t\t\t} );\n\t\t\t\t// Then close the dropdown menu.\n\t\t\t\tcloseMenu();\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ __( 'Show more settings' ) }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockInspectorButton;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keycodes\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"primitives\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst undo = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<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\" />\n\t</SVG>\n);\n\nexport default undo;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst redo = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<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\" />\n\t</SVG>\n);\n\nexport default redo;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst plus = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z\" />\n\t</SVG>\n);\n\nexport default plus;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst closeSmall = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<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\" />\n\t</SVG>\n);\n\nexport default closeSmall;\n","/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @example\n * ```js\n * import { store as customizeWidgetsStore } from '@wordpress/customize-widgets';\n * import { __ } from '@wordpress/i18n';\n * import { useSelect } from '@wordpress/data';\n *\n * const ExampleComponent = () => {\n *    const { isInserterOpened } = useSelect(\n *        ( select ) => select( customizeWidgetsStore ),\n *        []\n *    );\n *\n *    return isInserterOpened()\n *        ? __( 'Inserter is open' )\n *        : __( 'Inserter is closed.' );\n * };\n * ```\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tconst { rootClientId, insertionIndex } = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex };\n}\n","/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value                Whether the inserter should be\n *                                              opened (true) or closed (false).\n *                                              To specify an insertion point,\n *                                              use an object.\n * @param {string}         value.rootClientId   The root client ID to insert at.\n * @param {number}         value.insertionIndex The index to insert at.\n *\n * @example\n * ```js\n * import { store as customizeWidgetsStore } from '@wordpress/customize-widgets';\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { Button } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const ExampleComponent = () => {\n *   const { setIsInserterOpened } = useDispatch( customizeWidgetsStore );\n *   const [ isOpen, setIsOpen ] = useState( false );\n *\n *    return (\n *        <Button\n *            onClick={ () => {\n *                setIsInserterOpened( ! isOpen );\n *                setIsOpen( ! isOpen );\n *            } }\n *        >\n *            { __( 'Open/close inserter' ) }\n *        </Button>\n *    );\n * };\n * ```\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n","/**\n * Module Constants\n */\nexport const STORE_NAME = 'core/customize-widgets';\n","/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as actions from './actions';\nimport { STORE_NAME } from './constants';\n\n/**\n * Block editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registering-a-store\n *\n * @type {Object}\n */\nconst storeConfig = {\n\treducer,\n\tselectors,\n\tactions,\n};\n\n/**\n * Store definition for the edit widgets namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, storeConfig );\nregister( store );\n","/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer tracking whether the inserter is open.\n *\n * @param {boolean|Object} state\n * @param {Object}         action\n */\nfunction blockInserterPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value;\n\t}\n\treturn state;\n}\n\nexport default combineReducers( {\n\tblockInserterPanel,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalLibrary as Library } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../../store';\n\nfunction Inserter( { setIsOpened } ) {\n\tconst inserterTitleId = useInstanceId(\n\t\tInserter,\n\t\t'customize-widget-layout__inserter-panel-title'\n\t);\n\tconst insertionPoint = useSelect(\n\t\t( select ) =>\n\t\t\tselect( customizeWidgetsStore ).__experimentalGetInsertionPoint(),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"customize-widgets-layout__inserter-panel\"\n\t\t\taria-labelledby={ inserterTitleId }\n\t\t>\n\t\t\t<div className=\"customize-widgets-layout__inserter-panel-header\">\n\t\t\t\t<h2\n\t\t\t\t\tid={ inserterTitleId }\n\t\t\t\t\tclassName=\"customize-widgets-layout__inserter-panel-header-title\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add a block' ) }\n\t\t\t\t</h2>\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"customize-widgets-layout__inserter-panel-header-close-button\"\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tonClick={ () => setIsOpened( false ) }\n\t\t\t\t\taria-label={ __( 'Close inserter' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div className=\"customize-widgets-layout__inserter-panel-content\">\n\t\t\t\t<Library\n\t\t\t\t\trootClientId={ insertionPoint.rootClientId }\n\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\tinsertionPoint.insertionIndex\n\t\t\t\t\t}\n\t\t\t\t\tshowInserterHelpPanel\n\t\t\t\t\tonSelect={ () => setIsOpened( false ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default Inserter;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst external = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<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\" />\n\t</SVG>\n);\n\nexport default external;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst moreVertical = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\" />\n\t</SVG>\n);\n\nexport default moreVertical;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\nexport default function MoreMenuDropdown( {\n\tas: DropdownComponent = DropdownMenu,\n\tclassName,\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tlabel = __( 'Options' ),\n\tpopoverProps,\n\ttoggleProps,\n\tchildren,\n} ) {\n\treturn (\n\t\t<DropdownComponent\n\t\t\tclassName={ classnames(\n\t\t\t\t'interface-more-menu-dropdown',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ label }\n\t\t\tpopoverProps={ {\n\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t...popoverProps,\n\t\t\t\tclassName: classnames(\n\t\t\t\t\t'interface-more-menu-dropdown__content',\n\t\t\t\t\tpopoverProps?.className\n\t\t\t\t),\n\t\t\t} }\n\t\t\ttoggleProps={ {\n\t\t\t\ttooltipPosition: 'bottom',\n\t\t\t\t...toggleProps,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( onClose ) => children( onClose ) }\n\t\t</DropdownComponent>\n\t);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"deprecated\"];","/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Set a default complementary area.\n *\n * @param {string} scope Complementary area scope.\n * @param {string} area  Area identifier.\n *\n * @return {Object} Action object.\n */\nexport const setDefaultComplementaryArea = ( scope, area ) => ( {\n\ttype: 'SET_DEFAULT_COMPLEMENTARY_AREA',\n\tscope,\n\tarea,\n} );\n\n/**\n * Enable the complementary area.\n *\n * @param {string} scope Complementary area scope.\n * @param {string} area  Area identifier.\n */\nexport const enableComplementaryArea =\n\t( scope, area ) =>\n\t( { registry, dispatch } ) => {\n\t\t// Return early if there's no area.\n\t\tif ( ! area ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isComplementaryAreaVisible = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'isComplementaryAreaVisible' );\n\n\t\tif ( ! isComplementaryAreaVisible ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( scope, 'isComplementaryAreaVisible', true );\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'ENABLE_COMPLEMENTARY_AREA',\n\t\t\tscope,\n\t\t\tarea,\n\t\t} );\n\t};\n\n/**\n * Disable the complementary area.\n *\n * @param {string} scope Complementary area scope.\n */\nexport const disableComplementaryArea =\n\t( scope ) =>\n\t( { registry } ) => {\n\t\tconst isComplementaryAreaVisible = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'isComplementaryAreaVisible' );\n\n\t\tif ( isComplementaryAreaVisible ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( scope, 'isComplementaryAreaVisible', false );\n\t\t}\n\t};\n\n/**\n * Pins an item.\n *\n * @param {string} scope Item scope.\n * @param {string} item  Item identifier.\n *\n * @return {Object} Action object.\n */\nexport const pinItem =\n\t( scope, item ) =>\n\t( { registry } ) => {\n\t\t// Return early if there's no item.\n\t\tif ( ! item ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pinnedItems = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'pinnedItems' );\n\n\t\t// The item is already pinned, there's nothing to do.\n\t\tif ( pinnedItems?.[ item ] === true ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry.dispatch( preferencesStore ).set( scope, 'pinnedItems', {\n\t\t\t...pinnedItems,\n\t\t\t[ item ]: true,\n\t\t} );\n\t};\n\n/**\n * Unpins an item.\n *\n * @param {string} scope Item scope.\n * @param {string} item  Item identifier.\n */\nexport const unpinItem =\n\t( scope, item ) =>\n\t( { registry } ) => {\n\t\t// Return early if there's no item.\n\t\tif ( ! item ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pinnedItems = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'pinnedItems' );\n\n\t\tregistry.dispatch( preferencesStore ).set( scope, 'pinnedItems', {\n\t\t\t...pinnedItems,\n\t\t\t[ item ]: false,\n\t\t} );\n\t};\n\n/**\n * Returns an action object used in signalling that a feature should be toggled.\n *\n * @param {string} scope       The feature scope (e.g. core/edit-post).\n * @param {string} featureName The feature name.\n */\nexport function toggleFeature( scope, featureName ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( `dispatch( 'core/interface' ).toggleFeature`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `dispatch( 'core/preferences' ).toggle`,\n\t\t} );\n\n\t\tregistry.dispatch( preferencesStore ).toggle( scope, featureName );\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a feature should be set to\n * a true or false value\n *\n * @param {string}  scope       The feature scope (e.g. core/edit-post).\n * @param {string}  featureName The feature name.\n * @param {boolean} value       The value to set.\n *\n * @return {Object} Action object.\n */\nexport function setFeatureValue( scope, featureName, value ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( `dispatch( 'core/interface' ).setFeatureValue`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `dispatch( 'core/preferences' ).set`,\n\t\t} );\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( scope, featureName, !! value );\n\t};\n}\n\n/**\n * Returns an action object used in signalling that defaults should be set for features.\n *\n * @param {string}                  scope    The feature scope (e.g. core/edit-post).\n * @param {Object<string, boolean>} defaults A key/value map of feature names to values.\n *\n * @return {Object} Action object.\n */\nexport function setFeatureDefaults( scope, defaults ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( `dispatch( 'core/interface' ).setFeatureDefaults`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `dispatch( 'core/preferences' ).setDefaults`,\n\t\t} );\n\n\t\tregistry.dispatch( preferencesStore ).setDefaults( scope, defaults );\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user opened a modal.\n *\n * @param {string} name A string that uniquely identifies the modal.\n *\n * @return {Object} Action object.\n */\nexport function openModal( name ) {\n\treturn {\n\t\ttype: 'OPEN_MODAL',\n\t\tname,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed a modal.\n *\n * @return {Object} Action object.\n */\nexport function closeModal() {\n\treturn {\n\t\ttype: 'CLOSE_MODAL',\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Returns the complementary area that is active in a given scope.\n *\n * @param {Object} state Global application state.\n * @param {string} scope Item scope.\n *\n * @return {string | null | undefined} The complementary area that is active in the given scope.\n */\nexport const getActiveComplementaryArea = createRegistrySelector(\n\t( select ) => ( state, scope ) => {\n\t\tconst isComplementaryAreaVisible = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'isComplementaryAreaVisible'\n\t\t);\n\n\t\t// Return `undefined` to indicate that the user has never toggled\n\t\t// visibility, this is the vanilla default. Other code relies on this\n\t\t// nuance in the return value.\n\t\tif ( isComplementaryAreaVisible === undefined ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Return `null` to indicate the user hid the complementary area.\n\t\tif ( isComplementaryAreaVisible === false ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn state?.complementaryAreas?.[ scope ];\n\t}\n);\n\nexport const isComplementaryAreaLoading = createRegistrySelector(\n\t( select ) => ( state, scope ) => {\n\t\tconst isVisible = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'isComplementaryAreaVisible'\n\t\t);\n\t\tconst identifier = state?.complementaryAreas?.[ scope ];\n\n\t\treturn isVisible && identifier === undefined;\n\t}\n);\n\n/**\n * Returns a boolean indicating if an item is pinned or not.\n *\n * @param {Object} state Global application state.\n * @param {string} scope Scope.\n * @param {string} item  Item to check.\n *\n * @return {boolean} True if the item is pinned and false otherwise.\n */\nexport const isItemPinned = createRegistrySelector(\n\t( select ) => ( state, scope, item ) => {\n\t\tconst pinnedItems = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'pinnedItems'\n\t\t);\n\t\treturn pinnedItems?.[ item ] ?? true;\n\t}\n);\n\n/**\n * Returns a boolean indicating whether a feature is active for a particular\n * scope.\n *\n * @param {Object} state       The store state.\n * @param {string} scope       The scope of the feature (e.g. core/edit-post).\n * @param {string} featureName The name of the feature.\n *\n * @return {boolean} Is the feature enabled?\n */\nexport const isFeatureActive = createRegistrySelector(\n\t( select ) => ( state, scope, featureName ) => {\n\t\tdeprecated(\n\t\t\t`select( 'core/interface' ).isFeatureActive( scope, featureName )`,\n\t\t\t{\n\t\t\t\tsince: '6.0',\n\t\t\t\talternative: `select( 'core/preferences' ).get( scope, featureName )`,\n\t\t\t}\n\t\t);\n\n\t\treturn !! select( preferencesStore ).get( scope, featureName );\n\t}\n);\n\n/**\n * Returns true if a modal is active, or false otherwise.\n *\n * @param {Object} state     Global application state.\n * @param {string} modalName A string that uniquely identifies the modal.\n *\n * @return {boolean} Whether the modal is active.\n */\nexport function isModalActive( state, modalName ) {\n\treturn state.activeModal === modalName;\n}\n","/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\nexport function complementaryAreas( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_DEFAULT_COMPLEMENTARY_AREA': {\n\t\t\tconst { scope, area } = action;\n\n\t\t\t// If there's already an area, don't overwrite it.\n\t\t\tif ( state[ scope ] ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ scope ]: area,\n\t\t\t};\n\t\t}\n\t\tcase 'ENABLE_COMPLEMENTARY_AREA': {\n\t\t\tconst { scope, area } = action;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ scope ]: area,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer for storing the name of the open modal, or null if no modal is open.\n *\n * @param {Object} state  Previous state.\n * @param {Object} action Action object containing the `name` of the modal\n *\n * @return {Object} Updated state\n */\nexport function activeModal( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN_MODAL':\n\t\t\treturn action.name;\n\t\tcase 'CLOSE_MODAL':\n\t\t\treturn null;\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tcomplementaryAreas,\n\tactiveModal,\n} );\n","/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport * as actions from './actions';\nimport * as selectors from './selectors';\nimport reducer from './reducer';\nimport { STORE_NAME } from './constants';\n\n/**\n * Store definition for the interface namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, {\n\treducer,\n\tactions,\n\tselectors,\n} );\n\n// Once we build a more generic persistence plugin that works across types of stores\n// we'd be able to replace this with a register call.\nregister( store );\n","/**\n * The identifier for the data store.\n *\n * @type {string}\n */\nexport const STORE_NAME = 'core/interface';\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '0' },\n\t\tdescription: __( 'Convert the current heading to a paragraph.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '1-6' },\n\t\tdescription: __(\n\t\t\t'Convert the current paragraph or heading to a heading of level 1 to 6.'\n\t\t),\n\t},\n];\n","/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { displayShortcutList, shortcutAriaLabel } from '@wordpress/keycodes';\n\nfunction KeyCombination( { keyCombination, forceAriaLabel } ) {\n\tconst shortcut = keyCombination.modifier\n\t\t? displayShortcutList[ keyCombination.modifier ](\n\t\t\t\tkeyCombination.character\n\t\t  )\n\t\t: keyCombination.character;\n\tconst ariaLabel = keyCombination.modifier\n\t\t? shortcutAriaLabel[ keyCombination.modifier ](\n\t\t\t\tkeyCombination.character\n\t\t  )\n\t\t: keyCombination.character;\n\n\treturn (\n\t\t<kbd\n\t\t\tclassName=\"customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination\"\n\t\t\taria-label={ forceAriaLabel || ariaLabel }\n\t\t>\n\t\t\t{ ( Array.isArray( shortcut ) ? shortcut : [ shortcut ] ).map(\n\t\t\t\t( character, index ) => {\n\t\t\t\t\tif ( character === '+' ) {\n\t\t\t\t\t\treturn <Fragment key={ index }>{ character }</Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<kbd\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tclassName=\"customize-widgets-keyboard-shortcut-help-modal__shortcut-key\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ character }\n\t\t\t\t\t\t</kbd>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t</kbd>\n\t);\n}\n\nfunction Shortcut( { description, keyCombination, aliases = [], ariaLabel } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"customize-widgets-keyboard-shortcut-help-modal__shortcut-description\">\n\t\t\t\t{ description }\n\t\t\t</div>\n\t\t\t<div className=\"customize-widgets-keyboard-shortcut-help-modal__shortcut-term\">\n\t\t\t\t<KeyCombination\n\t\t\t\t\tkeyCombination={ keyCombination }\n\t\t\t\t\tforceAriaLabel={ ariaLabel }\n\t\t\t\t/>\n\t\t\t\t{ aliases.map( ( alias, index ) => (\n\t\t\t\t\t<KeyCombination\n\t\t\t\t\t\tkeyCombination={ alias }\n\t\t\t\t\t\tforceAriaLabel={ ariaLabel }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Shortcut;\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport Shortcut from './shortcut';\n\nfunction DynamicShortcut( { name } ) {\n\tconst { keyCombination, description, aliases } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetShortcutKeyCombination,\n\t\t\t\tgetShortcutDescription,\n\t\t\t\tgetShortcutAliases,\n\t\t\t} = select( keyboardShortcutsStore );\n\n\t\t\treturn {\n\t\t\t\tkeyCombination: getShortcutKeyCombination( name ),\n\t\t\t\taliases: getShortcutAliases( name ),\n\t\t\t\tdescription: getShortcutDescription( name ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\n\tif ( ! keyCombination ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Shortcut\n\t\t\tkeyCombination={ keyCombination }\n\t\t\tdescription={ description }\n\t\t\taliases={ aliases }\n\t\t/>\n\t);\n}\n\nexport default DynamicShortcut;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { textFormattingShortcuts } from './config';\nimport Shortcut from './shortcut';\nimport DynamicShortcut from './dynamic-shortcut';\n\nconst ShortcutList = ( { shortcuts } ) => (\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\t<ul\n\t\tclassName=\"customize-widgets-keyboard-shortcut-help-modal__shortcut-list\"\n\t\trole=\"list\"\n\t>\n\t\t{ shortcuts.map( ( shortcut, index ) => (\n\t\t\t<li\n\t\t\t\tclassName=\"customize-widgets-keyboard-shortcut-help-modal__shortcut\"\n\t\t\t\tkey={ index }\n\t\t\t>\n\t\t\t\t{ typeof shortcut === 'string' ? (\n\t\t\t\t\t<DynamicShortcut name={ shortcut } />\n\t\t\t\t) : (\n\t\t\t\t\t<Shortcut { ...shortcut } />\n\t\t\t\t) }\n\t\t\t</li>\n\t\t) ) }\n\t</ul>\n\t/* eslint-enable jsx-a11y/no-redundant-roles */\n);\n\nconst ShortcutSection = ( { title, shortcuts, className } ) => (\n\t<section\n\t\tclassName={ classnames(\n\t\t\t'customize-widgets-keyboard-shortcut-help-modal__section',\n\t\t\tclassName\n\t\t) }\n\t>\n\t\t{ !! title && (\n\t\t\t<h2 className=\"customize-widgets-keyboard-shortcut-help-modal__section-title\">\n\t\t\t\t{ title }\n\t\t\t</h2>\n\t\t) }\n\t\t<ShortcutList shortcuts={ shortcuts } />\n\t</section>\n);\n\nconst ShortcutCategorySection = ( {\n\ttitle,\n\tcategoryName,\n\tadditionalShortcuts = [],\n} ) => {\n\tconst categoryShortcuts = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( keyboardShortcutsStore ).getCategoryShortcuts(\n\t\t\t\tcategoryName\n\t\t\t);\n\t\t},\n\t\t[ categoryName ]\n\t);\n\n\treturn (\n\t\t<ShortcutSection\n\t\t\ttitle={ title }\n\t\t\tshortcuts={ categoryShortcuts.concat( additionalShortcuts ) }\n\t\t/>\n\t);\n};\n\nexport default function KeyboardShortcutHelpModal( {\n\tisModalActive,\n\ttoggleModal,\n} ) {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tregisterShortcut( {\n\t\tname: 'core/customize-widgets/keyboard-shortcuts',\n\t\tcategory: 'main',\n\t\tdescription: __( 'Display these keyboard shortcuts.' ),\n\t\tkeyCombination: {\n\t\t\tmodifier: 'access',\n\t\t\tcharacter: 'h',\n\t\t},\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/keyboard-shortcuts', toggleModal );\n\n\tif ( ! isModalActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"customize-widgets-keyboard-shortcut-help-modal\"\n\t\t\ttitle={ __( 'Keyboard shortcuts' ) }\n\t\t\tonRequestClose={ toggleModal }\n\t\t>\n\t\t\t<ShortcutSection\n\t\t\t\tclassName=\"customize-widgets-keyboard-shortcut-help-modal__main-shortcuts\"\n\t\t\t\tshortcuts={ [ 'core/customize-widgets/keyboard-shortcuts' ] }\n\t\t\t/>\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Global shortcuts' ) }\n\t\t\t\tcategoryName=\"global\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Selection shortcuts' ) }\n\t\t\t\tcategoryName=\"selection\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Block shortcuts' ) }\n\t\t\t\tcategoryName=\"block\"\n\t\t\t\tadditionalShortcuts={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tkeyCombination: { character: '/' },\n\t\t\t\t\t\tdescription: __(\n\t\t\t\t\t\t\t'Change the block type after adding a new paragraph.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t/* translators: The forward-slash character. e.g. '/'. */\n\t\t\t\t\t\tariaLabel: __( 'Forward-slash' ),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t\t<ShortcutSection\n\t\t\t\ttitle={ __( 'Text formatting' ) }\n\t\t\t\tshortcuts={ textFormattingShortcuts }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tToolbarDropdownMenu,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { external } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { MoreMenuDropdown } from '@wordpress/interface';\nimport { PreferenceToggleMenuItem } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\n\nexport default function MoreMenu() {\n\tconst [\n\t\tisKeyboardShortcutsModalActive,\n\t\tsetIsKeyboardShortcutsModalVisible,\n\t] = useState( false );\n\tconst toggleKeyboardShortcutsModal = () =>\n\t\tsetIsKeyboardShortcutsModalVisible( ! isKeyboardShortcutsModalActive );\n\n\tuseShortcut(\n\t\t'core/customize-widgets/keyboard-shortcuts',\n\t\ttoggleKeyboardShortcutsModal\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<MoreMenuDropdown as={ ToolbarDropdownMenu }>\n\t\t\t\t{ () => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup label={ _x( 'View', 'noun' ) }>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core/customize-widgets\"\n\t\t\t\t\t\t\t\tname=\"fixedToolbar\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t'Access all block and document tools in a single place'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsKeyboardShortcutsModalVisible( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.access( 'h' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Keyboard shortcuts' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core/customize-widgets\"\n\t\t\t\t\t\t\t\tname=\"welcomeGuide\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Welcome Guide' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/block-based-widgets-editor/'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Help' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup label={ __( 'Preferences' ) }>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core/customize-widgets\"\n\t\t\t\t\t\t\t\tname=\"keepCaretInsideBlock\"\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Contain text cursor inside block'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t'Aids screen readers by stopping text caret from leaving blocks.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Contain text cursor inside block activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Contain text cursor inside block deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</MoreMenuDropdown>\n\t\t\t<KeyboardShortcutHelpModal\n\t\t\t\tisModalActive={ isKeyboardShortcutsModalActive }\n\t\t\t\ttoggleModal={ toggleKeyboardShortcutsModal }\n\t\t\t/>\n\t\t</>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createPortal, useState, useEffect } from '@wordpress/element';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { NavigableToolbar } from '@wordpress/block-editor';\nimport { displayShortcut, isAppleOS } from '@wordpress/keycodes';\nimport { plus, undo as undoIcon, redo as redoIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport MoreMenu from '../more-menu';\n\nfunction Header( {\n\tsidebar,\n\tinserter,\n\tisInserterOpened,\n\tsetIsInserterOpened,\n\tisFixedToolbarActive,\n} ) {\n\tconst [ [ hasUndo, hasRedo ], setUndoRedo ] = useState( [\n\t\tsidebar.hasUndo(),\n\t\tsidebar.hasRedo(),\n\t] );\n\n\tconst shortcut = isAppleOS()\n\t\t? displayShortcut.primaryShift( 'z' )\n\t\t: displayShortcut.primary( 'y' );\n\n\tuseEffect( () => {\n\t\treturn sidebar.subscribeHistory( () => {\n\t\t\tsetUndoRedo( [ sidebar.hasUndo(), sidebar.hasRedo() ] );\n\t\t} );\n\t}, [ sidebar ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'customize-widgets-header', {\n\t\t\t\t\t'is-fixed-toolbar-active': isFixedToolbarActive,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<NavigableToolbar\n\t\t\t\t\tclassName=\"customize-widgets-header-toolbar\"\n\t\t\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\t\t>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ ! isRTL() ? undoIcon : redoIcon }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'Undo' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'z' ) }\n\t\t\t\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\t\t\t\taria-disabled={ ! hasUndo }\n\t\t\t\t\t\tonClick={ sidebar.undo }\n\t\t\t\t\t\tclassName=\"customize-widgets-editor-history-button undo-button\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'Redo' ) }\n\t\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\t\t\t\taria-disabled={ ! hasRedo }\n\t\t\t\t\t\tonClick={ sidebar.redo }\n\t\t\t\t\t\tclassName=\"customize-widgets-editor-history-button redo-button\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tclassName=\"customize-widgets-header-toolbar__inserter-toggle\"\n\t\t\t\t\t\tisPressed={ isInserterOpened }\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Add block',\n\t\t\t\t\t\t\t'Generic label for block inserter button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsInserterOpened( ( isOpen ) => ! isOpen );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<MoreMenu />\n\t\t\t\t</NavigableToolbar>\n\t\t\t</div>\n\n\t\t\t{ createPortal(\n\t\t\t\t<Inserter setIsOpened={ setIsInserterOpened } />,\n\t\t\t\tinserter.contentContainer[ 0 ]\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default Header;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"isShallowEqual\"];","// @ts-check\n/**\n * WordPress dependencies\n */\nimport { serialize, parse, createBlock } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Convert settingId to widgetId.\n *\n * @param {string} settingId The setting id.\n * @return {string} The widget id.\n */\nexport function settingIdToWidgetId( settingId ) {\n\tconst matches = settingId.match( /^widget_(.+)(?:\\[(\\d+)\\])$/ );\n\n\tif ( matches ) {\n\t\tconst idBase = matches[ 1 ];\n\t\tconst number = parseInt( matches[ 2 ], 10 );\n\n\t\treturn `${ idBase }-${ number }`;\n\t}\n\n\treturn settingId;\n}\n\n/**\n * Transform a block to a customizable widget.\n *\n * @param {WPBlock} block          The block to be transformed from.\n * @param {Object}  existingWidget The widget to be extended from.\n * @return {Object} The transformed widget.\n */\nexport function blockToWidget( block, existingWidget = null ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\tif ( block.attributes.id ) {\n\t\t\t// Widget that does not extend WP_Widget.\n\t\t\twidget = {\n\t\t\t\tid: block.attributes.id,\n\t\t\t};\n\t\t} else {\n\t\t\tconst { encoded, hash, raw, ...rest } = block.attributes.instance;\n\n\t\t\t// Widget that extends WP_Widget.\n\t\t\twidget = {\n\t\t\t\tidBase: block.attributes.idBase,\n\t\t\t\tinstance: {\n\t\t\t\t\t...existingWidget?.instance,\n\t\t\t\t\t// Required only for the customizer.\n\t\t\t\t\tis_widget_customizer_js_value: true,\n\t\t\t\t\tencoded_serialized_instance: encoded,\n\t\t\t\t\tinstance_hash_key: hash,\n\t\t\t\t\traw_instance: raw,\n\t\t\t\t\t...rest,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t} else {\n\t\tconst instance = {\n\t\t\tcontent: serialize( block ),\n\t\t};\n\t\twidget = {\n\t\t\tidBase: 'block',\n\t\t\twidgetClass: 'WP_Widget_Block',\n\t\t\tinstance: {\n\t\t\t\traw_instance: instance,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst { form, rendered, ...restExistingWidget } = existingWidget || {};\n\n\treturn {\n\t\t...restExistingWidget,\n\t\t...widget,\n\t};\n}\n\n/**\n * Transform a widget to a block.\n *\n * @param {Object} widget          The widget to be transformed from.\n * @param {string} widget.id       The widget id.\n * @param {string} widget.idBase   The id base of the widget.\n * @param {number} widget.number   The number/index of the widget.\n * @param {Object} widget.instance The instance of the widget.\n * @return {WPBlock} The transformed block.\n */\nexport function widgetToBlock( { id, idBase, number, instance } ) {\n\tlet block;\n\n\tconst {\n\t\tencoded_serialized_instance: encoded,\n\t\tinstance_hash_key: hash,\n\t\traw_instance: raw,\n\t\t...rest\n\t} = instance;\n\n\tif ( idBase === 'block' ) {\n\t\tconst parsedBlocks = parse( raw.content ?? '', {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tblock = parsedBlocks.length\n\t\t\t? parsedBlocks[ 0 ]\n\t\t\t: createBlock( 'core/paragraph', {} );\n\t} else if ( number ) {\n\t\t// Widget that extends WP_Widget.\n\t\tblock = createBlock( 'core/legacy-widget', {\n\t\t\tidBase,\n\t\t\tinstance: {\n\t\t\t\tencoded,\n\t\t\t\thash,\n\t\t\t\traw,\n\t\t\t\t...rest,\n\t\t\t},\n\t\t} );\n\t} else {\n\t\t// Widget that does not extend WP_Widget.\n\t\tblock = createBlock( 'core/legacy-widget', {\n\t\t\tid,\n\t\t} );\n\t}\n\n\treturn addWidgetIdToBlock( block, id );\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tlet previewBound = false;\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t\tpreviewBound = true;\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tif ( previewBound ) {\n\t\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t\t'focus-control-for-setting',\n\t\t\t\t\thandleFocus\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo(\n\t\t() => [ focusedWidgetIdRef, focusWidget ],\n\t\t[ focusedWidgetIdRef, focusWidget ]\n\t);\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"privateApis\"];","/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/customize-widgets'\n\t);\n","/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useSidebarBlockEditor from './use-sidebar-block-editor';\nimport useBlocksFocusControl from '../focus-control/use-blocks-focus-control';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function SidebarEditorProvider( {\n\tsidebar,\n\tsettings,\n\tchildren,\n} ) {\n\tconst [ blocks, onInput, onChange ] = useSidebarBlockEditor( sidebar );\n\n\tuseBlocksFocusControl( blocks );\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ onInput }\n\t\t\tonChange={ onChange }\n\t\t\tsettings={ settings }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t{ children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n","/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { getWidgetIdFromBlock, addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { blockToWidget, widgetToBlock } from '../../utils';\n\nfunction widgetsToBlocks( widgets ) {\n\treturn widgets.map( ( widget ) => widgetToBlock( widget ) );\n}\n\nexport default function useSidebarBlockEditor( sidebar ) {\n\tconst [ blocks, setBlocks ] = useState( () =>\n\t\twidgetsToBlocks( sidebar.getWidgets() )\n\t);\n\n\tuseEffect( () => {\n\t\treturn sidebar.subscribe( ( prevWidgets, nextWidgets ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tconst prevWidgetsMap = new Map(\n\t\t\t\t\tprevWidgets.map( ( widget ) => [ widget.id, widget ] )\n\t\t\t\t);\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextBlocks = nextWidgets.map( ( nextWidget ) => {\n\t\t\t\t\tconst prevWidget = prevWidgetsMap.get( nextWidget.id );\n\n\t\t\t\t\t// Bail out updates.\n\t\t\t\t\tif ( prevWidget && prevWidget === nextWidget ) {\n\t\t\t\t\t\treturn prevBlocksMap.get( nextWidget.id );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn widgetToBlock( nextWidget );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates.\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn nextBlocks;\n\t\t\t} );\n\t\t} );\n\t}, [ sidebar ] );\n\n\tconst onChangeBlocks = useCallback(\n\t\t( nextBlocks ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextWidgets = nextBlocks.map( ( nextBlock ) => {\n\t\t\t\t\tconst widgetId = getWidgetIdFromBlock( nextBlock );\n\n\t\t\t\t\t// Update existing widgets.\n\t\t\t\t\tif ( widgetId && prevBlocksMap.has( widgetId ) ) {\n\t\t\t\t\t\tconst prevBlock = prevBlocksMap.get( widgetId );\n\t\t\t\t\t\tconst prevWidget = sidebar.getWidget( widgetId );\n\n\t\t\t\t\t\t// Bail out updates by returning the previous widgets.\n\t\t\t\t\t\t// Deep equality is necessary until the block editor's internals changes.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfastDeepEqual( nextBlock, prevBlock ) &&\n\t\t\t\t\t\t\tprevWidget\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn prevWidget;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn blockToWidget( nextBlock, prevWidget );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a new widget.\n\t\t\t\t\treturn blockToWidget( nextBlock );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates if the updated widgets are the same.\n\t\t\t\tif ( isShallowEqual( sidebar.getWidgets(), nextWidgets ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst addedWidgetIds = sidebar.setWidgets( nextWidgets );\n\n\t\t\t\treturn nextBlocks.reduce(\n\t\t\t\t\t( updatedNextBlocks, nextBlock, index ) => {\n\t\t\t\t\t\tconst addedWidgetId = addedWidgetIds[ index ];\n\n\t\t\t\t\t\tif ( addedWidgetId !== null ) {\n\t\t\t\t\t\t\t// Only create a new instance if necessary to prevent\n\t\t\t\t\t\t\t// the whole editor from re-rendering on every edit.\n\t\t\t\t\t\t\tif ( updatedNextBlocks === nextBlocks ) {\n\t\t\t\t\t\t\t\tupdatedNextBlocks = nextBlocks.slice();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tupdatedNextBlocks[ index ] = addWidgetIdToBlock(\n\t\t\t\t\t\t\t\tnextBlock,\n\t\t\t\t\t\t\t\taddedWidgetId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn updatedNextBlocks;\n\t\t\t\t\t},\n\t\t\t\t\tnextBlocks\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ sidebar ]\n\t);\n\n\treturn [ blocks, onChangeBlocks, onChangeBlocks ];\n}\n","/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { useFocusControl } from '.';\n\nexport default function useBlocksFocusControl( blocks ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst [ focusedWidgetIdRef ] = useFocusControl();\n\n\tconst blocksRef = useRef( blocks );\n\n\tuseEffect( () => {\n\t\tblocksRef.current = blocks;\n\t}, [ blocks ] );\n\n\tuseEffect( () => {\n\t\tif ( focusedWidgetIdRef.current ) {\n\t\t\tconst focusedBlock = blocksRef.current.find(\n\t\t\t\t( block ) =>\n\t\t\t\t\tgetWidgetIdFromBlock( block ) === focusedWidgetIdRef.current\n\t\t\t);\n\n\t\t\tif ( focusedBlock ) {\n\t\t\t\tselectBlock( focusedBlock.clientId );\n\t\t\t\t// If the block is already being selected, the DOM node won't\n\t\t\t\t// get focused again automatically.\n\t\t\t\t// We select the DOM and focus it manually here.\n\t\t\t\tconst blockNode = document.querySelector(\n\t\t\t\t\t`[data-block=\"${ focusedBlock.clientId }\"]`\n\t\t\t\t);\n\t\t\t\tblockNode?.focus();\n\t\t\t}\n\t\t}\n\t}, [ focusedWidgetIdRef, selectBlock ] );\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button, ExternalLink } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nexport default function WelcomeGuide( { sidebar } ) {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isEntirelyBlockWidgets = sidebar\n\t\t.getWidgets()\n\t\t.every( ( widget ) => widget.id.startsWith( 'block-' ) );\n\n\treturn (\n\t\t<div className=\"customize-widgets-welcome-guide\">\n\t\t\t<div className=\"customize-widgets-welcome-guide__image__wrapper\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source\n\t\t\t\t\t\tsrcSet=\"https://s.w.org/images/block-editor/welcome-editor.svg\"\n\t\t\t\t\t\tmedia=\"(prefers-reduced-motion: reduce)\"\n\t\t\t\t\t/>\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName=\"customize-widgets-welcome-guide__image\"\n\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/welcome-editor.gif\"\n\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t/>\n\t\t\t\t</picture>\n\t\t\t</div>\n\t\t\t<h1 className=\"customize-widgets-welcome-guide__heading\">\n\t\t\t\t{ __( 'Welcome to block Widgets' ) }\n\t\t\t</h1>\n\t\t\t<p className=\"customize-widgets-welcome-guide__text\">\n\t\t\t\t{ isEntirelyBlockWidgets\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'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.'\n\t\t\t\t\t  )\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.'\n\t\t\t\t\t  ) }\n\t\t\t</p>\n\t\t\t<Button\n\t\t\t\tclassName=\"customize-widgets-welcome-guide__button\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () =>\n\t\t\t\t\ttoggle( 'core/customize-widgets', 'welcomeGuide' )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ __( 'Got it' ) }\n\t\t\t</Button>\n\t\t\t<hr className=\"customize-widgets-welcome-guide__separator\" />\n\t\t\t{ ! isEntirelyBlockWidgets && (\n\t\t\t\t<p className=\"customize-widgets-welcome-guide__more-info\">\n\t\t\t\t\t{ __( 'Want to stick with the old widgets?' ) }\n\t\t\t\t\t<br />\n\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t'https://wordpress.org/plugins/classic-widgets/'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Get the Classic Widgets plugin.' ) }\n\t\t\t\t\t</ExternalLink>\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t<p className=\"customize-widgets-welcome-guide__more-info\">\n\t\t\t\t{ __( 'New to the block editor?' ) }\n\t\t\t\t<br />\n\t\t\t\t<ExternalLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/documentation/article/wordpress-block-editor/'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( \"Here's a detailed guide.\" ) }\n\t\t\t\t</ExternalLink>\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { isAppleOS } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\nfunction KeyboardShortcuts( { undo, redo, save } ) {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTextLevelShortcut = ( event, level ) => {\n\t\tevent.preventDefault();\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tif ( blockName !== 'core/paragraph' && blockName !== 'core/heading' ) {\n\t\t\treturn;\n\t\t}\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseShortcut( 'core/customize-widgets/undo', ( event ) => {\n\t\tundo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/redo', ( event ) => {\n\t\tredo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/save', ( event ) => {\n\t\tevent.preventDefault();\n\t\tsave();\n\t} );\n\n\tuseShortcut(\n\t\t'core/customize-widgets/transform-heading-to-paragraph',\n\t\t( event ) => handleTextLevelShortcut( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/customize-widgets/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTextLevelShortcut( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nfunction KeyboardShortcutsRegister() {\n\tconst { registerShortcut, unregisterShortcut } = useDispatch(\n\t\tkeyboardShortcutsStore\n\t);\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/undo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Undo your last changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/redo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Redo your last undo.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t\t// Disable on Apple OS because it conflicts with the browser's\n\t\t\t// history shortcut. It's a fine alias for both Windows and Linux.\n\t\t\t// Since there's no conflict for Ctrl+Shift+Z on both Windows and\n\t\t\t// Linux, we keep it as the default for consistency.\n\t\t\taliases: isAppleOS()\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodifier: 'primary',\n\t\t\t\t\t\t\tcharacter: 'y',\n\t\t\t\t\t\t},\n\t\t\t\t  ],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/save',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Save your changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 's',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: `0`,\n\t\t\t},\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/customize-widgets/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunregisterShortcut( 'core/customize-widgets/undo' );\n\t\t\tunregisterShortcut( 'core/customize-widgets/redo' );\n\t\t\tunregisterShortcut( 'core/customize-widgets/save' );\n\t\t};\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\nexport default KeyboardShortcuts;\n","/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport {\n\tButtonBlockAppender,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\nexport default function BlockAppender( props ) {\n\tconst ref = useRef();\n\tconst isBlocksListEmpty = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockCount() === 0\n\t);\n\n\t// Move the focus to the block appender to prevent focus from\n\t// being lost when emptying the widget area.\n\tuseEffect( () => {\n\t\tif ( isBlocksListEmpty && ref.current ) {\n\t\t\tconst { ownerDocument } = ref.current;\n\n\t\t\tif (\n\t\t\t\t! ownerDocument.activeElement ||\n\t\t\t\townerDocument.activeElement === ownerDocument.body\n\t\t\t) {\n\t\t\t\tref.current.focus();\n\t\t\t}\n\t\t}\n\t}, [ isBlocksListEmpty ] );\n\n\treturn <ButtonBlockAppender { ...props } ref={ ref } />;\n}\n","/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, createPortal } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tBlockSelectionClearer,\n\tBlockInspector,\n\tCopyHandler,\n\tObserveTyping,\n\tWritingFlow,\n\tBlockEditorKeyboardShortcuts,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableEditorStyles as EditorStyles,\n} from '@wordpress/block-editor';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from '../block-inspector-button';\nimport Header from '../header';\nimport useInserter from '../inserter/use-inserter';\nimport SidebarEditorProvider from './sidebar-editor-provider';\nimport WelcomeGuide from '../welcome-guide';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport BlockAppender from '../block-appender';\n\nexport default function SidebarBlockEditor( {\n\tblockEditorSettings,\n\tsidebar,\n\tinserter,\n\tinspector,\n} ) {\n\tconst [ isInserterOpened, setIsInserterOpened ] = useInserter( inserter );\n\tconst {\n\t\thasUploadPermissions,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tisWelcomeGuideActive,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ) ?? true,\n\t\t\tisFixedToolbarActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tisWelcomeGuideActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\thasFixedToolbar: isFixedToolbarActive,\n\t\t\tkeepCaretInsideBlock,\n\t\t\t__unstableHasCustomAppender: true,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tsetIsInserterOpened,\n\t] );\n\n\tif ( isWelcomeGuideActive ) {\n\t\treturn <WelcomeGuide sidebar={ sidebar } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\n\t\t\t<SidebarEditorProvider sidebar={ sidebar } settings={ settings }>\n\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\tundo={ sidebar.undo }\n\t\t\t\t\tredo={ sidebar.redo }\n\t\t\t\t\tsave={ sidebar.save }\n\t\t\t\t/>\n\n\t\t\t\t<Header\n\t\t\t\t\tsidebar={ sidebar }\n\t\t\t\t\tinserter={ inserter }\n\t\t\t\t\tisInserterOpened={ isInserterOpened }\n\t\t\t\t\tsetIsInserterOpened={ setIsInserterOpened }\n\t\t\t\t\tisFixedToolbarActive={ isFixedToolbarActive }\n\t\t\t\t/>\n\n\t\t\t\t<CopyHandler>\n\t\t\t\t\t<BlockTools>\n\t\t\t\t\t\t<EditorStyles styles={ settings.defaultEditorStyles } />\n\t\t\t\t\t\t<BlockSelectionClearer>\n\t\t\t\t\t\t\t<WritingFlow className=\"editor-styles-wrapper\">\n\t\t\t\t\t\t\t\t<ObserveTyping>\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\trenderAppender={ BlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ObserveTyping>\n\t\t\t\t\t\t\t</WritingFlow>\n\t\t\t\t\t\t</BlockSelectionClearer>\n\t\t\t\t\t</BlockTools>\n\t\t\t\t</CopyHandler>\n\n\t\t\t\t{ createPortal(\n\t\t\t\t\t// This is a temporary hack to prevent button component inside <BlockInspector>\n\t\t\t\t\t// from submitting form when type=\"button\" is not specified.\n\t\t\t\t\t<form onSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t</form>,\n\t\t\t\t\tinspector.contentContainer[ 0 ]\n\t\t\t\t) }\n\t\t\t</SidebarEditorProvider>\n\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton\n\t\t\t\t\t\tinspector={ inspector }\n\t\t\t\t\t\tcloseMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, select as selectStore } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../../store';\n\nexport default function useInserter( inserter ) {\n\tconst isInserterOpened = useSelect(\n\t\t( select ) => select( customizeWidgetsStore ).isInserterOpened(),\n\t\t[]\n\t);\n\tconst { setIsInserterOpened } = useDispatch( customizeWidgetsStore );\n\n\tuseEffect( () => {\n\t\tif ( isInserterOpened ) {\n\t\t\tinserter.open();\n\t\t} else {\n\t\t\tinserter.close();\n\t\t}\n\t}, [ inserter, isInserterOpened ] );\n\n\treturn [\n\t\tisInserterOpened,\n\t\tuseCallback(\n\t\t\t( updater ) => {\n\t\t\t\tlet isOpen = updater;\n\t\t\t\tif ( typeof updater === 'function' ) {\n\t\t\t\t\tisOpen = updater(\n\t\t\t\t\t\tselectStore( customizeWidgetsStore ).isInserterOpened()\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tsetIsInserterOpened( isOpen );\n\t\t\t},\n\t\t\t[ setIsInserterOpened ]\n\t\t),\n\t];\n}\n","/**\n * WordPress dependencies\n */\nimport { createContext, useMemo, useContext } from '@wordpress/element';\n\nexport const SidebarControlsContext = createContext();\n\nexport default function SidebarControls( {\n\tsidebarControls,\n\tactiveSidebarControl,\n\tchildren,\n} ) {\n\tconst context = useMemo(\n\t\t() => ( {\n\t\t\tsidebarControls,\n\t\t\tactiveSidebarControl,\n\t\t} ),\n\t\t[ sidebarControls, activeSidebarControl ]\n\t);\n\n\treturn (\n\t\t<SidebarControlsContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</SidebarControlsContext.Provider>\n\t);\n}\n\nexport function useSidebarControls() {\n\tconst { sidebarControls } = useContext( SidebarControlsContext );\n\n\treturn sidebarControls;\n}\n\nexport function useActiveSidebarControl() {\n\tconst { activeSidebarControl } = useContext( SidebarControlsContext );\n\n\treturn activeSidebarControl;\n}\n","/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useRef, createPortal } from '@wordpress/element';\nimport { SlotFillProvider, Popover } from '@wordpress/components';\nimport { ShortcutProvider } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport ErrorBoundary from '../error-boundary';\nimport SidebarBlockEditor from '../sidebar-block-editor';\nimport FocusControl from '../focus-control';\nimport SidebarControls from '../sidebar-controls';\nimport useClearSelectedBlock from './use-clear-selected-block';\n\nexport default function CustomizeWidgets( {\n\tapi,\n\tsidebarControls,\n\tblockEditorSettings,\n} ) {\n\tconst [ activeSidebarControl, setActiveSidebarControl ] = useState( null );\n\tconst parentContainer = document.getElementById(\n\t\t'customize-theme-controls'\n\t);\n\tconst popoverRef = useRef();\n\n\tuseClearSelectedBlock( activeSidebarControl, popoverRef );\n\n\tuseEffect( () => {\n\t\tconst unsubscribers = sidebarControls.map( ( sidebarControl ) =>\n\t\t\tsidebarControl.subscribe( ( expanded ) => {\n\t\t\t\tif ( expanded ) {\n\t\t\t\t\tsetActiveSidebarControl( sidebarControl );\n\t\t\t\t}\n\t\t\t} )\n\t\t);\n\n\t\treturn () => {\n\t\t\tunsubscribers.forEach( ( unsubscriber ) => unsubscriber() );\n\t\t};\n\t}, [ sidebarControls ] );\n\n\tconst activeSidebar =\n\t\tactiveSidebarControl &&\n\t\tcreatePortal(\n\t\t\t<ErrorBoundary>\n\t\t\t\t<SidebarBlockEditor\n\t\t\t\t\tkey={ activeSidebarControl.id }\n\t\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t\t\tsidebar={ activeSidebarControl.sidebarAdapter }\n\t\t\t\t\tinserter={ activeSidebarControl.inserter }\n\t\t\t\t\tinspector={ activeSidebarControl.inspector }\n\t\t\t\t/>\n\t\t\t</ErrorBoundary>,\n\t\t\tactiveSidebarControl.container[ 0 ]\n\t\t);\n\n\t// We have to portal this to the parent of both the editor and the inspector,\n\t// so that the popovers will appear above both of them.\n\tconst popover =\n\t\tparentContainer &&\n\t\tcreatePortal(\n\t\t\t<div className=\"customize-widgets-popover\" ref={ popoverRef }>\n\t\t\t\t<Popover.Slot />\n\t\t\t</div>,\n\t\t\tparentContainer\n\t\t);\n\n\treturn (\n\t\t<ShortcutProvider>\n\t\t\t<SlotFillProvider>\n\t\t\t\t<SidebarControls\n\t\t\t\t\tsidebarControls={ sidebarControls }\n\t\t\t\t\tactiveSidebarControl={ activeSidebarControl }\n\t\t\t\t>\n\t\t\t\t\t<FocusControl\n\t\t\t\t\t\tapi={ api }\n\t\t\t\t\t\tsidebarControls={ sidebarControls }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ activeSidebar }\n\t\t\t\t\t\t{ popover }\n\t\t\t\t\t</FocusControl>\n\t\t\t\t</SidebarControls>\n\t\t\t</SlotFillProvider>\n\t\t</ShortcutProvider>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * We can't just use <BlockSelectionClearer> because the customizer has\n * many root nodes rather than just one in the post editor.\n * We need to listen to the focus events in all those roots, and also in\n * the preview iframe.\n * This hook will clear the selected block when focusing outside the editor,\n * with a few exceptions:\n * 1. Focusing on popovers.\n * 2. Focusing on the inspector.\n * 3. Focusing on any modals/dialogs.\n * These cases are normally triggered by user interactions from the editor,\n * not by explicitly focusing outside the editor, hence no need for clearing.\n *\n * @param {Object} sidebarControl The sidebar control instance.\n * @param {Object} popoverRef     The ref object of the popover node container.\n */\nexport default function useClearSelectedBlock( sidebarControl, popoverRef ) {\n\tconst { hasSelectedBlock, hasMultiSelection } =\n\t\tuseSelect( blockEditorStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( popoverRef.current && sidebarControl ) {\n\t\t\tconst inspector = sidebarControl.inspector;\n\t\t\tconst container = sidebarControl.container[ 0 ];\n\t\t\tconst ownerDocument = container.ownerDocument;\n\t\t\tconst ownerWindow = ownerDocument.defaultView;\n\n\t\t\tfunction handleClearSelectedBlock( element ) {\n\t\t\t\tif (\n\t\t\t\t\t// 1. Make sure there are blocks being selected.\n\t\t\t\t\t( hasSelectedBlock() || hasMultiSelection() ) &&\n\t\t\t\t\t// 2. The element should exist in the DOM (not deleted).\n\t\t\t\t\telement &&\n\t\t\t\t\townerDocument.contains( element ) &&\n\t\t\t\t\t// 3. It should also not exist in the container, the popover, nor the dialog.\n\t\t\t\t\t! container.contains( element ) &&\n\t\t\t\t\t! popoverRef.current.contains( element ) &&\n\t\t\t\t\t! element.closest( '[role=\"dialog\"]' ) &&\n\t\t\t\t\t// 4. The inspector should not be opened.\n\t\t\t\t\t! inspector.expanded()\n\t\t\t\t) {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle mouse down in the same document.\n\t\t\tfunction handleMouseDown( event ) {\n\t\t\t\thandleClearSelectedBlock( event.target );\n\t\t\t}\n\t\t\t// Handle focusing outside the current document, like to iframes.\n\t\t\tfunction handleBlur() {\n\t\t\t\thandleClearSelectedBlock( ownerDocument.activeElement );\n\t\t\t}\n\n\t\t\townerDocument.addEventListener( 'mousedown', handleMouseDown );\n\t\t\townerWindow.addEventListener( 'blur', handleBlur );\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousedown',\n\t\t\t\t\thandleMouseDown\n\t\t\t\t);\n\t\t\t\townerWindow.removeEventListener( 'blur', handleBlur );\n\t\t\t};\n\t\t}\n\t}, [\n\t\tpopoverRef,\n\t\tsidebarControl,\n\t\thasSelectedBlock,\n\t\thasMultiSelection,\n\t\tclearSelectedBlock,\n\t] );\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport getInspectorSection from './inspector-section';\n\nconst getInspectorSectionId = ( sidebarId ) =>\n\t`widgets-inspector-${ sidebarId }`;\n\nexport default function getSidebarSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\tconst reduceMotionMediaQuery = window.matchMedia(\n\t\t'(prefers-reduced-motion: reduce)'\n\t);\n\tlet isReducedMotion = reduceMotionMediaQuery.matches;\n\treduceMotionMediaQuery.addEventListener( 'change', ( event ) => {\n\t\tisReducedMotion = event.matches;\n\t} );\n\n\treturn class SidebarSection extends customize.Section {\n\t\tready() {\n\t\t\tconst InspectorSection = getInspectorSection();\n\t\t\tthis.inspector = new InspectorSection(\n\t\t\t\tgetInspectorSectionId( this.id ),\n\t\t\t\t{\n\t\t\t\t\ttitle: __( 'Block Settings' ),\n\t\t\t\t\tparentSection: this,\n\t\t\t\t\tcustomizeAction: [\n\t\t\t\t\t\t__( 'Customizing' ),\n\t\t\t\t\t\t__( 'Widgets' ),\n\t\t\t\t\t\tthis.params.title,\n\t\t\t\t\t].join( ' ▸ ' ),\n\t\t\t\t}\n\t\t\t);\n\t\t\tcustomize.section.add( this.inspector );\n\t\t\tthis.contentContainer[ 0 ].classList.add(\n\t\t\t\t'customize-widgets__sidebar-section'\n\t\t\t);\n\t\t}\n\t\thasSubSectionOpened() {\n\t\t\treturn this.inspector.expanded();\n\t\t}\n\t\tonChangeExpanded( expanded, _args ) {\n\t\t\tconst controls = this.controls();\n\t\t\tconst args = {\n\t\t\t\t..._args,\n\t\t\t\tcompleteCallback() {\n\t\t\t\t\tcontrols.forEach( ( control ) => {\n\t\t\t\t\t\tcontrol.onChangeSectionExpanded?.( expanded, args );\n\t\t\t\t\t} );\n\t\t\t\t\t_args.completeCallback?.();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif ( args.manualTransition ) {\n\t\t\t\tif ( expanded ) {\n\t\t\t\t\tthis.contentContainer.addClass( [ 'busy', 'open' ] );\n\t\t\t\t\tthis.contentContainer.removeClass( 'is-sub-section-open' );\n\t\t\t\t\tthis.contentContainer\n\t\t\t\t\t\t.closest( '.wp-full-overlay' )\n\t\t\t\t\t\t.addClass( 'section-open' );\n\t\t\t\t} else {\n\t\t\t\t\tthis.contentContainer.addClass( [\n\t\t\t\t\t\t'busy',\n\t\t\t\t\t\t'is-sub-section-open',\n\t\t\t\t\t] );\n\t\t\t\t\tthis.contentContainer\n\t\t\t\t\t\t.closest( '.wp-full-overlay' )\n\t\t\t\t\t\t.addClass( 'section-open' );\n\t\t\t\t\tthis.contentContainer.removeClass( 'open' );\n\t\t\t\t}\n\n\t\t\t\tconst handleTransitionEnd = () => {\n\t\t\t\t\tthis.contentContainer.removeClass( 'busy' );\n\t\t\t\t\targs.completeCallback();\n\t\t\t\t};\n\n\t\t\t\tif ( isReducedMotion ) {\n\t\t\t\t\thandleTransitionEnd();\n\t\t\t\t} else {\n\t\t\t\t\tthis.contentContainer.one(\n\t\t\t\t\t\t'transitionend',\n\t\t\t\t\t\thandleTransitionEnd\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsuper.onChangeExpanded( expanded, args );\n\t\t\t}\n\t\t}\n\t};\n}\n","/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading  The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number}   timeout  The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[ this.historyIndex ] = this._getWidgetIds().map(\n\t\t\t( widgetId ) => this.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"dom\"];","/**\n * WordPress dependencies\n */\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SidebarAdapter from '../components/sidebar-block-editor/sidebar-adapter';\nimport getInserterOuterSection from './inserter-outer-section';\nimport { store as customizeWidgetsStore } from '../store';\n\nconst getInserterId = ( controlId ) => `widgets-inserter-${ controlId }`;\n\nexport default function getSidebarControl() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\treturn class SidebarControl extends customize.Control {\n\t\tconstructor( ...args ) {\n\t\t\tsuper( ...args );\n\n\t\t\tthis.subscribers = new Set();\n\t\t}\n\n\t\tready() {\n\t\t\tconst InserterOuterSection = getInserterOuterSection();\n\t\t\tthis.inserter = new InserterOuterSection(\n\t\t\t\tgetInserterId( this.id ),\n\t\t\t\t{}\n\t\t\t);\n\t\t\tcustomize.section.add( this.inserter );\n\n\t\t\tthis.sectionInstance = customize.section( this.section() );\n\n\t\t\tthis.inspector = this.sectionInstance.inspector;\n\n\t\t\tthis.sidebarAdapter = new SidebarAdapter( this.setting, customize );\n\t\t}\n\n\t\tsubscribe( callback ) {\n\t\t\tthis.subscribers.add( callback );\n\n\t\t\treturn () => {\n\t\t\t\tthis.subscribers.delete( callback );\n\t\t\t};\n\t\t}\n\n\t\tonChangeSectionExpanded( expanded, args ) {\n\t\t\tif ( ! args.unchanged ) {\n\t\t\t\t// Close the inserter when the section collapses.\n\t\t\t\tif ( ! expanded ) {\n\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tthis.subscribers.forEach( ( subscriber ) =>\n\t\t\t\t\tsubscriber( expanded, args )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { MoveToWidgetArea, getWidgetIdFromBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseSidebarControls,\n\tuseActiveSidebarControl,\n} from '../components/sidebar-controls';\nimport { useFocusControl } from '../components/focus-control';\nimport { blockToWidget } from '../utils';\n\nconst withMoveToSidebarToolbarItem = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tlet widgetId = getWidgetIdFromBlock( props );\n\t\tconst sidebarControls = useSidebarControls();\n\t\tconst activeSidebarControl = useActiveSidebarControl();\n\t\tconst hasMultipleSidebars = sidebarControls?.length > 1;\n\t\tconst blockName = props.name;\n\t\tconst clientId = props.clientId;\n\t\tconst canInsertBlockInSidebar = useSelect(\n\t\t\t( select ) => {\n\t\t\t\t// Use an empty string to represent the root block list, which\n\t\t\t\t// in the customizer editor represents a sidebar/widget area.\n\t\t\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\t\t\tblockName,\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t},\n\t\t\t[ blockName ]\n\t\t);\n\t\tconst block = useSelect(\n\t\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t\t[ clientId ]\n\t\t);\n\t\tconst { removeBlock } = useDispatch( blockEditorStore );\n\t\tconst [ , focusWidget ] = useFocusControl();\n\n\t\tfunction moveToSidebar( sidebarControlId ) {\n\t\t\tconst newSidebarControl = sidebarControls.find(\n\t\t\t\t( sidebarControl ) => sidebarControl.id === sidebarControlId\n\t\t\t);\n\n\t\t\tif ( widgetId ) {\n\t\t\t\t/**\n\t\t\t\t * If there's a widgetId, move it to the other sidebar.\n\t\t\t\t */\n\t\t\t\tconst oldSetting = activeSidebarControl.setting;\n\t\t\t\tconst newSetting = newSidebarControl.setting;\n\n\t\t\t\toldSetting( oldSetting().filter( ( id ) => id !== widgetId ) );\n\t\t\t\tnewSetting( [ ...newSetting(), widgetId ] );\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * If there isn't a widgetId, it's most likely a inner block.\n\t\t\t\t * First, remove the block in the original sidebar,\n\t\t\t\t * then, create a new widget in the new sidebar and get back its widgetId.\n\t\t\t\t */\n\t\t\t\tconst sidebarAdapter = newSidebarControl.sidebarAdapter;\n\n\t\t\t\tremoveBlock( clientId );\n\t\t\t\tconst addedWidgetIds = sidebarAdapter.setWidgets( [\n\t\t\t\t\t...sidebarAdapter.getWidgets(),\n\t\t\t\t\tblockToWidget( block ),\n\t\t\t\t] );\n\t\t\t\t// The last non-null id is the added widget's id.\n\t\t\t\twidgetId = addedWidgetIds.reverse().find( ( id ) => !! id );\n\t\t\t}\n\n\t\t\t// Move focus to the moved widget and expand the sidebar.\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ hasMultipleSidebars && canInsertBlockInSidebar && (\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<MoveToWidgetArea\n\t\t\t\t\t\t\twidgetAreas={ sidebarControls.map(\n\t\t\t\t\t\t\t\t( sidebarControl ) => ( {\n\t\t\t\t\t\t\t\t\tid: sidebarControl.id,\n\t\t\t\t\t\t\t\t\tname: sidebarControl.params.label,\n\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\tsidebarControl.params.description,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tcurrentWidgetAreaId={ activeSidebarControl?.id }\n\t\t\t\t\t\t\tonSelect={ moveToSidebar }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withMoveToSidebarToolbarItem'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/customize-widgets/block-edit',\n\twithMoveToSidebarToolbarItem\n);\n","/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { MediaUpload } from '@wordpress/media-utils';\n\nconst replaceMediaUpload = () => MediaUpload;\n\naddFilter(\n\t'editor.MediaUpload',\n\t'core/edit-widgets/replace-media-upload',\n\treplaceMediaUpload\n);\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\n\nconst { wp } = window;\n\nconst withWideWidgetDisplay = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { idBase } = props.attributes;\n\t\tconst isWide =\n\t\t\twp.customize.Widgets.data.availableWidgets.find(\n\t\t\t\t( widget ) => widget.id_base === idBase\n\t\t\t)?.is_wide ?? false;\n\n\t\treturn <BlockEdit { ...props } isWide={ isWide } />;\n\t},\n\t'withWideWidgetDisplay'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/customize-widgets/wide-widget-display',\n\twithWideWidgetDisplay\n);\n","/**\n * WordPress dependencies\n */\nimport { createRoot } from '@wordpress/element';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalGetCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterLegacyWidgetVariations,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\nimport {\n\tsetFreeformContentHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { dispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport CustomizeWidgets from './components/customize-widgets';\nimport getSidebarSection from './controls/sidebar-section';\nimport getSidebarControl from './controls/sidebar-control';\nimport './filters';\n\nconst { wp } = window;\n\nconst DISABLED_BLOCKS = [\n\t'core/more',\n\t'core/block',\n\t'core/freeform',\n\t'core/template-part',\n];\nconst ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;\n\n/**\n * Initializes the widgets block editor in the customizer.\n *\n * @param {string} editorName          The editor name.\n * @param {Object} blockEditorSettings Block editor settings.\n */\nexport function initialize( editorName, blockEditorSettings ) {\n\tdispatch( preferencesStore ).setDefaults( 'core/customize-widgets', {\n\t\tfixedToolbar: false,\n\t\twelcomeGuide: true,\n\t} );\n\n\tdispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();\n\tconst coreBlocks = __experimentalGetCoreBlocks().filter( ( block ) => {\n\t\treturn ! (\n\t\t\tDISABLED_BLOCKS.includes( block.name ) ||\n\t\t\tblock.name.startsWith( 'core/post' ) ||\n\t\t\tblock.name.startsWith( 'core/query' ) ||\n\t\t\tblock.name.startsWith( 'core/site' ) ||\n\t\t\tblock.name.startsWith( 'core/navigation' )\n\t\t);\n\t} );\n\tregisterCoreBlocks( coreBlocks );\n\tregisterLegacyWidgetBlock();\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS,\n\t\t} );\n\t}\n\tregisterLegacyWidgetVariations( blockEditorSettings );\n\tregisterWidgetGroupBlock();\n\n\t// As we are unregistering `core/freeform` to avoid the Classic block, we must\n\t// replace it with something as the default freeform content handler. Failure to\n\t// do this will result in errors in the default block parser.\n\t// see: https://github.com/WordPress/gutenberg/issues/33097\n\tsetFreeformContentHandlerName( 'core/html' );\n\n\tconst SidebarControl = getSidebarControl( blockEditorSettings );\n\n\twp.customize.sectionConstructor.sidebar = getSidebarSection();\n\twp.customize.controlConstructor.sidebar_block_editor = SidebarControl;\n\n\tconst container = document.createElement( 'div' );\n\tdocument.body.appendChild( container );\n\n\twp.customize.bind( 'ready', () => {\n\t\tconst sidebarControls = [];\n\t\twp.customize.control.each( ( control ) => {\n\t\t\tif ( control instanceof SidebarControl ) {\n\t\t\t\tsidebarControls.push( control );\n\t\t\t}\n\t\t} );\n\n\t\tcreateRoot( container ).render(\n\t\t\t<CustomizeWidgets\n\t\t\t\tapi={ wp.customize }\n\t\t\t\tsidebarControls={ sidebarControls }\n\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t/>\n\t\t);\n\t} );\n}\nexport { store } from './store';\n","/**\n * WordPress dependencies\n */\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../store';\n\nexport default function getInserterOuterSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\tconst OuterSection = customize.OuterSection;\n\t// Override the OuterSection class to handle multiple outer sections.\n\t// It closes all the other outer sections whenever one is opened.\n\t// The result is that at most one outer section can be opened at the same time.\n\tcustomize.OuterSection = class extends OuterSection {\n\t\tonChangeExpanded( expanded, args ) {\n\t\t\tif ( expanded ) {\n\t\t\t\tcustomize.section.each( ( section ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsection.params.type === 'outer' &&\n\t\t\t\t\t\tsection.id !== this.id\n\t\t\t\t\t) {\n\t\t\t\t\t\tif ( section.expanded() ) {\n\t\t\t\t\t\t\tsection.collapse();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn super.onChangeExpanded( expanded, args );\n\t\t}\n\t};\n\t// Handle constructor so that \"params.type\" can be correctly pointed to \"outer\".\n\tcustomize.sectionConstructor.outer = customize.OuterSection;\n\n\treturn class InserterOuterSection extends customize.OuterSection {\n\t\tconstructor( ...args ) {\n\t\t\tsuper( ...args );\n\n\t\t\t// This is necessary since we're creating a new class which is not identical to the original OuterSection.\n\t\t\t// @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436\n\t\t\tthis.params.type = 'outer';\n\n\t\t\tthis.activeElementBeforeExpanded = null;\n\n\t\t\tconst ownerWindow =\n\t\t\t\tthis.contentContainer[ 0 ].ownerDocument.defaultView;\n\n\t\t\t// Handle closing the inserter when pressing the Escape key.\n\t\t\townerWindow.addEventListener(\n\t\t\t\t'keydown',\n\t\t\t\t( event ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.expanded() &&\n\t\t\t\t\t\t( event.keyCode === ESCAPE ||\n\t\t\t\t\t\t\tevent.code === 'Escape' ) &&\n\t\t\t\t\t\t! event.defaultPrevented\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Use capture mode to make this run before other event listeners.\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tthis.contentContainer.addClass( 'widgets-inserter' );\n\n\t\t\t// Set a flag if the state is being changed from open() or close().\n\t\t\t// Don't propagate the event if it's an internal action to prevent infinite loop.\n\t\t\tthis.isFromInternalAction = false;\n\t\t\tthis.expanded.bind( () => {\n\t\t\t\tif ( ! this.isFromInternalAction ) {\n\t\t\t\t\t// Propagate the event to React to sync the state.\n\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\tthis.expanded()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isFromInternalAction = false;\n\t\t\t} );\n\t\t}\n\t\topen() {\n\t\t\tif ( ! this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tthis.activeElementBeforeExpanded =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.expand( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// We have to do this in a \"completeCallback\" or else the elements will not yet be visible/tabbable.\n\t\t\t\t\t\t// The first one should be the close button,\n\t\t\t\t\t\t// we want to skip it and choose the second one instead, which is the search box.\n\t\t\t\t\t\tconst searchBox =\n\t\t\t\t\t\t\tfocus.tabbable.find( contentContainer )[ 1 ];\n\t\t\t\t\t\tif ( searchBox ) {\n\t\t\t\t\t\t\tsearchBox.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\tclose() {\n\t\t\tif ( this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tconst activeElement =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.collapse( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t// Only do this if the active element which triggers the action is inside the inserter,\n\t\t\t\t\t\t// (the close button for instance). In that case the focus will be lost.\n\t\t\t\t\t\t// Otherwise, we don't hijack the focus when the user is focusing on other elements\n\t\t\t\t\t\t// (like the quick inserter).\n\t\t\t\t\t\tif ( contentContainer.contains( activeElement ) ) {\n\t\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t\tif ( this.activeElementBeforeExpanded ) {\n\t\t\t\t\t\t\t\tthis.activeElementBeforeExpanded.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t};\n}\n","export default function getInspectorSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\treturn class InspectorSection extends customize.Section {\n\t\tconstructor( id, options ) {\n\t\t\tsuper( id, options );\n\n\t\t\tthis.parentSection = options.parentSection;\n\n\t\t\tthis.returnFocusWhenClose = null;\n\t\t\tthis._isOpen = false;\n\t\t}\n\t\tget isOpen() {\n\t\t\treturn this._isOpen;\n\t\t}\n\t\tset isOpen( value ) {\n\t\t\tthis._isOpen = value;\n\t\t\tthis.triggerActiveCallbacks();\n\t\t}\n\t\tready() {\n\t\t\tthis.contentContainer[ 0 ].classList.add(\n\t\t\t\t'customize-widgets-layout__inspector'\n\t\t\t);\n\t\t}\n\t\tisContextuallyActive() {\n\t\t\treturn this.isOpen;\n\t\t}\n\t\tonChangeExpanded( expanded, args ) {\n\t\t\tsuper.onChangeExpanded( expanded, args );\n\n\t\t\tif ( this.parentSection && ! args.unchanged ) {\n\t\t\t\tif ( expanded ) {\n\t\t\t\t\tthis.parentSection.collapse( {\n\t\t\t\t\t\tmanualTransition: true,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tthis.parentSection.expand( {\n\t\t\t\t\t\tmanualTransition: true,\n\t\t\t\t\t\tcompleteCallback: () => {\n\t\t\t\t\t\t\t// Return focus after finishing the transition.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tthis.returnFocusWhenClose &&\n\t\t\t\t\t\t\t\t! this.contentContainer[ 0 ].contains(\n\t\t\t\t\t\t\t\t\tthis.returnFocusWhenClose\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tthis.returnFocusWhenClose.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\topen( { returnFocusWhenClose } = {} ) {\n\t\t\tthis.isOpen = true;\n\t\t\tthis.returnFocusWhenClose = returnFocusWhenClose;\n\n\t\t\tthis.expand( {\n\t\t\t\tallowMultiple: true,\n\t\t\t} );\n\t\t}\n\t\tclose() {\n\t\t\tthis.collapse( {\n\t\t\t\tallowMultiple: true,\n\t\t\t} );\n\t\t}\n\t\tcollapse( options ) {\n\t\t\t// Overridden collapse() function. Mostly call the parent collapse(), but also\n\t\t\t// move our .isOpen to false.\n\t\t\t// Initially, I tried tracking this with onChangeExpanded(), but it doesn't work\n\t\t\t// because the block settings sidebar is a layer \"on top of\" the G editor sidebar.\n\t\t\t//\n\t\t\t// For example, when closing the block settings sidebar, the G\n\t\t\t// editor sidebar would display, and onChangeExpanded in\n\t\t\t// inspector-section would run with expanded=true, but I want\n\t\t\t// isOpen to be false when the block settings is closed.\n\t\t\tthis.isOpen = false;\n\t\t\tsuper.collapse( options );\n\t\t}\n\t\ttriggerActiveCallbacks() {\n\t\t\t// Manually fire the callbacks associated with moving this.active\n\t\t\t// from false to true.  \"active\" is always true for this section,\n\t\t\t// and \"isContextuallyActive\" reflects if the block settings\n\t\t\t// sidebar is currently visible, that is, it has replaced the main\n\t\t\t// Gutenberg view.\n\t\t\t// The WP customizer only checks \".isContextuallyActive()\" when\n\t\t\t// \".active\" changes values. But our \".active\" never changes value.\n\t\t\t// The WP customizer never foresaw a section being used a way we\n\t\t\t// fit the block settings sidebar into a section. By manually\n\t\t\t// triggering the \"this.active\" callbacks, we force the WP\n\t\t\t// customizer to query our .isContextuallyActive() function and\n\t\t\t// update its view of our status.\n\t\t\tthis.active.callbacks.fireWith( this.active, [ false, true ] );\n\t\t}\n\t};\n}\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","equal","a","b","constructor","keys","Map","size","entries","has","get","Set","ArrayBuffer","isView","RegExp","source","flags","valueOf","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag","value","window","CopyButton","text","children","ref","useCopyToClipboard","Button","variant","ErrorBoundary","Component","super","this","state","error","componentDidCatch","setState","doAction","render","Warning","className","actions","stack","__","props","inspector","closeMenu","selectedBlockClientId","useSelect","select","blockEditorStore","getSelectedBlockClientId","selectedBlock","useMemo","document","getElementById","MenuItem","onClick","open","returnFocusWhenClose","SVG","xmlns","viewBox","Path","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","setIsInserterOpened","type","storeConfig","reducer","combineReducers","action","selectors","store","createReduxStore","register","Inserter","setIsOpened","inserterTitleId","useInstanceId","insertionPoint","customizeWidgetsStore","id","icon","closeSmall","__experimentalInsertionIndex","showInserterHelpPanel","onSelect","MoreMenuDropdown","as","DropdownComponent","DropdownMenu","label","popoverProps","toggleProps","classnames","moreVertical","placement","tooltipPosition","onClose","setDefaultComplementaryArea","scope","area","enableComplementaryArea","registry","dispatch","preferencesStore","set","disableComplementaryArea","pinItem","item","pinnedItems","unpinItem","toggleFeature","featureName","deprecated","since","alternative","toggle","setFeatureValue","setFeatureDefaults","defaults","setDefaults","openModal","name","closeModal","getActiveComplementaryArea","createRegistrySelector","isComplementaryAreaVisible","complementaryAreas","isComplementaryAreaLoading","isVisible","identifier","isItemPinned","isFeatureActive","isModalActive","modalName","activeModal","textFormattingShortcuts","keyCombination","modifier","character","description","KeyCombination","forceAriaLabel","shortcut","displayShortcutList","ariaLabel","shortcutAriaLabel","map","index","Fragment","aliases","alias","getShortcutKeyCombination","getShortcutDescription","getShortcutAliases","keyboardShortcutsStore","ShortcutList","shortcuts","role","ShortcutSection","title","ShortcutCategorySection","categoryName","additionalShortcuts","categoryShortcuts","getCategoryShortcuts","concat","KeyboardShortcutHelpModal","toggleModal","registerShortcut","useDispatch","category","useShortcut","Modal","onRequestClose","MoreMenu","isKeyboardShortcutsModalActive","setIsKeyboardShortcutsModalVisible","useState","toggleKeyboardShortcutsModal","ToolbarDropdownMenu","MenuGroup","_x","PreferenceToggleMenuItem","info","messageActivated","messageDeactivated","displayShortcut","external","href","target","rel","VisuallyHidden","sidebar","inserter","isFixedToolbarActive","hasUndo","hasRedo","setUndoRedo","isAppleOS","useEffect","subscribeHistory","NavigableToolbar","ToolbarButton","isRTL","redoIcon","undoIcon","undo","redo","isPressed","plus","isOpen","createPortal","contentContainer","settingIdToWidgetId","settingId","matches","match","parseInt","blockToWidget","block","existingWidget","widget","attributes","instance","encoded","hash","raw","rest","idBase","is_widget_customizer_js_value","encoded_serialized_instance","instance_hash_key","raw_instance","widgetClass","content","serialize","form","rendered","restExistingWidget","widgetToBlock","number","parsedBlocks","parse","__unstableSkipAutop","createBlock","addWidgetIdToBlock","FocusControlContext","createContext","FocusControl","api","sidebarControls","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","useCallback","widgetId","sidebarControl","setting","includes","sectionInstance","expand","completeCallback","handleFocus","previewBound","handleReady","previewer","preview","bind","unbind","context","Provider","useFocusControl","useContext","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","ExperimentalBlockEditorProvider","blockEditorPrivateApis","SidebarEditorProvider","settings","blocks","onInput","onChange","setBlocks","getWidgets","subscribe","prevWidgets","nextWidgets","prevBlocks","prevWidgetsMap","prevBlocksMap","getWidgetIdFromBlock","nextBlocks","nextWidget","prevWidget","isShallowEqual","onChangeBlocks","nextBlock","prevBlock","getWidget","fastDeepEqual","addedWidgetIds","setWidgets","reduce","updatedNextBlocks","addedWidgetId","slice","useSidebarBlockEditor","selectBlock","blocksRef","useRef","focusedBlock","find","clientId","blockNode","querySelector","focus","useBlocksFocusControl","useSubRegistry","WelcomeGuide","isEntirelyBlockWidgets","every","startsWith","srcSet","media","src","width","height","alt","ExternalLink","KeyboardShortcuts","save","replaceBlocks","getBlockName","getBlockAttributes","handleTextLevelShortcut","event","level","preventDefault","destinationBlockName","currentClientId","blockName","textAlign","destinationTextAlign","forEach","Register","unregisterShortcut","BlockAppender","isBlocksListEmpty","getBlockCount","ownerDocument","activeElement","body","ButtonBlockAppender","SidebarBlockEditor","blockEditorSettings","close","updater","selectStore","useInserter","hasUploadPermissions","keepCaretInsideBlock","isWelcomeGuideActive","coreStore","canUser","mediaUploadBlockEditor","onError","argumentsObject","uploadMedia","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalSetIsInserterOpened","mediaUpload","hasFixedToolbar","__unstableHasCustomAppender","BlockEditorKeyboardShortcuts","CopyHandler","BlockTools","styles","defaultEditorStyles","BlockSelectionClearer","WritingFlow","ObserveTyping","BlockList","renderAppender","onSubmit","BlockInspector","__unstableBlockSettingsMenuFirstItem","SidebarControlsContext","SidebarControls","activeSidebarControl","CustomizeWidgets","setActiveSidebarControl","parentContainer","popoverRef","hasSelectedBlock","hasMultiSelection","clearSelectedBlock","container","ownerWindow","defaultView","handleClearSelectedBlock","element","contains","closest","expanded","handleMouseDown","handleBlur","addEventListener","removeEventListener","useClearSelectedBlock","unsubscribers","unsubscriber","activeSidebar","sidebarAdapter","popover","Popover","ShortcutProvider","SlotFillProvider","getInspectorSectionId","sidebarId","wp","parseWidgetId","widgetIdToSettingId","SidebarAdapter","locked","widgetsCache","WeakMap","subscribers","history","_getWidgetIds","historyIndex","historySubscribers","_debounceSetHistory","leading","callback","timeout","timerID","isLeading","debounced","args","result","clearTimeout","setTimeout","cancel","debounce","_pushHistory","_replaceHistory","_handleSettingChange","_handleAllSettingsChange","add","delete","_emit","listener","_createWidget","widgetModel","customize","Widgets","availableWidgets","findWhere","id_base","settingArgs","transport","data","selectiveRefreshableWidgets","create","_removeWidget","remove","_updateWidget","_updateWidgets","nextWidgetIds","filter","_seek","currentWidgets","widgets","getInserterId","controlId","withMoveToSidebarToolbarItem","createHigherOrderComponent","BlockEdit","useSidebarControls","useActiveSidebarControl","hasMultipleSidebars","canInsertBlockInSidebar","canInsertBlockType","getBlock","removeBlock","BlockControls","MoveToWidgetArea","widgetAreas","params","currentWidgetAreaId","sidebarControlId","newSidebarControl","oldSetting","newSetting","reverse","addFilter","MediaUpload","withWideWidgetDisplay","isWide","is_wide","DISABLED_BLOCKS","ENABLE_EXPERIMENTAL_FSE_BLOCKS","initialize","editorName","fixedToolbar","welcomeGuide","blocksStore","__experimentalReapplyBlockTypeFilters","coreBlocks","__experimentalGetCoreBlocks","registerCoreBlocks","registerLegacyWidgetBlock","__experimentalRegisterExperimentalCoreBlocks","enableFSEBlocks","registerLegacyWidgetVariations","registerWidgetGroupBlock","setFreeformContentHandlerName","SidebarControl","Control","ready","InserterOuterSection","OuterSection","onChangeExpanded","section","each","collapse","sectionConstructor","outer","activeElementBeforeExpanded","keyCode","ESCAPE","code","defaultPrevented","stopPropagation","addClass","isFromInternalAction","searchBox","getInserterOuterSection","onChangeSectionExpanded","unchanged","subscriber","getSidebarControl","reduceMotionMediaQuery","matchMedia","isReducedMotion","Section","InspectorSection","options","parentSection","_isOpen","triggerActiveCallbacks","classList","isContextuallyActive","manualTransition","allowMultiple","active","callbacks","fireWith","getInspectorSection","customizeAction","hasSubSectionOpened","_args","controls","control","removeClass","handleTransitionEnd","one","getSidebarSection","controlConstructor","sidebar_block_editor","createElement","appendChild","createRoot"],"sourceRoot":""}

Copyright © 2019 by b0y-101