File: /www/wwwroot/www.waciwang.com/wp-content/plugins/gutenberg/build/scripts/edit-widgets/index.js.map
{
"version": 3,
"sources": ["package-external:@wordpress/blocks", "package-external:@wordpress/data", "package-external:@wordpress/deprecated", "package-external:@wordpress/element", "package-external:@wordpress/block-library", "package-external:@wordpress/core-data", "package-external:@wordpress/widgets", "package-external:@wordpress/preferences", "package-external:@wordpress/api-fetch", "package-external:@wordpress/i18n", "package-external:@wordpress/notices", "package-external:@wordpress/components", "package-external:@wordpress/primitives", "vendor-external:react/jsx-runtime", "package-external:@wordpress/viewport", "package-external:@wordpress/compose", "package-external:@wordpress/plugins", "package-external:@wordpress/block-editor", "package-external:@wordpress/private-apis", "package-external:@wordpress/hooks", "package-external:@wordpress/media-utils", "package-external:@wordpress/patterns", "package-external:@wordpress/keyboard-shortcuts", "package-external:@wordpress/keycodes", "package-external:@wordpress/url", "package-external:@wordpress/dom", "../../../packages/edit-widgets/src/index.js", "../../../packages/edit-widgets/src/store/index.js", "../../../packages/edit-widgets/src/store/reducer.js", "../../../packages/edit-widgets/src/store/resolvers.js", "../../../packages/edit-widgets/src/store/actions.js", "../../../node_modules/clsx/dist/clsx.mjs", "../../../packages/interface/src/components/complementary-area/index.js", "../../../packages/icons/src/library/block-default.tsx", "../../../packages/icons/src/library/check.tsx", "../../../packages/icons/src/library/close-small.tsx", "../../../packages/icons/src/library/drawer-left.tsx", "../../../packages/icons/src/library/drawer-right.tsx", "../../../packages/icons/src/library/external.tsx", "../../../packages/icons/src/library/list-view.tsx", "../../../packages/icons/src/library/more-vertical.tsx", "../../../packages/icons/src/library/plus.tsx", "../../../packages/icons/src/library/redo.tsx", "../../../packages/icons/src/library/star-empty.tsx", "../../../packages/icons/src/library/star-filled.tsx", "../../../packages/icons/src/library/undo.tsx", "../../../packages/interface/src/components/complementary-area-toggle/index.js", "../../../packages/interface/src/store/index.js", "../../../packages/interface/src/store/actions.js", "../../../packages/interface/src/store/deprecated.js", "../../../packages/interface/src/store/selectors.js", "../../../packages/interface/src/store/reducer.js", "../../../packages/interface/src/store/constants.js", "../../../packages/interface/src/components/complementary-area-header/index.js", "../../../packages/interface/src/components/complementary-area-more-menu-item/index.js", "../../../packages/interface/src/components/action-item/index.js", "../../../packages/interface/src/components/pinned-items/index.js", "../../../packages/admin-ui/src/navigable-region/index.tsx", "../../../packages/interface/src/components/interface-skeleton/index.js", "../../../packages/edit-widgets/src/store/transformers.js", "../../../packages/edit-widgets/src/store/utils.js", "../../../packages/edit-widgets/src/store/constants.js", "../../../packages/edit-widgets/src/store/selectors.js", "../../../packages/edit-widgets/src/store/private-selectors.js", "../../../packages/edit-widgets/src/lock-unlock.js", "../../../packages/edit-widgets/src/filters/move-to-widget-area.js", "../../../packages/edit-widgets/src/filters/replace-media-upload.js", "../../../packages/edit-widgets/src/blocks/widget-area/index.js", "../../../packages/edit-widgets/build-module/blocks/widget-area/block.json", "../../../packages/edit-widgets/src/blocks/widget-area/edit/index.js", "../../../packages/edit-widgets/src/blocks/widget-area/edit/inner-blocks.js", "../../../packages/edit-widgets/src/blocks/widget-area/edit/use-is-dragging-within.js", "../../../packages/edit-widgets/src/components/layout/index.js", "../../../packages/edit-widgets/src/components/error-boundary/index.js", "../../../packages/edit-widgets/src/components/widget-areas-block-editor-provider/index.js", "../../../packages/edit-widgets/src/components/keyboard-shortcuts/index.js", "../../../packages/edit-widgets/src/hooks/use-last-selected-widget-area.js", "../../../packages/edit-widgets/src/constants.js", "../../../packages/edit-widgets/src/components/sidebar/index.js", "../../../packages/edit-widgets/src/components/sidebar/widget-areas.js", "../../../packages/edit-widgets/src/components/layout/interface.js", "../../../packages/edit-widgets/src/components/header/index.js", "../../../packages/edit-widgets/src/components/header/document-tools/index.js", "../../../packages/edit-widgets/src/components/header/undo-redo/undo.js", "../../../packages/edit-widgets/src/components/header/undo-redo/redo.js", "../../../packages/edit-widgets/src/components/save-button/index.js", "../../../packages/edit-widgets/src/components/more-menu/index.js", "../../../packages/edit-widgets/src/components/keyboard-shortcut-help-modal/index.js", "../../../packages/edit-widgets/src/components/keyboard-shortcut-help-modal/config.js", "../../../packages/edit-widgets/src/components/keyboard-shortcut-help-modal/shortcut.js", "../../../packages/edit-widgets/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js", "../../../packages/edit-widgets/src/components/more-menu/tools-more-menu-group.js", "../../../packages/edit-widgets/src/components/widget-areas-block-editor-content/index.js", "../../../packages/edit-widgets/src/components/notices/index.js", "../../../packages/edit-widgets/src/components/secondary-sidebar/index.js", "../../../packages/edit-widgets/src/components/secondary-sidebar/inserter-sidebar.js", "../../../packages/edit-widgets/src/hooks/use-widget-library-insertion-point.js", "../../../packages/edit-widgets/src/components/secondary-sidebar/list-view-sidebar.js", "../../../packages/edit-widgets/src/components/layout/unsaved-changes-warning.js", "../../../packages/edit-widgets/src/components/welcome-guide/index.js"],
"sourcesContent": ["module.exports = window.wp.blocks;", "module.exports = window.wp.data;", "module.exports = window.wp.deprecated;", "module.exports = window.wp.element;", "module.exports = window.wp.blockLibrary;", "module.exports = window.wp.coreData;", "module.exports = window.wp.widgets;", "module.exports = window.wp.preferences;", "module.exports = window.wp.apiFetch;", "module.exports = window.wp.i18n;", "module.exports = window.wp.notices;", "module.exports = window.wp.components;", "module.exports = window.wp.primitives;", "module.exports = window.ReactJSXRuntime;", "module.exports = window.wp.viewport;", "module.exports = window.wp.compose;", "module.exports = window.wp.plugins;", "module.exports = window.wp.blockEditor;", "module.exports = window.wp.privateApis;", "module.exports = window.wp.hooks;", "module.exports = window.wp.mediaUtils;", "module.exports = window.wp.patterns;", "module.exports = window.wp.keyboardShortcuts;", "module.exports = window.wp.keycodes;", "module.exports = window.wp.url;", "module.exports = window.wp.dom;", "/**\n * WordPress dependencies\n */\nimport {\n\tregisterBlockType,\n\tunstable__bootstrapServerSideBlockDefinitions, // eslint-disable-line camelcase\n\tsetFreeformContentHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { dispatch } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { StrictMode, createRoot } from '@wordpress/element';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalGetCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport { __experimentalFetchLinkSuggestions as fetchLinkSuggestions } from '@wordpress/core-data';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterLegacyWidgetVariations,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport './store';\nimport './filters';\nimport * as widgetArea from './blocks/widget-area';\nimport Layout from './components/layout';\nimport {\n\tALLOW_REUSABLE_BLOCKS,\n\tENABLE_EXPERIMENTAL_FSE_BLOCKS,\n} from './constants';\n\nconst disabledBlocks = [\n\t'core/more',\n\t'core/freeform',\n\t'core/template-part',\n\t...( ALLOW_REUSABLE_BLOCKS ? [] : [ 'core/block' ] ),\n];\n\n/**\n * Initializes the block editor in the widgets screen.\n *\n * @param {string} id ID of the root element to render the screen in.\n * @param {Object} settings Block editor settings.\n */\nexport function initializeEditor( id, settings ) {\n\tconst target = document.getElementById( id );\n\tconst root = createRoot( target );\n\n\tconst coreBlocks = __experimentalGetCoreBlocks().filter( ( block ) => {\n\t\treturn ! (\n\t\t\tdisabledBlocks.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\tblock.name.startsWith( 'core/term' )\n\t\t);\n\t} );\n\n\tdispatch( preferencesStore ).setDefaults( 'core/edit-widgets', {\n\t\tfixedToolbar: false,\n\t\twelcomeGuide: true,\n\t\tshowBlockBreadcrumbs: true,\n\t\tthemeStyles: true,\n\t} );\n\n\tdispatch( blocksStore ).reapplyBlockTypeFilters();\n\tregisterCoreBlocks( coreBlocks );\n\tregisterLegacyWidgetBlock();\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS,\n\t\t} );\n\t}\n\tregisterLegacyWidgetVariations( settings );\n\tregisterBlock( widgetArea );\n\tregisterWidgetGroupBlock();\n\n\tsettings.__experimentalFetchLinkSuggestions = ( search, searchOptions ) =>\n\t\tfetchLinkSuggestions( search, searchOptions, settings );\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\troot.render(\n\t\t<StrictMode>\n\t\t\t<Layout blockEditorSettings={ settings } />\n\t\t</StrictMode>\n\t);\n\n\treturn root;\n}\n\n/**\n * Compatibility export under the old `initialize` name.\n */\nexport const initialize = initializeEditor;\n\nexport function reinitializeEditor() {\n\tdeprecated( 'wp.editWidgets.reinitializeEditor', {\n\t\tsince: '6.2',\n\t\tversion: '6.3',\n\t} );\n}\n\n/**\n * Function to register an individual block.\n *\n * @param {Object} block The block to be registered.\n */\nconst registerBlock = ( block ) => {\n\tif ( ! block ) {\n\t\treturn;\n\t}\n\tconst { metadata, settings, name } = block;\n\tif ( metadata ) {\n\t\tunstable__bootstrapServerSideBlockDefinitions( { [ name ]: metadata } );\n\t}\n\tregisterBlockType( name, settings );\n};\n\nexport { store } from './store';\n", "/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as resolvers from './resolvers';\nimport * as selectors from './selectors';\nimport * as actions from './actions';\nimport * as privateSelectors from './private-selectors';\nimport { STORE_NAME } from './constants';\nimport { unlock } from '../lock-unlock';\n\n/**\n * Block editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#register\n *\n * @type {Object}\n */\nconst storeConfig = {\n\treducer,\n\tselectors,\n\tresolvers,\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// This package uses a few in-memory post types as wrappers for convenience.\n// This middleware prevents any network requests related to these types as they are\n// bound to fail anyway.\napiFetch.use( function ( options, next ) {\n\tif ( options.path?.indexOf( '/wp/v2/types/widget-area' ) === 0 ) {\n\t\treturn Promise.resolve( {} );\n\t}\n\n\treturn next( options );\n} );\n\nunlock( store ).registerPrivateSelectors( privateSelectors );\n", "/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Controls the open state of the widget areas.\n *\n * @param {Object} state Redux state.\n * @param {Object} action Redux action.\n *\n * @return {Array} Updated state.\n */\nexport function widgetAreasOpenState( state = {}, action ) {\n\tconst { type } = action;\n\tswitch ( type ) {\n\t\tcase 'SET_WIDGET_AREAS_OPEN_STATE': {\n\t\t\treturn action.widgetAreasOpenState;\n\t\t}\n\t\tcase 'SET_IS_WIDGET_AREA_OPEN': {\n\t\t\tconst { clientId, isOpen } = action;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ clientId ]: isOpen,\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\treturn state;\n\t\t}\n\t}\n}\n\n/**\n * Reducer to set the block inserter panel open or closed.\n *\n * Note: this reducer interacts with the list view panel reducer\n * to make sure that only one of the two panels is open at the same time.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function blockInserterPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn action.isOpen ? false : state;\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value;\n\t}\n\treturn state;\n}\n\n/**\n * Reducer to set the list view panel open or closed.\n *\n * Note: this reducer interacts with the inserter panel reducer\n * to make sure that only one of the two panels is open at the same time.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n */\nexport function listViewPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_IS_INSERTER_OPENED':\n\t\t\treturn action.value ? false : state;\n\t\tcase 'SET_IS_LIST_VIEW_OPENED':\n\t\t\treturn action.isOpen;\n\t}\n\treturn state;\n}\n\n/**\n * This reducer does nothing aside initializing a ref to the list view toggle.\n * We will have a unique ref per \"editor\" instance.\n *\n * @param {Object} state\n * @return {Object} Reference to the list view toggle button.\n */\nexport function listViewToggleRef( state = { current: null } ) {\n\treturn state;\n}\n\n/**\n * This reducer does nothing aside initializing a ref to the inserter sidebar toggle.\n * We will have a unique ref per \"editor\" instance.\n *\n * @param {Object} state\n * @return {Object} Reference to the inserter sidebar toggle button.\n */\nexport function inserterSidebarToggleRef( state = { current: null } ) {\n\treturn state;\n}\n\n/**\n * Widget saving lock.\n *\n * When widget saving is locked, the widget cannot be updated.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function widgetSavingLock( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'LOCK_WIDGET_SAVING':\n\t\t\treturn { ...state, [ action.lockName ]: true };\n\n\t\tcase 'UNLOCK_WIDGET_SAVING': {\n\t\t\tconst { [ action.lockName ]: removedLockName, ...restState } =\n\t\t\t\tstate;\n\t\t\treturn restState;\n\t\t}\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tblockInserterPanel,\n\tinserterSidebarToggleRef,\n\tlistViewPanel,\n\tlistViewToggleRef,\n\twidgetAreasOpenState,\n\twidgetSavingLock,\n} );\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { persistStubPost, setWidgetAreasOpenState } from './actions';\nimport {\n\tKIND,\n\tWIDGET_AREA_ENTITY_TYPE,\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tbuildWidgetAreasPostId,\n} from './utils';\nimport { transformWidgetToBlock } from './transformers';\n\n/**\n * Creates a \"stub\" widgets post reflecting all available widget areas. The\n * post is meant as a convenient to only exists in runtime and should never be saved. It\n * enables a convenient way of editing the widgets by using a regular post editor.\n *\n * Fetches all widgets from all widgets aras, converts them into blocks, and hydrates a new post with them.\n *\n * @return {Function} An action creator.\n */\nexport const getWidgetAreas =\n\t() =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst query = buildWidgetAreasQuery();\n\t\tconst widgetAreas = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getEntityRecords( KIND, WIDGET_AREA_ENTITY_TYPE, query );\n\n\t\tconst widgetAreaBlocks = [];\n\t\tconst sortedWidgetAreas = widgetAreas.sort( ( a, b ) => {\n\t\t\tif ( a.id === 'wp_inactive_widgets' ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif ( b.id === 'wp_inactive_widgets' ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t} );\n\t\tfor ( const widgetArea of sortedWidgetAreas ) {\n\t\t\twidgetAreaBlocks.push(\n\t\t\t\tcreateBlock( 'core/widget-area', {\n\t\t\t\t\tid: widgetArea.id,\n\t\t\t\t\tname: widgetArea.name,\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\tif ( ! widgetArea.widgets.length ) {\n\t\t\t\t// If this widget area has no widgets, it won't get a post setup by\n\t\t\t\t// the getWidgets resolver.\n\t\t\t\tdispatch(\n\t\t\t\t\tpersistStubPost(\n\t\t\t\t\t\tbuildWidgetAreaPostId( widgetArea.id ),\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\n\t\tconst widgetAreasOpenState = {};\n\t\twidgetAreaBlocks.forEach( ( widgetAreaBlock, index ) => {\n\t\t\t// Defaults to open the first widget area.\n\t\t\twidgetAreasOpenState[ widgetAreaBlock.clientId ] = index === 0;\n\t\t} );\n\t\tdispatch( setWidgetAreasOpenState( widgetAreasOpenState ) );\n\n\t\tdispatch(\n\t\t\tpersistStubPost( buildWidgetAreasPostId(), widgetAreaBlocks )\n\t\t);\n\t};\n\n/**\n * Fetches all widgets from all widgets ares, and groups them by widget area Id.\n *\n * @return {Function} An action creator.\n */\nexport const getWidgets =\n\t() =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst query = buildWidgetsQuery();\n\t\tconst widgets = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getEntityRecords( 'root', 'widget', query );\n\n\t\tconst groupedBySidebar = {};\n\n\t\tfor ( const widget of widgets ) {\n\t\t\tconst block = transformWidgetToBlock( widget );\n\t\t\tgroupedBySidebar[ widget.sidebar ] =\n\t\t\t\tgroupedBySidebar[ widget.sidebar ] || [];\n\t\t\tgroupedBySidebar[ widget.sidebar ].push( block );\n\t\t}\n\n\t\tfor ( const sidebarId in groupedBySidebar ) {\n\t\t\tif ( groupedBySidebar.hasOwnProperty( sidebarId ) ) {\n\t\t\t\t// Persist the actual post containing the widget block\n\t\t\t\tdispatch(\n\t\t\t\t\tpersistStubPost(\n\t\t\t\t\t\tbuildWidgetAreaPostId( sidebarId ),\n\t\t\t\t\t\tgroupedBySidebar[ sidebarId ]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { transformBlockToWidget } from './transformers';\nimport {\n\tbuildWidgetAreaPostId,\n\tbuildWidgetAreasQuery,\n\tcreateStubPost,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\n/**\n * Persists a stub post with given ID to core data store. The post is meant to be in-memory only and\n * shouldn't be saved via the API.\n *\n * @param {string} id Post ID.\n * @param {Array} blocks Blocks the post should consist of.\n * @return {Object} The post object.\n */\nexport const persistStubPost =\n\t( id, blocks ) =>\n\t( { registry } ) => {\n\t\tconst stubPost = createStubPost( id, blocks );\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.receiveEntityRecords(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tstubPost,\n\t\t\t\t{ id: stubPost.id },\n\t\t\t\tfalse\n\t\t\t);\n\t\treturn stubPost;\n\t};\n\n/**\n * Converts all the blocks from edited widget areas into widgets,\n * and submits a batch request to save everything at once.\n *\n * Creates a snackbar notice on either success or error.\n *\n * @return {Function} An action creator.\n */\nexport const saveEditedWidgetAreas =\n\t() =>\n\tasync ( { select, dispatch, registry } ) => {\n\t\tconst editedWidgetAreas = select.getEditedWidgetAreas();\n\t\tif ( ! editedWidgetAreas?.length ) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait dispatch.saveWidgetAreas( editedWidgetAreas );\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createSuccessNotice( __( 'Widgets saved.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t} catch ( e ) {\n\t\t\tregistry.dispatch( noticesStore ).createErrorNotice(\n\t\t\t\t/* translators: %s: The error message. */\n\t\t\t\tsprintf( __( 'There was an error. %s' ), e.message ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n/**\n * Converts all the blocks from specified widget areas into widgets,\n * and submits a batch request to save everything at once.\n *\n * @param {Object[]} widgetAreas Widget areas to save.\n * @return {Function} An action creator.\n */\nexport const saveWidgetAreas =\n\t( widgetAreas ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\ttry {\n\t\t\tfor ( const widgetArea of widgetAreas ) {\n\t\t\t\tawait dispatch.saveWidgetArea( widgetArea.id );\n\t\t\t}\n\t\t} finally {\n\t\t\t// saveEditedEntityRecord resets the resolution status, let's fix it manually.\n\t\t\tawait registry\n\t\t\t\t.dispatch( coreStore )\n\t\t\t\t.finishResolution(\n\t\t\t\t\t'getEntityRecord',\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tbuildWidgetAreasQuery()\n\t\t\t\t);\n\t\t}\n\t};\n\n/**\n * Converts all the blocks from a widget area specified by ID into widgets,\n * and submits a batch request to save everything at once.\n *\n * @param {string} widgetAreaId ID of the widget area to process.\n * @return {Function} An action creator.\n */\nexport const saveWidgetArea =\n\t( widgetAreaId ) =>\n\tasync ( { dispatch, select, registry } ) => {\n\t\tconst widgets = select.getWidgets();\n\n\t\tconst post = registry\n\t\t\t.select( coreStore )\n\t\t\t.getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetAreaId )\n\t\t\t);\n\n\t\t// Get all widgets from this area\n\t\tconst areaWidgets = Object.values( widgets ).filter(\n\t\t\t( { sidebar } ) => sidebar === widgetAreaId\n\t\t);\n\n\t\t// Remove all duplicate reference widget instances for legacy widgets.\n\t\t// Why? We filter out the widgets with duplicate IDs to prevent adding more than one instance of a widget\n\t\t// implemented using a function. WordPress doesn't support having more than one instance of these, if you try to\n\t\t// save multiple instances of these in different sidebars you will run into undefined behaviors.\n\t\tconst usedReferenceWidgets = [];\n\t\tconst widgetsBlocks = post.blocks.filter( ( block ) => {\n\t\t\tconst { id } = block.attributes;\n\n\t\t\tif ( block.name === 'core/legacy-widget' && id ) {\n\t\t\t\tif ( usedReferenceWidgets.includes( id ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tusedReferenceWidgets.push( id );\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t\t// Determine which widgets have been deleted. We can tell if a widget is\n\t\t// deleted and not just moved to a different area by looking to see if\n\t\t// getWidgetAreaForWidgetId() finds something.\n\t\tconst deletedWidgets = [];\n\t\tfor ( const widget of areaWidgets ) {\n\t\t\tconst widgetsNewArea = select.getWidgetAreaForWidgetId( widget.id );\n\t\t\tif ( ! widgetsNewArea ) {\n\t\t\t\tdeletedWidgets.push( widget );\n\t\t\t}\n\t\t}\n\n\t\tconst batchMeta = [];\n\t\tconst batchTasks = [];\n\t\tconst sidebarWidgetsIds = [];\n\t\tfor ( let i = 0; i < widgetsBlocks.length; i++ ) {\n\t\t\tconst block = widgetsBlocks[ i ];\n\t\t\tconst widgetId = getWidgetIdFromBlock( block );\n\t\t\tconst oldWidget = widgets[ widgetId ];\n\t\t\tconst widget = transformBlockToWidget( block, oldWidget );\n\n\t\t\t// We'll replace the null widgetId after save, but we track it here\n\t\t\t// since order is important.\n\t\t\tsidebarWidgetsIds.push( widgetId );\n\n\t\t\t// Check oldWidget as widgetId might refer to an ID which has been\n\t\t\t// deleted, e.g. if a deleted block is restored via undo after saving.\n\t\t\tif ( oldWidget ) {\n\t\t\t\t// Update an existing widget.\n\t\t\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'widget',\n\t\t\t\t\twidgetId,\n\t\t\t\t\t{\n\t\t\t\t\t\t...widget,\n\t\t\t\t\t\tsidebar: widgetAreaId,\n\t\t\t\t\t},\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\n\t\t\t\tconst hasEdits = registry\n\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t.hasEditsForEntityRecord( 'root', 'widget', widgetId );\n\n\t\t\t\tif ( ! hasEdits ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tbatchTasks.push( ( { saveEditedEntityRecord } ) =>\n\t\t\t\t\tsaveEditedEntityRecord( 'root', 'widget', widgetId )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// Create a new widget.\n\t\t\t\tbatchTasks.push( ( { saveEntityRecord } ) =>\n\t\t\t\t\tsaveEntityRecord( 'root', 'widget', {\n\t\t\t\t\t\t...widget,\n\t\t\t\t\t\tsidebar: widgetAreaId,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbatchMeta.push( {\n\t\t\t\tblock,\n\t\t\t\tposition: i,\n\t\t\t\tclientId: block.clientId,\n\t\t\t} );\n\t\t}\n\t\tfor ( const widget of deletedWidgets ) {\n\t\t\tbatchTasks.push( ( { deleteEntityRecord } ) =>\n\t\t\t\tdeleteEntityRecord( 'root', 'widget', widget.id, {\n\t\t\t\t\tforce: true,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\n\t\tconst records = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.__experimentalBatch( batchTasks );\n\t\tconst preservedRecords = records.filter(\n\t\t\t( record ) => ! record.hasOwnProperty( 'deleted' )\n\t\t);\n\n\t\tconst failedWidgetNames = [];\n\n\t\tfor ( let i = 0; i < preservedRecords.length; i++ ) {\n\t\t\tconst widget = preservedRecords[ i ];\n\t\t\tconst { block, position } = batchMeta[ i ];\n\n\t\t\t// Set __internalWidgetId on the block. This will be persisted to the\n\t\t\t// store when we dispatch receiveEntityRecords( post ) below.\n\t\t\tpost.blocks[ position ].attributes.__internalWidgetId = widget.id;\n\n\t\t\tconst error = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getLastEntitySaveError( 'root', 'widget', widget.id );\n\t\t\tif ( error ) {\n\t\t\t\tfailedWidgetNames.push( block.attributes?.name || block?.name );\n\t\t\t}\n\n\t\t\tif ( ! sidebarWidgetsIds[ position ] ) {\n\t\t\t\tsidebarWidgetsIds[ position ] = widget.id;\n\t\t\t}\n\t\t}\n\n\t\tif ( failedWidgetNames.length ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: List of widget names */\n\t\t\t\t\t__( 'Could not save the following widgets: %s.' ),\n\t\t\t\t\tfailedWidgetNames.join( ', ' )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\twidgetAreaId,\n\t\t\t{\n\t\t\t\twidgets: sidebarWidgetsIds,\n\t\t\t},\n\t\t\t{ undoIgnore: true }\n\t\t);\n\n\t\tdispatch( trySaveWidgetArea( widgetAreaId ) );\n\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.receiveEntityRecords( KIND, POST_TYPE, post, undefined );\n\t};\n\nconst trySaveWidgetArea =\n\t( widgetAreaId ) =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\twidgetAreaId,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t};\n\n/**\n * Sets the clientId stored for a particular widgetId.\n *\n * @param {number} clientId Client id.\n * @param {number} widgetId Widget id.\n *\n * @return {Object} Action.\n */\nexport function setWidgetIdForClientId( clientId, widgetId ) {\n\treturn {\n\t\ttype: 'SET_WIDGET_ID_FOR_CLIENT_ID',\n\t\tclientId,\n\t\twidgetId,\n\t};\n}\n\n/**\n * Sets the open state of all the widget areas.\n *\n * @param {Object} widgetAreasOpenState The open states of all the widget areas.\n *\n * @return {Object} Action.\n */\nexport function setWidgetAreasOpenState( widgetAreasOpenState ) {\n\treturn {\n\t\ttype: 'SET_WIDGET_AREAS_OPEN_STATE',\n\t\twidgetAreasOpenState,\n\t};\n}\n\n/**\n * Sets the open state of the widget area.\n *\n * @param {string} clientId The clientId of the widget area.\n * @param {boolean} isOpen Whether the widget area should be opened.\n *\n * @return {Object} Action.\n */\nexport function setIsWidgetAreaOpen( clientId, isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_WIDGET_AREA_OPEN',\n\t\tclientId,\n\t\tisOpen,\n\t};\n}\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 * @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/**\n * Returns an action object used to open/close the list view.\n *\n * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.\n * @return {Object} Action object.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n *\n * @return {Object} Action creator.\n */\nexport const closeGeneralSidebar =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.disableComplementaryArea( editWidgetsStoreName );\n\t};\n\n/**\n * Action that handles moving a block between widget areas\n *\n * @param {string} clientId The clientId of the block to move.\n * @param {string} widgetAreaId The id of the widget area to move the block to.\n */\nexport const moveBlockToWidgetArea =\n\t( clientId, widgetAreaId ) =>\n\tasync ( { dispatch, select, registry } ) => {\n\t\tconst sourceRootClientId = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlockRootClientId( clientId );\n\n\t\t// Search the top level blocks (widget areas) for the one with the matching\n\t\t// id attribute. Makes the assumption that all top-level blocks are widget\n\t\t// areas.\n\t\tconst widgetAreas = registry.select( blockEditorStore ).getBlocks();\n\t\tconst destinationWidgetAreaBlock = widgetAreas.find(\n\t\t\t( { attributes } ) => attributes.id === widgetAreaId\n\t\t);\n\t\tconst destinationRootClientId = destinationWidgetAreaBlock.clientId;\n\n\t\t// Get the index for moving to the end of the destination widget area.\n\t\tconst destinationInnerBlocksClientIds = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlockOrder( destinationRootClientId );\n\t\tconst destinationIndex = destinationInnerBlocksClientIds.length;\n\n\t\t// Reveal the widget area, if it's not open.\n\t\tconst isDestinationWidgetAreaOpen = select.getIsWidgetAreaOpen(\n\t\t\tdestinationRootClientId\n\t\t);\n\n\t\tif ( ! isDestinationWidgetAreaOpen ) {\n\t\t\tdispatch.setIsWidgetAreaOpen( destinationRootClientId, true );\n\t\t}\n\n\t\t// Move the block.\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.moveBlocksToPosition(\n\t\t\t\t[ clientId ],\n\t\t\t\tsourceRootClientId,\n\t\t\t\tdestinationRootClientId,\n\t\t\t\tdestinationIndex\n\t\t\t);\n\t};\n\n/**\n * Returns an action object used to signal that widget saving is unlocked.\n *\n * @param {string} lockName The lock name.\n *\n * @example\n * ```js\n * import { store as widgetStore } from '@wordpress/edit-widgets';\n * import { useDispatch } from '@wordpress/data';\n *\n * const ExampleComponent = () => {\n * \tconst { unlockWidgetSaving } = useDispatch( widgetStore );\n * \treturn (\n * \t\t<Button onClick={ () => unlockWidgetSaving( 'lockName' ) }>\n * \t\t\t{ __( 'Unlock Widget Saving' ) }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n * @return {Object} Action object\n */\nexport function unlockWidgetSaving( lockName ) {\n\treturn {\n\t\ttype: 'UNLOCK_WIDGET_SAVING',\n\t\tlockName,\n\t};\n}\n\n/**\n * Returns an action object used to signal that widget saving is locked.\n *\n * @param {string} lockName The lock name.\n *\n * @example\n * ```js\n * import { store as widgetStore } from '@wordpress/edit-widgets';\n * import { useDispatch } from '@wordpress/data';\n *\n * const ExampleComponent = () => {\n * \tconst { lockWidgetSaving } = useDispatch( widgetStore );\n * \treturn (\n * \t\t<Button onClick={ () => lockWidgetSaving( 'lockName' ) }>\n * \t\t\t{ __( 'Lock Widget Saving' ) }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n * @return {Object} Action object\n */\nexport function lockWidgetSaving( lockName ) {\n\treturn {\n\t\ttype: 'LOCK_WIDGET_SAVING',\n\t\tlockName,\n\t};\n}\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tPanel,\n\tSlot,\n\tFill,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { check, starEmpty, starFilled } from '@wordpress/icons';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { store as viewportStore } from '@wordpress/viewport';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tusePrevious,\n} from '@wordpress/compose';\nimport { usePluginContext } from '@wordpress/plugins';\n\n/**\n * Internal dependencies\n */\nimport ComplementaryAreaHeader from '../complementary-area-header';\nimport ComplementaryAreaMoreMenuItem from '../complementary-area-more-menu-item';\nimport ComplementaryAreaToggle from '../complementary-area-toggle';\nimport PinnedItems from '../pinned-items';\nimport { store as interfaceStore } from '../../store';\n\nconst ANIMATION_DURATION = 0.3;\n\nfunction ComplementaryAreaSlot( { scope, ...props } ) {\n\treturn <Slot name={ `ComplementaryArea/${ scope }` } { ...props } />;\n}\n\nconst SIDEBAR_WIDTH = 280;\nconst variants = {\n\topen: { width: SIDEBAR_WIDTH },\n\tclosed: { width: 0 },\n\tmobileOpen: { width: '100vw' },\n};\n\nfunction ComplementaryAreaFill( {\n\tactiveArea,\n\tisActive,\n\tscope,\n\tchildren,\n\tclassName,\n\tid,\n} ) {\n\tconst disableMotion = useReducedMotion();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\t// This is used to delay the exit animation to the next tick.\n\t// The reason this is done is to allow us to apply the right transition properties\n\t// When we switch from an open sidebar to another open sidebar.\n\t// we don't want to animate in this case.\n\tconst previousActiveArea = usePrevious( activeArea );\n\tconst previousIsActive = usePrevious( isActive );\n\tconst [ , setState ] = useState( {} );\n\tuseEffect( () => {\n\t\tsetState( {} );\n\t}, [ isActive ] );\n\tconst transition = {\n\t\ttype: 'tween',\n\t\tduration:\n\t\t\tdisableMotion ||\n\t\t\tisMobileViewport ||\n\t\t\t( !! previousActiveArea &&\n\t\t\t\t!! activeArea &&\n\t\t\t\tactiveArea !== previousActiveArea )\n\t\t\t\t? 0\n\t\t\t\t: ANIMATION_DURATION,\n\t\tease: [ 0.6, 0, 0.4, 1 ],\n\t};\n\n\treturn (\n\t\t<Fill name={ `ComplementaryArea/${ scope }` }>\n\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t{ ( previousIsActive || isActive ) && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ variants }\n\t\t\t\t\t\tinitial=\"closed\"\n\t\t\t\t\t\tanimate={ isMobileViewport ? 'mobileOpen' : 'open' }\n\t\t\t\t\t\texit=\"closed\"\n\t\t\t\t\t\ttransition={ transition }\n\t\t\t\t\t\tclassName=\"interface-complementary-area__fill\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\twidth: isMobileViewport\n\t\t\t\t\t\t\t\t\t? '100vw'\n\t\t\t\t\t\t\t\t\t: SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</AnimatePresence>\n\t\t</Fill>\n\t);\n}\n\nfunction useAdjustComplementaryListener(\n\tscope,\n\tidentifier,\n\tactiveArea,\n\tisActive,\n\tisSmall\n) {\n\tconst previousIsSmallRef = useRef( false );\n\tconst shouldOpenWhenNotSmallRef = useRef( false );\n\tconst { enableComplementaryArea, disableComplementaryArea } =\n\t\tuseDispatch( interfaceStore );\n\tuseEffect( () => {\n\t\t// If the complementary area is active and the editor is switching from\n\t\t// a big to a small window size.\n\t\tif ( isActive && isSmall && ! previousIsSmallRef.current ) {\n\t\t\tdisableComplementaryArea( scope );\n\t\t\t// Flag the complementary area to be reopened when the window size\n\t\t\t// goes from small to big.\n\t\t\tshouldOpenWhenNotSmallRef.current = true;\n\t\t} else if (\n\t\t\t// If there is a flag indicating the complementary area should be\n\t\t\t// enabled when we go from small to big window size and we are going\n\t\t\t// from a small to big window size.\n\t\t\tshouldOpenWhenNotSmallRef.current &&\n\t\t\t! isSmall &&\n\t\t\tpreviousIsSmallRef.current\n\t\t) {\n\t\t\t// Remove the flag indicating the complementary area should be\n\t\t\t// enabled.\n\t\t\tshouldOpenWhenNotSmallRef.current = false;\n\t\t\tenableComplementaryArea( scope, identifier );\n\t\t} else if (\n\t\t\t// If the flag is indicating the current complementary should be\n\t\t\t// reopened but another complementary area becomes active, remove\n\t\t\t// the flag.\n\t\t\tshouldOpenWhenNotSmallRef.current &&\n\t\t\tactiveArea &&\n\t\t\tactiveArea !== identifier\n\t\t) {\n\t\t\tshouldOpenWhenNotSmallRef.current = false;\n\t\t}\n\t\tif ( isSmall !== previousIsSmallRef.current ) {\n\t\t\tpreviousIsSmallRef.current = isSmall;\n\t\t}\n\t}, [\n\t\tisActive,\n\t\tisSmall,\n\t\tscope,\n\t\tidentifier,\n\t\tactiveArea,\n\t\tdisableComplementaryArea,\n\t\tenableComplementaryArea,\n\t] );\n}\n\nfunction ComplementaryArea( {\n\tchildren,\n\tclassName,\n\tcloseLabel = __( 'Close plugin' ),\n\tidentifier: identifierProp,\n\theader,\n\theaderClassName,\n\ticon: iconProp,\n\tisPinnable = true,\n\tpanelClassName,\n\tscope,\n\tname,\n\ttitle,\n\ttoggleShortcut,\n\tisActiveByDefault,\n} ) {\n\tconst context = usePluginContext();\n\tconst icon = iconProp || context.icon;\n\tconst identifier = identifierProp || `${ context.name }/${ name }`;\n\n\t// This state is used to delay the rendering of the Fill\n\t// until the initial effect runs.\n\t// This prevents the animation from running on mount if\n\t// the complementary area is active by default.\n\tconst [ isReady, setIsReady ] = useState( false );\n\tconst {\n\t\tisLoading,\n\t\tisActive,\n\t\tisPinned,\n\t\tactiveArea,\n\t\tisSmall,\n\t\tisLarge,\n\t\tshowIconLabels,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetActiveComplementaryArea,\n\t\t\t\tisComplementaryAreaLoading,\n\t\t\t\tisItemPinned,\n\t\t\t} = select( interfaceStore );\n\t\t\tconst { get } = select( preferencesStore );\n\n\t\t\tconst _activeArea = getActiveComplementaryArea( scope );\n\n\t\t\treturn {\n\t\t\t\tisLoading: isComplementaryAreaLoading( scope ),\n\t\t\t\tisActive: _activeArea === identifier,\n\t\t\t\tisPinned: isItemPinned( scope, identifier ),\n\t\t\t\tactiveArea: _activeArea,\n\t\t\t\tisSmall: select( viewportStore ).isViewportMatch( '< medium' ),\n\t\t\t\tisLarge: select( viewportStore ).isViewportMatch( 'large' ),\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t};\n\t\t},\n\t\t[ identifier, scope ]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tuseAdjustComplementaryListener(\n\t\tscope,\n\t\tidentifier,\n\t\tactiveArea,\n\t\tisActive,\n\t\tisSmall\n\t);\n\tconst {\n\t\tenableComplementaryArea,\n\t\tdisableComplementaryArea,\n\t\tpinItem,\n\t\tunpinItem,\n\t} = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\t// Set initial visibility: For large screens, enable if it's active by\n\t\t// default. For small screens, always initially disable.\n\t\tif ( isActiveByDefault && activeArea === undefined && ! isSmall ) {\n\t\t\tenableComplementaryArea( scope, identifier );\n\t\t} else if ( activeArea === undefined && isSmall ) {\n\t\t\tdisableComplementaryArea( scope, identifier );\n\t\t}\n\t\tsetIsReady( true );\n\t}, [\n\t\tactiveArea,\n\t\tisActiveByDefault,\n\t\tscope,\n\t\tidentifier,\n\t\tisSmall,\n\t\tenableComplementaryArea,\n\t\tdisableComplementaryArea,\n\t] );\n\n\tif ( ! isReady ) {\n\t\treturn;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isPinnable && (\n\t\t\t\t<PinnedItems scope={ scope }>\n\t\t\t\t\t{ isPinned && (\n\t\t\t\t\t\t<ComplementaryAreaToggle\n\t\t\t\t\t\t\tscope={ scope }\n\t\t\t\t\t\t\tidentifier={ identifier }\n\t\t\t\t\t\t\tisPressed={\n\t\t\t\t\t\t\t\tisActive && ( ! showIconLabels || isLarge )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-expanded={ isActive }\n\t\t\t\t\t\t\taria-disabled={ isLoading }\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\ticon={ showIconLabels ? check : icon }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tshortcut={ toggleShortcut }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PinnedItems>\n\t\t\t) }\n\t\t\t{ name && isPinnable && (\n\t\t\t\t<ComplementaryAreaMoreMenuItem\n\t\t\t\t\ttarget={ name }\n\t\t\t\t\tscope={ scope }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tidentifier={ identifier }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</ComplementaryAreaMoreMenuItem>\n\t\t\t) }\n\t\t\t<ComplementaryAreaFill\n\t\t\t\tactiveArea={ activeArea }\n\t\t\t\tisActive={ isActive }\n\t\t\t\tclassName={ clsx( 'interface-complementary-area', className ) }\n\t\t\t\tscope={ scope }\n\t\t\t\tid={ identifier.replace( '/', ':' ) }\n\t\t\t>\n\t\t\t\t<ComplementaryAreaHeader\n\t\t\t\t\tclassName={ headerClassName }\n\t\t\t\t\tcloseLabel={ closeLabel }\n\t\t\t\t\tonClose={ () => disableComplementaryArea( scope ) }\n\t\t\t\t\ttoggleButtonProps={ {\n\t\t\t\t\t\tlabel: closeLabel,\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tshortcut: toggleShortcut,\n\t\t\t\t\t\tscope,\n\t\t\t\t\t\tidentifier,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ header || (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h2 className=\"interface-complementary-area-header__title\">\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t{ isPinnable && ! isMobileViewport && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"interface-complementary-area__pin-unpin-item\"\n\t\t\t\t\t\t\t\t\ticon={ isPinned ? starFilled : starEmpty }\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\tisPinned\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Unpin from toolbar' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Pin to toolbar' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t( isPinned ? unpinItem : pinItem )(\n\t\t\t\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\tidentifier\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisPressed={ isPinned }\n\t\t\t\t\t\t\t\t\taria-expanded={ isPinned }\n\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t/>\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</ComplementaryAreaHeader>\n\t\t\t\t<Panel className={ panelClassName }>{ children }</Panel>\n\t\t\t</ComplementaryAreaFill>\n\t\t</>\n\t);\n}\n\nComplementaryArea.Slot = ComplementaryAreaSlot;\n\nexport default ComplementaryArea;\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\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", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8.5 18.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h2.5v13zm10-.5c0 .3-.2.5-.5.5h-8v-13h8c.3 0 .5.2.5.5v12z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4 14.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h8v13zm4.5-.5c0 .3-.2.5-.5.5h-2.5v-13H18c.3 0 .5.2.5.5v12z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\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", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M3 6h11v1.5H3V6Zm3.5 5.5h11V13h-11v-1.5ZM21 17H10v1.5h11V17Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\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", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t d=\"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\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", "/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { usePluginContext } from '@wordpress/plugins';\n\n/**\n * Internal dependencies\n */\nimport { store as interfaceStore } from '../../store';\n\n/**\n * Whether the role supports checked state.\n *\n * @see https://www.w3.org/TR/wai-aria-1.1/#aria-checked\n * @param {import('react').AriaRole} role Role.\n * @return {boolean} Whether the role supports checked state.\n */\nfunction roleSupportsCheckedState( role ) {\n\treturn [\n\t\t'checkbox',\n\t\t'option',\n\t\t'radio',\n\t\t'switch',\n\t\t'menuitemcheckbox',\n\t\t'menuitemradio',\n\t\t'treeitem',\n\t].includes( role );\n}\n\nexport default function ComplementaryAreaToggle( {\n\tas = Button,\n\tscope,\n\tidentifier: identifierProp,\n\ticon: iconProp,\n\tselectedIcon,\n\tname,\n\tshortcut,\n\t...props\n} ) {\n\tconst ComponentToUse = as;\n\tconst context = usePluginContext();\n\tconst icon = iconProp || context.icon;\n\tconst identifier = identifierProp || `${ context.name }/${ name }`;\n\tconst isSelected = useSelect(\n\t\t( select ) =>\n\t\t\tselect( interfaceStore ).getActiveComplementaryArea( scope ) ===\n\t\t\tidentifier,\n\t\t[ identifier, scope ]\n\t);\n\n\tconst { enableComplementaryArea, disableComplementaryArea } =\n\t\tuseDispatch( interfaceStore );\n\n\treturn (\n\t\t<ComponentToUse\n\t\t\ticon={ selectedIcon && isSelected ? selectedIcon : icon }\n\t\t\taria-controls={ identifier.replace( '/', ':' ) }\n\t\t\t// Make sure aria-checked matches spec https://www.w3.org/TR/wai-aria-1.1/#aria-checked\n\t\t\taria-checked={\n\t\t\t\troleSupportsCheckedState( props.role ) ? isSelected : undefined\n\t\t\t}\n\t\t\tonClick={ () => {\n\t\t\t\tif ( isSelected ) {\n\t\t\t\t\tdisableComplementaryArea( scope );\n\t\t\t\t} else {\n\t\t\t\t\tenableComplementaryArea( scope, identifier );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tshortcut={ shortcut }\n\t\t\t{ ...props }\n\t\t/>\n\t);\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} );\nregister( store );\n", "/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport {\n\tnormalizeComplementaryAreaScope,\n\tnormalizeComplementaryAreaName,\n} from './deprecated';\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\tscope = normalizeComplementaryAreaScope( scope );\n\tarea = normalizeComplementaryAreaName( scope, area );\n\treturn {\n\t\ttype: 'SET_DEFAULT_COMPLEMENTARY_AREA',\n\t\tscope,\n\t\tarea,\n\t};\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\t\tscope = normalizeComplementaryAreaScope( scope );\n\t\tarea = normalizeComplementaryAreaName( scope, area );\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\tscope = normalizeComplementaryAreaScope( scope );\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\tscope = normalizeComplementaryAreaScope( scope );\n\t\titem = normalizeComplementaryAreaName( scope, item );\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\tscope = normalizeComplementaryAreaScope( scope );\n\t\titem = normalizeComplementaryAreaName( scope, item );\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 deprecated from '@wordpress/deprecated';\n\nexport function normalizeComplementaryAreaScope( scope ) {\n\tif ( [ 'core/edit-post', 'core/edit-site' ].includes( scope ) ) {\n\t\tdeprecated( `${ scope } interface scope`, {\n\t\t\talternative: 'core interface scope',\n\t\t\thint: 'core/edit-post and core/edit-site are merging.',\n\t\t\tversion: '6.6',\n\t\t} );\n\t\treturn 'core';\n\t}\n\n\treturn scope;\n}\n\nexport function normalizeComplementaryAreaName( scope, name ) {\n\tif ( scope === 'core' && name === 'edit-site/template' ) {\n\t\tdeprecated( `edit-site/template sidebar`, {\n\t\t\talternative: 'edit-post/document',\n\t\t\tversion: '6.6',\n\t\t} );\n\t\treturn 'edit-post/document';\n\t}\n\n\tif ( scope === 'core' && name === 'edit-site/block-inspector' ) {\n\t\tdeprecated( `edit-site/block-inspector sidebar`, {\n\t\t\talternative: 'edit-post/block',\n\t\t\tversion: '6.6',\n\t\t} );\n\t\treturn 'edit-post/block';\n\t}\n\n\treturn name;\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 * Internal dependencies\n */\nimport {\n\tnormalizeComplementaryAreaScope,\n\tnormalizeComplementaryAreaName,\n} from './deprecated';\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\tscope = normalizeComplementaryAreaScope( 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\tscope = normalizeComplementaryAreaScope( 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\tscope = normalizeComplementaryAreaScope( scope );\n\t\titem = normalizeComplementaryAreaName( 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 * The identifier for the data store.\n *\n * @type {string}\n */\nexport const STORE_NAME = 'core/interface';\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ComplementaryAreaToggle from '../complementary-area-toggle';\n\nconst ComplementaryAreaHeader = ( {\n\tchildren,\n\tclassName,\n\ttoggleButtonProps,\n} ) => {\n\tconst toggleButton = (\n\t\t<ComplementaryAreaToggle icon={ closeSmall } { ...toggleButtonProps } />\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'components-panel__header',\n\t\t\t\t'interface-complementary-area-header',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\ttabIndex={ -1 }\n\t\t>\n\t\t\t{ children }\n\t\t\t{ toggleButton }\n\t\t</div>\n\t);\n};\n\nexport default ComplementaryAreaHeader;\n", "/**\n * WordPress dependencies\n */\nimport { check } from '@wordpress/icons';\nimport { MenuItem } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ComplementaryAreaToggle from '../complementary-area-toggle';\nimport ActionItem from '../action-item';\n\nconst PluginsMenuItem = ( {\n\t// Menu item is marked with unstable prop for backward compatibility.\n\t// They are removed so they don't leak to DOM elements.\n\t// @see https://github.com/WordPress/gutenberg/issues/14457\n\t__unstableExplicitMenuItem,\n\t__unstableTarget,\n\t...restProps\n} ) => <MenuItem { ...restProps } />;\n\nexport default function ComplementaryAreaMoreMenuItem( {\n\tscope,\n\ttarget,\n\t__unstableExplicitMenuItem,\n\t...props\n} ) {\n\treturn (\n\t\t<ComplementaryAreaToggle\n\t\t\tas={ ( toggleProps ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ActionItem\n\t\t\t\t\t\t__unstableExplicitMenuItem={\n\t\t\t\t\t\t\t__unstableExplicitMenuItem\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableTarget={ `${ scope }/${ target }` }\n\t\t\t\t\t\tas={ PluginsMenuItem }\n\t\t\t\t\t\tname={ `${ scope }/plugin-more-menu` }\n\t\t\t\t\t\t{ ...toggleProps }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trole=\"menuitemcheckbox\"\n\t\t\tselectedIcon={ check }\n\t\t\tname={ target }\n\t\t\tscope={ scope }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { MenuGroup, Button, Slot, Fill } from '@wordpress/components';\nimport { Children } from '@wordpress/element';\n\nconst noop = () => {};\n\nfunction ActionItemSlot( {\n\tname,\n\tas: Component = MenuGroup,\n\tfillProps = {},\n\tbubblesVirtually,\n\t...props\n} ) {\n\treturn (\n\t\t<Slot\n\t\t\tname={ name }\n\t\t\tbubblesVirtually={ bubblesVirtually }\n\t\t\tfillProps={ fillProps }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! Children.toArray( fills ).length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Special handling exists for backward compatibility.\n\t\t\t\t// It ensures that menu items created by plugin authors aren't\n\t\t\t\t// duplicated with automatically injected menu items coming\n\t\t\t\t// from pinnable plugin sidebars.\n\t\t\t\t// @see https://github.com/WordPress/gutenberg/issues/14457\n\t\t\t\tconst initializedByPlugins = [];\n\t\t\t\tChildren.forEach(\n\t\t\t\t\tfills,\n\t\t\t\t\t( {\n\t\t\t\t\t\tprops: { __unstableExplicitMenuItem, __unstableTarget },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\tif ( __unstableTarget && __unstableExplicitMenuItem ) {\n\t\t\t\t\t\t\tinitializedByPlugins.push( __unstableTarget );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tconst children = Children.map( fills, ( child ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t! child.props.__unstableExplicitMenuItem &&\n\t\t\t\t\t\tinitializedByPlugins.includes(\n\t\t\t\t\t\t\tchild.props.__unstableTarget\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t} );\n\n\t\t\t\treturn <Component { ...props }>{ children }</Component>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n\nfunction ActionItem( { name, as: Component = Button, onClick, ...props } ) {\n\treturn (\n\t\t<Fill name={ name }>\n\t\t\t{ ( { onClick: fpOnClick } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Component\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\tonClick || fpOnClick\n\t\t\t\t\t\t\t\t? ( ...args ) => {\n\t\t\t\t\t\t\t\t\t\t( onClick || noop )( ...args );\n\t\t\t\t\t\t\t\t\t\t( fpOnClick || noop )( ...args );\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Fill>\n\t);\n}\n\nActionItem.Slot = ActionItemSlot;\n\nexport default ActionItem;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Slot, Fill } from '@wordpress/components';\n\nfunction PinnedItems( { scope, ...props } ) {\n\treturn <Fill name={ `PinnedItems/${ scope }` } { ...props } />;\n}\n\nfunction PinnedItemsSlot( { scope, className, ...props } ) {\n\treturn (\n\t\t<Slot name={ `PinnedItems/${ scope }` } { ...props }>\n\t\t\t{ ( fills ) =>\n\t\t\t\tfills?.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t'interface-pinned-items'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</Slot>\n\t);\n}\n\nPinnedItems.Slot = PinnedItemsSlot;\n\nexport default PinnedItems;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Type definitions\n */\ntype NavigableRegionProps = {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n\tariaLabel: string;\n\tas?: React.ElementType;\n\t[ key: string ]: any;\n};\n\n// This is a copy of the private `NavigableRegion` component from the '@wordpress/editor' private APIs.\nconst NavigableRegion = forwardRef< HTMLElement, NavigableRegionProps >(\n\t( { children, className, ariaLabel, as: Tag = 'div', ...props }, ref ) => {\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\tref={ ref }\n\t\t\t\tclassName={ clsx( 'admin-ui-navigable-region', className ) }\n\t\t\t\taria-label={ ariaLabel }\n\t\t\t\trole=\"region\"\n\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Tag>\n\t\t);\n\t}\n);\n\nNavigableRegion.displayName = 'NavigableRegion';\n\nexport default NavigableRegion;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion } from '@wordpress/admin-ui';\nimport { forwardRef, useEffect } from '@wordpress/element';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseResizeObserver,\n} from '@wordpress/compose';\n\nconst ANIMATION_DURATION = 0.25;\nconst commonTransition = {\n\ttype: 'tween',\n\tduration: ANIMATION_DURATION,\n\tease: [ 0.6, 0, 0.4, 1 ],\n};\n\nfunction useHTMLClass( className ) {\n\tuseEffect( () => {\n\t\tconst element =\n\t\t\tdocument && document.querySelector( `html:not(.${ className })` );\n\t\tif ( ! element ) {\n\t\t\treturn;\n\t\t}\n\t\telement.classList.toggle( className );\n\t\treturn () => {\n\t\t\telement.classList.toggle( className );\n\t\t};\n\t}, [ className ] );\n}\n\nconst headerVariants = {\n\thidden: { opacity: 1, marginTop: -60 },\n\tvisible: { opacity: 1, marginTop: 0 },\n\tdistractionFreeHover: {\n\t\topacity: 1,\n\t\tmarginTop: 0,\n\t\ttransition: {\n\t\t\t...commonTransition,\n\t\t\tdelay: 0.2,\n\t\t\tdelayChildren: 0.2,\n\t\t},\n\t},\n\tdistractionFreeHidden: {\n\t\topacity: 0,\n\t\tmarginTop: -60,\n\t},\n\tdistractionFreeDisabled: {\n\t\topacity: 0,\n\t\tmarginTop: 0,\n\t\ttransition: {\n\t\t\t...commonTransition,\n\t\t\tdelay: 0.8,\n\t\t\tdelayChildren: 0.8,\n\t\t},\n\t},\n};\n\nfunction InterfaceSkeleton(\n\t{\n\t\tisDistractionFree,\n\t\tfooter,\n\t\theader,\n\t\teditorNotices,\n\t\tsidebar,\n\t\tsecondarySidebar,\n\t\tcontent,\n\t\tactions,\n\t\tlabels,\n\t\tclassName,\n\t},\n\tref\n) {\n\tconst [ secondarySidebarResizeListener, secondarySidebarSize ] =\n\t\tuseResizeObserver();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst disableMotion = useReducedMotion();\n\tconst defaultTransition = {\n\t\ttype: 'tween',\n\t\tduration: disableMotion ? 0 : ANIMATION_DURATION,\n\t\tease: [ 0.6, 0, 0.4, 1 ],\n\t};\n\tuseHTMLClass( 'interface-interface-skeleton__html-container' );\n\n\tconst defaultLabels = {\n\t\t/* translators: accessibility text for the top bar landmark region. */\n\t\theader: _x( 'Header', 'header landmark area' ),\n\t\t/* translators: accessibility text for the content landmark region. */\n\t\tbody: __( 'Content' ),\n\t\t/* translators: accessibility text for the secondary sidebar landmark region. */\n\t\tsecondarySidebar: __( 'Block Library' ),\n\t\t/* translators: accessibility text for the settings landmark region. */\n\t\tsidebar: _x( 'Settings', 'settings landmark area' ),\n\t\t/* translators: accessibility text for the publish landmark region. */\n\t\tactions: __( 'Publish' ),\n\t\t/* translators: accessibility text for the footer landmark region. */\n\t\tfooter: __( 'Footer' ),\n\t};\n\n\tconst mergedLabels = { ...defaultLabels, ...labels };\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ clsx(\n\t\t\t\tclassName,\n\t\t\t\t'interface-interface-skeleton',\n\t\t\t\t!! footer && 'has-footer'\n\t\t\t) }\n\t\t>\n\t\t\t<div className=\"interface-interface-skeleton__editor\">\n\t\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t\t{ !! header && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tas={ motion.div }\n\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__header\"\n\t\t\t\t\t\t\taria-label={ mergedLabels.header }\n\t\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\t\tisDistractionFree && ! isMobileViewport\n\t\t\t\t\t\t\t\t\t? 'distractionFreeHidden'\n\t\t\t\t\t\t\t\t\t: 'hidden'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twhileHover={\n\t\t\t\t\t\t\t\tisDistractionFree && ! isMobileViewport\n\t\t\t\t\t\t\t\t\t? 'distractionFreeHover'\n\t\t\t\t\t\t\t\t\t: 'visible'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tanimate={\n\t\t\t\t\t\t\t\tisDistractionFree && ! isMobileViewport\n\t\t\t\t\t\t\t\t\t? 'distractionFreeDisabled'\n\t\t\t\t\t\t\t\t\t: 'visible'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\texit={\n\t\t\t\t\t\t\t\tisDistractionFree && ! isMobileViewport\n\t\t\t\t\t\t\t\t\t? 'distractionFreeHidden'\n\t\t\t\t\t\t\t\t\t: 'hidden'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvariants={ headerVariants }\n\t\t\t\t\t\t\ttransition={ defaultTransition }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ header }\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\t\t\t\t</AnimatePresence>\n\t\t\t\t{ isDistractionFree && (\n\t\t\t\t\t<div className=\"interface-interface-skeleton__header\">\n\t\t\t\t\t\t{ editorNotices }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"interface-interface-skeleton__body\">\n\t\t\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t\t\t{ !! secondarySidebar && (\n\t\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__secondary-sidebar\"\n\t\t\t\t\t\t\t\tariaLabel={ mergedLabels.secondarySidebar }\n\t\t\t\t\t\t\t\tas={ motion.div }\n\t\t\t\t\t\t\t\tinitial=\"closed\"\n\t\t\t\t\t\t\t\tanimate=\"open\"\n\t\t\t\t\t\t\t\texit=\"closed\"\n\t\t\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\t\t\topen: { width: secondarySidebarSize.width },\n\t\t\t\t\t\t\t\t\tclosed: { width: 0 },\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttransition={ defaultTransition }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\twidth: isMobileViewport\n\t\t\t\t\t\t\t\t\t\t\t? '100vw'\n\t\t\t\t\t\t\t\t\t\t\t: 'fit-content',\n\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\t\t\t\topen: { x: 0 },\n\t\t\t\t\t\t\t\t\t\tclosed: { x: '-100%' },\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\ttransition={ defaultTransition }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ secondarySidebarResizeListener }\n\t\t\t\t\t\t\t\t\t{ secondarySidebar }\n\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\tclassName=\"interface-interface-skeleton__content\"\n\t\t\t\t\t\tariaLabel={ mergedLabels.body }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ content }\n\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t{ !! sidebar && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__sidebar\"\n\t\t\t\t\t\t\tariaLabel={ mergedLabels.sidebar }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sidebar }\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! actions && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__actions\"\n\t\t\t\t\t\t\tariaLabel={ mergedLabels.actions }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ actions }\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ !! footer && (\n\t\t\t\t<NavigableRegion\n\t\t\t\t\tclassName=\"interface-interface-skeleton__footer\"\n\t\t\t\t\tariaLabel={ mergedLabels.footer }\n\t\t\t\t>\n\t\t\t\t\t{ footer }\n\t\t\t\t</NavigableRegion>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InterfaceSkeleton );\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {?Object} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\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\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n", "/**\n * \"Kind\" of the navigation post.\n *\n * @type {string}\n */\nexport const KIND = 'root';\n\n/**\n * \"post type\" of the navigation post.\n *\n * @type {string}\n */\nexport const WIDGET_AREA_ENTITY_TYPE = 'sidebar';\n\n/**\n * \"post type\" of the widget area post.\n *\n * @type {string}\n */\nexport const POST_TYPE = 'postType';\n\n/**\n * Builds an ID for a new widget area post.\n *\n * @param {number} widgetAreaId Widget area id.\n * @return {string} An ID.\n */\nexport const buildWidgetAreaPostId = ( widgetAreaId ) =>\n\t`widget-area-${ widgetAreaId }`;\n\n/**\n * Builds an ID for a global widget areas post.\n *\n * @return {string} An ID.\n */\nexport const buildWidgetAreasPostId = () => `widget-areas`;\n\n/**\n * Builds a query to resolve sidebars.\n *\n * @return {Object} Query.\n */\nexport function buildWidgetAreasQuery() {\n\treturn {\n\t\tper_page: -1,\n\t};\n}\n\n/**\n * Builds a query to resolve widgets.\n *\n * @return {Object} Query.\n */\nexport function buildWidgetsQuery() {\n\treturn {\n\t\tper_page: -1,\n\t\t_embed: 'about',\n\t};\n}\n\n/**\n * Creates a stub post with given id and set of blocks. Used as a governing entity records\n * for all widget areas.\n *\n * @param {string} id Post ID.\n * @param {Array} blocks The list of blocks.\n * @return {Object} A stub post object formatted in compliance with the data layer.\n */\nexport const createStubPost = ( id, blocks ) => ( {\n\tid,\n\tslug: id,\n\tstatus: 'draft',\n\ttype: 'page',\n\tblocks,\n\tmeta: {\n\t\twidgetAreaId: id,\n\t},\n} );\n", "/**\n * Module Constants\n */\nexport const STORE_NAME = 'core/edit-widgets';\n", "/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t() => {\n\t\t\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t// Key widgets by their ID.\n\t\t\t\twidgets?.reduce(\n\t\t\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t\t\t...allWidgets,\n\t\t\t\t\t\t[ widget.id ]: widget,\n\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\t() => [\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t),\n\t\t]\n\t)\n);\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\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\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n\n/**\n * Returns whether widget saving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @example\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import { store as widgetStore } from '@wordpress/edit-widgets';\n * import { useSelect } from '@wordpress/data';\n *\n * const ExampleComponent = () => {\n * \tconst isSavingLocked = useSelect(\n * \t\t( select ) => select( widgetStore ).isWidgetSavingLocked(),\n * \t\t[]\n * \t);\n *\n * \treturn isSavingLocked ? (\n * \t\t<p>{ __( 'Widget saving is locked' ) }</p>\n * \t) : (\n * \t\t<p>{ __( 'Widget saving is not locked' ) }</p>\n * \t);\n * };\n * ```\n *\n * @return {boolean} Is locked.\n */\nexport function isWidgetSavingLocked( state ) {\n\treturn Object.keys( state.widgetSavingLock ).length > 0;\n}\n", "export function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\n\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\n", "/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/edit-widgets'\n\t);\n", "/**\n * WordPress dependencies\n */\n\nimport { BlockControls } from '@wordpress/block-editor';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { MoveToWidgetArea } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\n\nconst withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { clientId, name: blockName } = props;\n\t\tconst { widgetAreas, currentWidgetAreaId, canInsertBlockInWidgetArea } =\n\t\t\tuseSelect(\n\t\t\t\t( select ) => {\n\t\t\t\t\t// Component won't display for a widget area, so don't run selectors.\n\t\t\t\t\tif ( blockName === 'core/widget-area' ) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst selectors = select( editWidgetsStore );\n\n\t\t\t\t\tconst widgetAreaBlock =\n\t\t\t\t\t\tselectors.getParentWidgetAreaBlock( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidgetAreas: selectors.getWidgetAreas(),\n\t\t\t\t\t\tcurrentWidgetAreaId: widgetAreaBlock?.attributes?.id,\n\t\t\t\t\t\tcanInsertBlockInWidgetArea:\n\t\t\t\t\t\t\tselectors.canInsertBlockInWidgetArea( blockName ),\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ clientId, blockName ]\n\t\t\t);\n\n\t\tconst { moveBlockToWidgetArea } = useDispatch( editWidgetsStore );\n\t\tconst hasMultipleWidgetAreas = widgetAreas?.length > 1;\n\t\tconst isMoveToWidgetAreaVisible =\n\t\t\tblockName !== 'core/widget-area' &&\n\t\t\thasMultipleWidgetAreas &&\n\t\t\tcanInsertBlockInWidgetArea;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t\t{ isMoveToWidgetAreaVisible && (\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<MoveToWidgetArea\n\t\t\t\t\t\t\twidgetAreas={ widgetAreas }\n\t\t\t\t\t\t\tcurrentWidgetAreaId={ currentWidgetAreaId }\n\t\t\t\t\t\t\tonSelect={ ( widgetAreaId ) => {\n\t\t\t\t\t\t\t\tmoveBlockToWidgetArea(\n\t\t\t\t\t\t\t\t\tprops.clientId,\n\t\t\t\t\t\t\t\t\twidgetAreaId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\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'withMoveToWidgetAreaToolbarItem'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-widgets/block-edit',\n\twithMoveToWidgetAreaToolbarItem\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 { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ttitle: __( 'Widget Area' ),\n\tdescription: __( 'A widget area container.' ),\n\t__experimentalLabel: ( { name: label } ) => label,\n\tedit,\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/widget-area\",\n\t\"title\": \"Widget Area\",\n\t\"category\": \"widgets\",\n\t\"attributes\": {\n\t\t\"id\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"inserter\": false,\n\t\t\"customClassName\": false,\n\t\t\"reusable\": false,\n\t\t\"__experimentalToolbar\": false,\n\t\t\"__experimentalParentSelector\": false,\n\t\t\"__experimentalDisableBlockOverlay\": true\n\t},\n\t\"editorStyle\": \"wp-block-widget-area-editor\",\n\t\"style\": \"wp-block-widget-area\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useCallback, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { EntityProvider } from '@wordpress/core-data';\nimport {\n\t__unstableDisclosureContent as DisclosureContent,\n\tPanel,\n\tPanelBody,\n} from '@wordpress/components';\nimport { useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreaInnerBlocks from './inner-blocks';\nimport { store as editWidgetsStore } from '../../../store';\nimport useIsDraggingWithin from './use-is-dragging-within';\n\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\nexport default function WidgetAreaEdit( {\n\tclientId,\n\tattributes: { id, name },\n} ) {\n\tconst isOpen = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editWidgetsStore ).getIsWidgetAreaOpen( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { setIsWidgetAreaOpen } = useDispatch( editWidgetsStore );\n\n\tconst wrapper = useRef();\n\tconst setOpen = useCallback(\n\t\t( openState ) => setIsWidgetAreaOpen( clientId, openState ),\n\t\t[ clientId ]\n\t);\n\tconst isDragging = useIsDragging( wrapper );\n\tconst isDraggingWithin = useIsDraggingWithin( wrapper );\n\n\tconst [ openedWhileDragging, setOpenedWhileDragging ] = useState( false );\n\tuseEffect( () => {\n\t\tif ( ! isDragging ) {\n\t\t\tsetOpenedWhileDragging( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isDraggingWithin && ! isOpen ) {\n\t\t\tsetOpen( true );\n\t\t\tsetOpenedWhileDragging( true );\n\t\t} else if ( ! isDraggingWithin && isOpen && openedWhileDragging ) {\n\t\t\tsetOpen( false );\n\t\t}\n\t}, [ isOpen, isDragging, isDraggingWithin, openedWhileDragging ] );\n\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Panel ref={ wrapper }>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ name }\n\t\t\t\t\topened={ isOpen }\n\t\t\t\t\tonToggle={ () => {\n\t\t\t\t\t\tsetIsWidgetAreaOpen( clientId, ! isOpen );\n\t\t\t\t\t} }\n\t\t\t\t\tscrollAfterOpen={ ! isDragging }\n\t\t\t\t>\n\t\t\t\t\t{ ( { opened } ) => (\n\t\t\t\t\t\t// This is required to ensure LegacyWidget blocks are not\n\t\t\t\t\t\t// unmounted when the panel is collapsed. Unmounting legacy\n\t\t\t\t\t\t// widgets may have unintended consequences (e.g. TinyMCE\n\t\t\t\t\t\t// not being properly reinitialized)\n\t\t\t\t\t\t<DisclosureContent\n\t\t\t\t\t\t\tclassName=\"wp-block-widget-area__panel-body-content\"\n\t\t\t\t\t\t\tvisible={ opened }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\t\t\tkind=\"root\"\n\t\t\t\t\t\t\t\ttype=\"postType\"\n\t\t\t\t\t\t\t\tid={ `widget-area-${ id }` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<WidgetAreaInnerBlocks id={ id } />\n\t\t\t\t\t\t\t</EntityProvider>\n\t\t\t\t\t\t</DisclosureContent>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</Panel>\n\t\t</div>\n\t);\n}\n\n/**\n * A React hook to determine if dragging is active.\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the entire document.\n */\nconst useIsDragging = ( elementRef ) => {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart() {\n\t\t\tsetIsDragging( true );\n\t\t}\n\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDragging( false );\n\t\t}\n\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t};\n\t}, [] );\n\n\treturn isDragging;\n};\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport { InnerBlocks, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useIsDraggingWithin from './use-is-dragging-within';\n\nexport default function WidgetAreaInnerBlocks( { id } ) {\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'root',\n\t\t'postType'\n\t);\n\tconst innerBlocksRef = useRef();\n\tconst isDraggingWithinInnerBlocks = useIsDraggingWithin( innerBlocksRef );\n\tconst shouldHighlightDropZone = isDraggingWithinInnerBlocks;\n\t// Using the experimental hook so that we can control the className of the element.\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ref: innerBlocksRef },\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\ttemplateLock: false,\n\t\t\trenderAppender: InnerBlocks.ButtonBlockAppender,\n\t\t}\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tdata-widget-area-id={ id }\n\t\t\tclassName={ clsx(\n\t\t\t\t'wp-block-widget-area__inner-blocks block-editor-inner-blocks editor-styles-wrapper',\n\t\t\t\t{\n\t\t\t\t\t'wp-block-widget-area__highlight-drop-zone':\n\t\t\t\t\t\tshouldHighlightDropZone,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\n\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\nexport default useIsDraggingWithin;\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { PluginArea } from '@wordpress/plugins';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __unstableUseNavigateRegions as useNavigateRegions } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ErrorBoundary from '../error-boundary';\nimport WidgetAreasBlockEditorProvider from '../widget-areas-block-editor-provider';\nimport Sidebar from '../sidebar';\nimport Interface from './interface';\nimport UnsavedChangesWarning from './unsaved-changes-warning';\nimport WelcomeGuide from '../welcome-guide';\n\nfunction Layout( { blockEditorSettings } ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\tconst navigateRegionsProps = useNavigateRegions();\n\n\treturn (\n\t\t<ErrorBoundary>\n\t\t\t<div\n\t\t\t\tclassName={ navigateRegionsProps.className }\n\t\t\t\t{ ...navigateRegionsProps }\n\t\t\t\tref={ navigateRegionsProps.ref }\n\t\t\t>\n\t\t\t\t<WidgetAreasBlockEditorProvider\n\t\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t\t>\n\t\t\t\t\t<Interface blockEditorSettings={ blockEditorSettings } />\n\t\t\t\t\t<Sidebar />\n\t\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t\t<WelcomeGuide />\n\t\t\t\t</WidgetAreasBlockEditorProvider>\n\t\t\t</div>\n\t\t</ErrorBoundary>\n\t);\n}\n\nexport default Layout;\n", "/**\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 __next40pxDefaultSize variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nfunction ErrorBoundaryWarning( { message, error } ) {\n\tconst actions = [\n\t\t<CopyButton key=\"copy-error\" text={ error.stack }>\n\t\t\t{ __( 'Copy Error' ) }\n\t\t</CopyButton>,\n\t];\n\n\treturn (\n\t\t<Warning className=\"edit-widgets-error-boundary\" actions={ actions }>\n\t\t\t{ message }\n\t\t</Warning>\n\t);\n}\n\nexport default class ErrorBoundary extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = {\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tcomponentDidCatch( error ) {\n\t\tdoAction( 'editor.ErrorBoundary.errorLogged', error );\n\t}\n\n\tstatic getDerivedStateFromError( error ) {\n\t\treturn { error };\n\t}\n\n\trender() {\n\t\tif ( ! this.state.error ) {\n\t\t\treturn this.props.children;\n\t\t}\n\n\t\treturn (\n\t\t\t<ErrorBoundaryWarning\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'The editor has encountered an unexpected error.'\n\t\t\t\t) }\n\t\t\t\terror={ this.state.error }\n\t\t\t/>\n\t\t);\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\nimport { ALLOW_REUSABLE_BLOCKS } from '../../constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\tselect( coreStore );\n\t\tconst siteSettings = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tcanUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'attachment',\n\t\t\t\t} ) ?? true,\n\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t? getEntityRecords( 'postType', 'wp_block' )\n\t\t\t\t: EMPTY_ARRAY,\n\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editWidgetsStore );\n\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\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\thasFixedToolbar: isFixedToolbarActive || ! isLargeViewport,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\teditorTool: 'edit',\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tisLargeViewport,\n\t\tkeepCaretInsideBlock,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t] );\n\n\tconst widgetAreaId = useLastSelectedWidgetArea();\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\tKIND,\n\t\tPOST_TYPE,\n\t\t{ id: buildWidgetAreasPostId() }\n\t);\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<BlockKeyboardShortcuts />\n\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\tvalue={ blocks }\n\t\t\t\tonInput={ onInput }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tsettings={ settings }\n\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<PatternsMenuItems rootClientId={ widgetAreaId } />\n\t\t\t</ExperimentalBlockEditorProvider>\n\t\t</SlotFillProvider>\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 } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\nfunction KeyboardShortcuts() {\n\tconst { redo, undo } = useDispatch( coreStore );\n\tconst { saveEditedWidgetAreas } = useDispatch( editWidgetsStore );\n\n\tuseShortcut( 'core/edit-widgets/undo', ( event ) => {\n\t\tundo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/edit-widgets/redo', ( event ) => {\n\t\tredo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/edit-widgets/save', ( event ) => {\n\t\tevent.preventDefault();\n\t\tsaveEditedWidgetAreas();\n\t} );\n\n\treturn null;\n}\n\nfunction KeyboardShortcutsRegister() {\n\t// Registering the shortcuts.\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-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/edit-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/edit-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/edit-widgets/keyboard-shortcuts',\n\t\t\tcategory: 'main',\n\t\t\tdescription: __( 'Display these keyboard shortcuts.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: 'h',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-widgets/next-region',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Navigate to the next part of the editor.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'ctrl',\n\t\t\t\tcharacter: '`',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: 'n',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-widgets/previous-region',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Navigate to the previous part of the editor.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'ctrlShift',\n\t\t\t\tcharacter: '`',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: 'p',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'ctrlShift',\n\t\t\t\t\tcharacter: '~',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\nexport default KeyboardShortcuts;\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as widgetsEditorStore } from '../store';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../store/utils';\n\n/**\n * A react hook that returns the client id of the last widget area to have\n * been selected, or to have a selected block within it.\n *\n * @return {string} clientId of the widget area last selected.\n */\nconst useLastSelectedWidgetArea = () =>\n\tuseSelect( ( select ) => {\n\t\tconst { getBlockSelectionEnd, getBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionEndClientId = getBlockSelectionEnd();\n\n\t\t// If the selected block is a widget area, return its clientId.\n\t\tif ( getBlockName( selectionEndClientId ) === 'core/widget-area' ) {\n\t\t\treturn selectionEndClientId;\n\t\t}\n\n\t\tconst { getParentWidgetAreaBlock } = select( widgetsEditorStore );\n\t\tconst widgetAreaBlock =\n\t\t\tgetParentWidgetAreaBlock( selectionEndClientId );\n\t\tconst widgetAreaBlockClientId = widgetAreaBlock?.clientId;\n\n\t\tif ( widgetAreaBlockClientId ) {\n\t\t\treturn widgetAreaBlockClientId;\n\t\t}\n\n\t\t// If no widget area has been selected, return the clientId of the first\n\t\t// area.\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst widgetAreasPost = getEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreasPostId()\n\t\t);\n\t\treturn widgetAreasPost?.blocks[ 0 ]?.clientId;\n\t}, [] );\n\nexport default useLastSelectedWidgetArea;\n", "export const ALLOW_REUSABLE_BLOCKS = false;\nexport const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tuseEffect,\n\tPlatform,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were once called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction SidebarHeader( { selectedWidgetAreaBlock } ) {\n\treturn (\n\t\t<Tabs.TabList>\n\t\t\t<Tabs.Tab tabId={ WIDGET_AREAS_IDENTIFIER }>\n\t\t\t\t{ selectedWidgetAreaBlock\n\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t: __( 'Widget Areas' ) }\n\t\t\t</Tabs.Tab>\n\t\t\t<Tabs.Tab tabId={ BLOCK_INSPECTOR_IDENTIFIER }>\n\t\t\t\t{ __( 'Block' ) }\n\t\t\t</Tabs.Tab>\n\t\t</Tabs.TabList>\n\t);\n}\n\nfunction SidebarContent( {\n\thasSelectedNonAreaBlock,\n\tcurrentArea,\n\tisGeneralSidebarOpen,\n\tselectedWidgetAreaBlock,\n} ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\t// We're intentionally leaving `currentArea` and `isGeneralSidebarOpen`\n\t\t// out of the dep array because we want this effect to run based on\n\t\t// block selection changes, not sidebar state changes.\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\tconst tabsContextValue = useContext( Tabs.Context );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader\n\t\t\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t<WidgetAreas\n\t\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\ttabId={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\tfocusable={ false }\n\t\t\t\t>\n\t\t\t\t\t{ hasSelectedNonAreaBlock ? (\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</ComplementaryArea>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock, getBlock, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\t// `newSelectedTabId` could technically be falsy if no tab is selected (i.e.\n\t// the initial render) or when we don't want a tab displayed (i.e. the\n\t// sidebar is closed). These cases should both be covered by the `!!` check\n\t// below, so we shouldn't need any additional falsy handling.\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea(\n\t\t\t\t\teditWidgetsStore.name,\n\t\t\t\t\tnewSelectedTabId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\t// Due to how this component is controlled (via a value from the\n\t\t\t// `interfaceStore`), when the sidebar closes the currently selected\n\t\t\t// tab can't be found. This causes the component to continuously reset\n\t\t\t// the selection to `null` in an infinite loop. Proactively setting\n\t\t\t// the selected tab to `null` avoids that.\n\t\t\tselectedTabId={ isGeneralSidebarOpen ? currentArea : null }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\thasSelectedNonAreaBlock={ hasSelectedNonAreaBlock }\n\t\t\t\tcurrentArea={ currentArea }\n\t\t\t\tisGeneralSidebarOpen={ isGeneralSidebarOpen }\n\t\t\t\tselectedWidgetAreaBlock={ selectedWidgetAreaBlock }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { blockDefault } from '@wordpress/icons';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\nexport default function WidgetAreas( { selectedWidgetAreaId } ) {\n\tconst widgetAreas = useSelect(\n\t\t( select ) => select( editWidgetsStore ).getWidgetAreas(),\n\t\t[]\n\t);\n\n\tconst selectedWidgetArea = useMemo(\n\t\t() =>\n\t\t\tselectedWidgetAreaId &&\n\t\t\twidgetAreas?.find(\n\t\t\t\t( widgetArea ) => widgetArea.id === selectedWidgetAreaId\n\t\t\t),\n\t\t[ selectedWidgetAreaId, widgetAreas ]\n\t);\n\n\tlet description;\n\tif ( ! selectedWidgetArea ) {\n\t\tdescription = __(\n\t\t\t// eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts\n\t\t\t'Widget Areas are global parts in your site\u2019s layout that can accept blocks. These vary by theme, but are typically parts like your Sidebar or Footer.'\n\t\t);\n\t} else if ( selectedWidgetAreaId === 'wp_inactive_widgets' ) {\n\t\tdescription = __(\n\t\t\t'Blocks in this Widget Area will not be displayed in your site.'\n\t\t);\n\t} else {\n\t\tdescription = selectedWidgetArea.description;\n\t}\n\n\treturn (\n\t\t<div className=\"edit-widgets-widget-areas\">\n\t\t\t<div className=\"edit-widgets-widget-areas__top-container\">\n\t\t\t\t<BlockIcon icon={ blockDefault } />\n\t\t\t\t<div>\n\t\t\t\t\t<p\n\t\t\t\t\t\t// Use `dangerouslySetInnerHTML` to keep backwards\n\t\t\t\t\t\t// compatibility. Basic markup in the description is an\n\t\t\t\t\t\t// established feature of WordPress.\n\t\t\t\t\t\t// @see https://github.com/WordPress/gutenberg/issues/33106\n\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t__html: safeHTML( description ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ widgetAreas?.length === 0 && (\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Your theme does not contain any Widget Areas.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! selectedWidgetArea && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\thref={ addQueryArgs( 'customize.php', {\n\t\t\t\t\t\t\t\t'autofocus[panel]': 'widgets',\n\t\t\t\t\t\t\t\treturn: window.location.pathname,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage with live preview' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { BlockBreadcrumb } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport Header from '../header';\nimport WidgetAreasBlockEditorContent from '../widget-areas-block-editor-content';\nimport { store as editWidgetsStore } from '../../store';\nimport SecondarySidebar from '../secondary-sidebar';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the widgets screen top bar landmark region. */\n\theader: __( 'Widgets top bar' ),\n\t/* translators: accessibility text for the widgets screen content landmark region. */\n\tbody: __( 'Widgets and blocks' ),\n\t/* translators: accessibility text for the widgets screen settings landmark region. */\n\tsidebar: __( 'Widgets settings' ),\n\t/* translators: accessibility text for the widgets screen footer landmark region. */\n\tfooter: __( 'Widgets footer' ),\n};\n\nfunction Interface( { blockEditorSettings } ) {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =\n\t\tuseDispatch( editWidgetsStore );\n\tconst {\n\t\thasBlockBreadCrumbsEnabled,\n\t\thasSidebarEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\thasSidebarEnabled: !! select(\n\t\t\t\tinterfaceStore\n\t\t\t).getActiveComplementaryArea( editWidgetsStore.name ),\n\t\t\tisInserterOpened: !! select( editWidgetsStore ).isInserterOpened(),\n\t\t\tisListViewOpened: !! select( editWidgetsStore ).isListViewOpened(),\n\t\t\thasBlockBreadCrumbsEnabled: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( hasSidebarEnabled && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t\tsetIsListViewOpened( false );\n\t\t}\n\t}, [ hasSidebarEnabled, isHugeViewport ] );\n\n\tuseEffect( () => {\n\t\tif ( ( isInserterOpened || isListViewOpened ) && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isListViewOpened, isHugeViewport ] );\n\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\n\tconst hasSecondarySidebar = isListViewOpened || isInserterOpened;\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={ <Header /> }\n\t\t\tsecondarySidebar={ hasSecondarySidebar && <SecondarySidebar /> }\n\t\t\tsidebar={ <ComplementaryArea.Slot scope=\"core/edit-widgets\" /> }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t<WidgetAreasBlockEditorContent\n\t\t\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\thasBlockBreadCrumbsEnabled &&\n\t\t\t\t! isMobileViewport && (\n\t\t\t\t\t<div className=\"edit-widgets-layout__footer\">\n\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ __( 'Widgets' ) } />\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport default Interface;\n", "/**\n * WordPress dependencies\n */\nimport { BlockToolbar } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Popover, VisuallyHidden } from '@wordpress/components';\nimport { PinnedItems } from '@wordpress/interface';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport DocumentTools from './document-tools';\nimport SaveButton from '../save-button';\nimport MoreMenu from '../more-menu';\n\nfunction Header() {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst blockToolbarRef = useRef();\n\tconst { hasFixedToolbar } = useSelect(\n\t\t( select ) => ( {\n\t\t\thasFixedToolbar: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-widgets-header\">\n\t\t\t\t<div className=\"edit-widgets-header__navigable-toolbar-wrapper\">\n\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t<h1 className=\"edit-widgets-header__title\">\n\t\t\t\t\t\t\t{ __( 'Widgets' ) }\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isLargeViewport && (\n\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\tclassName=\"edit-widgets-header__title\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Widgets' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t) }\n\t\t\t\t\t<DocumentTools />\n\t\t\t\t\t{ hasFixedToolbar && isLargeViewport && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"selected-block-tools-wrapper\">\n\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t\t\t\tname=\"block-toolbar\"\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</div>\n\t\t\t\t<div className=\"edit-widgets-header__actions\">\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-widgets\" />\n\t\t\t\t\t<SaveButton />\n\t\t\t\t\t<MoreMenu />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Header;\n", "/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { NavigableToolbar } from '@wordpress/block-editor';\nimport { listView, plus } from '@wordpress/icons';\nimport { useCallback } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport UndoButton from '../undo-redo/undo';\nimport RedoButton from '../undo-redo/redo';\nimport { store as editWidgetsStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\nfunction DocumentTools() {\n\tconst isMediumViewport = useViewportMatch( 'medium' );\n\n\tconst {\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tinserterSidebarToggleRef,\n\t\tlistViewToggleRef,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisInserterOpened,\n\t\t\tgetInserterSidebarToggleRef,\n\t\t\tisListViewOpened,\n\t\t\tgetListViewToggleRef,\n\t\t} = unlock( select( editWidgetsStore ) );\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tinserterSidebarToggleRef: getInserterSidebarToggleRef(),\n\t\t\tlistViewToggleRef: getListViewToggleRef(),\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editWidgetsStore );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst toggleInserterSidebar = useCallback(\n\t\t() => setIsInserterOpened( ! isInserterOpen ),\n\t\t[ setIsInserterOpened, isInserterOpen ]\n\t);\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tclassName=\"edit-widgets-header-toolbar\"\n\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<ToolbarItem\n\t\t\t\tref={ inserterSidebarToggleRef }\n\t\t\t\tas={ Button }\n\t\t\t\tclassName=\"edit-widgets-header-toolbar__inserter-toggle\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t\tonClick={ toggleInserterSidebar }\n\t\t\t\ticon={ plus }\n\t\t\t\t/* translators: button label text should, if possible, be under 16\n\t\t\t\t\tcharacters. */\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'Block Inserter',\n\t\t\t\t\t'Generic label for block inserter button'\n\t\t\t\t) }\n\t\t\t\tsize=\"compact\"\n\t\t\t/>\n\t\t\t{ isMediumViewport && (\n\t\t\t\t<>\n\t\t\t\t\t<ToolbarItem as={ UndoButton } />\n\t\t\t\t\t<ToolbarItem as={ RedoButton } />\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar__list-view-toggle\"\n\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\tisPressed={ isListViewOpen }\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={ __( 'List View' ) }\n\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\tref={ listViewToggleRef }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default DocumentTools;\n", "/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { forwardRef } from '@wordpress/element';\n\nfunction UndoButton( props, ref ) {\n\tconst hasUndo = useSelect(\n\t\t( select ) => select( coreStore ).hasUndo(),\n\t\t[]\n\t);\n\tconst { undo } = useDispatch( coreStore );\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ ref }\n\t\t\ticon={ ! isRTL() ? undoIcon : redoIcon }\n\t\t\tlabel={ __( 'Undo' ) }\n\t\t\tshortcut={ displayShortcut.primary( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasUndo }\n\t\t\tonClick={ hasUndo ? undo : undefined }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n}\n\nexport default forwardRef( UndoButton );\n", "/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut, isAppleOS } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { forwardRef } from '@wordpress/element';\n\nfunction RedoButton( props, ref ) {\n\tconst shortcut = isAppleOS()\n\t\t? displayShortcut.primaryShift( 'z' )\n\t\t: displayShortcut.primary( 'y' );\n\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ ref }\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ shortcut }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n}\n\nexport default forwardRef( RedoButton );\n", "/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\nfunction SaveButton() {\n\tconst { hasEditedWidgetAreaIds, isSaving, isWidgetSaveLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedWidgetAreas,\n\t\t\t\tisSavingWidgetAreas,\n\t\t\t\tisWidgetSavingLocked,\n\t\t\t} = select( editWidgetsStore );\n\n\t\t\treturn {\n\t\t\t\thasEditedWidgetAreaIds: getEditedWidgetAreas()?.length > 0,\n\t\t\t\tisSaving: isSavingWidgetAreas(),\n\t\t\t\tisWidgetSaveLocked: isWidgetSavingLocked(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { saveEditedWidgetAreas } = useDispatch( editWidgetsStore );\n\n\tconst isDisabled =\n\t\tisWidgetSaveLocked || isSaving || ! hasEditedWidgetAreaIds;\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"primary\"\n\t\t\tisBusy={ isSaving }\n\t\t\taria-disabled={ isDisabled }\n\t\t\tonClick={ isDisabled ? undefined : saveEditedWidgetAreas }\n\t\t\tsize=\"compact\"\n\t\t>\n\t\t\t{ isSaving ? __( 'Saving\u2026' ) : __( 'Update' ) }\n\t\t</Button>\n\t);\n}\n\nexport default SaveButton;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { external, moreVertical } from '@wordpress/icons';\nimport { PreferenceToggleMenuItem } from '@wordpress/preferences';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport ToolsMoreMenuGroup from './tools-more-menu-group';\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/edit-widgets/keyboard-shortcuts',\n\t\ttoggleKeyboardShortcutsModal\n\t);\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t\tclassName: 'more-menu-dropdown__content',\n\t\t\t\t} }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\ttooltipPosition: 'bottom',\n\t\t\t\t\tsize: 'compact',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ ( onClose ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t\t<MenuGroup label={ _x( 'View', 'noun' ) }>\n\t\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\t\tscope=\"core/edit-widgets\"\n\t\t\t\t\t\t\t\t\tname=\"fixedToolbar\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t\t\tinfo={ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t\t'Top toolbar activated'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t\t'Top toolbar deactivated'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\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/edit-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\t<ToolsMoreMenuGroup.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\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={ __( 'Preferences' ) }>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core/edit-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\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core/edit-widgets\"\n\t\t\t\t\t\t\t\tname=\"themeStyles\"\n\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t'Make the editor look like your theme.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Use theme styles' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\t\tscope=\"core/edit-widgets\"\n\t\t\t\t\t\t\t\t\tname=\"showBlockBreadcrumbs\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Display block breadcrumbs' ) }\n\t\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t\t'Shows block breadcrumbs at the bottom of the editor.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t\t'Display block breadcrumbs activated'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t\t'Display block breadcrumbs deactivated'\n\t\t\t\t\t\t\t\t\t) }\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</DropdownMenu>\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 clsx from 'clsx';\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 { 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=\"edit-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=\"edit-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={ clsx(\n\t\t\t'edit-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=\"edit-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\tuseShortcut( 'core/edit-widgets/keyboard-shortcuts', toggleModal, {\n\t\tbindGlobal: true,\n\t} );\n\n\tif ( ! isModalActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-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=\"edit-widgets-keyboard-shortcut-help-modal__main-shortcuts\"\n\t\t\t\tshortcuts={ [ 'core/edit-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\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'List View shortcuts' ) }\n\t\t\t\tcategoryName=\"list-view\"\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\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: {\n\t\t\tmodifier: 'access',\n\t\t\tcharacter: '0',\n\t\t},\n\t\taliases: [\n\t\t\t{\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: '7',\n\t\t\t},\n\t\t],\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\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'SPACE' },\n\t\tdescription: __( 'Add non breaking space.' ),\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\tconst shortcuts = Array.isArray( shortcut ) ? shortcut : [ shortcut ];\n\n\treturn (\n\t\t<kbd\n\t\t\tclassName=\"edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination\"\n\t\t\taria-label={ forceAriaLabel || ariaLabel }\n\t\t>\n\t\t\t{ shortcuts.map( ( character, index ) => {\n\t\t\t\tif ( character === '+' ) {\n\t\t\t\t\treturn <Fragment key={ index }>{ character }</Fragment>;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<kbd\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tclassName=\"edit-widgets-keyboard-shortcut-help-modal__shortcut-key\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ character }\n\t\t\t\t\t</kbd>\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=\"edit-widgets-keyboard-shortcut-help-modal__shortcut-description\">\n\t\t\t\t{ description }\n\t\t\t</div>\n\t\t\t<div className=\"edit-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 * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill: ToolsMoreMenuGroup, Slot } = createSlotFill(\n\t'EditWidgetsToolsMoreMenuGroup'\n);\n\nToolsMoreMenuGroup.Slot = ( { fillProps } ) => (\n\t<Slot fillProps={ fillProps }>\n\t\t{ ( fills ) => fills.length > 0 && fills }\n\t</Slot>\n);\n\nexport default ToolsMoreMenuGroup;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tBlockList,\n\tBlockToolbar,\n\tBlockTools,\n\tBlockSelectionClearer,\n\tWritingFlow,\n\t__unstableEditorStyles as EditorStyles,\n} from '@wordpress/block-editor';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport Notices from '../notices';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\n\nexport default function WidgetAreasBlockEditorContent( {\n\tblockEditorSettings,\n} ) {\n\tconst hasThemeStyles = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'themeStyles'\n\t\t\t),\n\t\t[]\n\t);\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst styles = useMemo( () => {\n\t\treturn hasThemeStyles ? blockEditorSettings.styles : [];\n\t}, [ blockEditorSettings, hasThemeStyles ] );\n\n\treturn (\n\t\t<div className=\"edit-widgets-block-editor\">\n\t\t\t<Notices />\n\t\t\t{ ! isLargeViewport && <BlockToolbar hideDragHandle /> }\n\t\t\t<BlockTools>\n\t\t\t\t<KeyboardShortcuts />\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\":where(.editor-styles-wrapper)\"\n\t\t\t\t/>\n\t\t\t\t<BlockSelectionClearer>\n\t\t\t\t\t<WritingFlow>\n\t\t\t\t\t\t<BlockList className=\"edit-widgets-main-block-list\" />\n\t\t\t\t\t</WritingFlow>\n\t\t\t\t</BlockSelectionClearer>\n\t\t\t</BlockTools>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { NoticeList, SnackbarList } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n// Last three notices. Slices from the tail end of the list.\nconst MAX_VISIBLE_NOTICES = -3;\n\nfunction Notices() {\n\tconst { removeNotice } = useDispatch( noticesStore );\n\tconst { notices } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tnotices: select( noticesStore ).getNotices(),\n\t\t};\n\t}, [] );\n\n\tconst dismissibleNotices = notices.filter(\n\t\t( { isDismissible, type } ) => isDismissible && type === 'default'\n\t);\n\tconst nonDismissibleNotices = notices.filter(\n\t\t( { isDismissible, type } ) => ! isDismissible && type === 'default'\n\t);\n\tconst snackbarNotices = notices\n\t\t.filter( ( { type } ) => type === 'snackbar' )\n\t\t.slice( MAX_VISIBLE_NOTICES );\n\n\treturn (\n\t\t<>\n\t\t\t<NoticeList\n\t\t\t\tnotices={ nonDismissibleNotices }\n\t\t\t\tclassName=\"edit-widgets-notices__pinned\"\n\t\t\t/>\n\t\t\t<NoticeList\n\t\t\t\tnotices={ dismissibleNotices }\n\t\t\t\tclassName=\"edit-widgets-notices__dismissible\"\n\t\t\t\tonRemove={ removeNotice }\n\t\t\t/>\n\t\t\t<SnackbarList\n\t\t\t\tnotices={ snackbarNotices }\n\t\t\t\tclassName=\"edit-widgets-notices__snackbar\"\n\t\t\t\tonRemove={ removeNotice }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default Notices;\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\n/**\n * Internal dependencies\n */\nimport InserterSidebar from './inserter-sidebar';\nimport ListViewSidebar from './list-view-sidebar';\n\nexport default function SecondarySidebar() {\n\tconst { isInserterOpen, isListViewOpen } = useSelect( ( select ) => {\n\t\tconst { isInserterOpened, isListViewOpened } =\n\t\t\tselect( editWidgetsStore );\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t};\n\t}, [] );\n\n\tif ( isInserterOpen ) {\n\t\treturn <InserterSidebar />;\n\t}\n\tif ( isListViewOpen ) {\n\t\treturn <ListViewSidebar />;\n\t}\n\treturn null;\n}\n", "/**\n * WordPress dependencies\n */\nimport { __experimentalLibrary as Library } from '@wordpress/block-editor';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useWidgetLibraryInsertionPoint from '../../hooks/use-widget-library-insertion-point';\nimport { store as editWidgetsStore } from '../../store';\n\nexport default function InserterSidebar() {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst { rootClientId, insertionIndex } = useWidgetLibraryInsertionPoint();\n\n\tconst { setIsInserterOpened } = useDispatch( editWidgetsStore );\n\n\tconst closeInserter = useCallback( () => {\n\t\treturn setIsInserterOpened( false );\n\t}, [ setIsInserterOpened ] );\n\n\tconst libraryRef = useRef();\n\n\treturn (\n\t\t<div className=\"edit-widgets-layout__inserter-panel\">\n\t\t\t<div className=\"edit-widgets-layout__inserter-panel-content\">\n\t\t\t\t<Library\n\t\t\t\t\tshowInserterHelpPanel\n\t\t\t\t\tshouldFocusBlock={ isMobileViewport }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t__experimentalInsertionIndex={ insertionIndex }\n\t\t\t\t\tref={ libraryRef }\n\t\t\t\t\tonClose={ closeInserter }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../store/utils';\n\nconst useWidgetLibraryInsertionPoint = () => {\n\tconst firstRootId = useSelect( ( select ) => {\n\t\t// Default to the first widget area\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst widgetAreasPost = getEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreasPostId()\n\t\t);\n\t\treturn widgetAreasPost?.blocks[ 0 ]?.clientId;\n\t}, [] );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst insertionPoint =\n\t\t\t\tselect( editWidgetsStore ).__experimentalGetInsertionPoint();\n\n\t\t\t// \"Browse all\" in the quick inserter will set the rootClientId to the current block.\n\t\t\t// Otherwise, it will just be undefined, and we'll have to handle it differently below.\n\t\t\tif ( insertionPoint.rootClientId ) {\n\t\t\t\treturn insertionPoint;\n\t\t\t}\n\n\t\t\tconst clientId = getBlockSelectionEnd() || firstRootId;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t// If the selected block is at the root level, it's a widget area and\n\t\t\t// blocks can't be inserted here. Return this block as the root and the\n\t\t\t// last child clientId indicating insertion at the end.\n\t\t\tif ( clientId && rootClientId === '' ) {\n\t\t\t\treturn {\n\t\t\t\t\trootClientId: clientId,\n\t\t\t\t\tinsertionIndex: getBlockOrder( clientId ).length,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\trootClientId,\n\t\t\t\tinsertionIndex: getBlockIndex( clientId ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ firstRootId ]\n\t);\n};\n\nexport default useWidgetLibraryInsertionPoint;\n", "/**\n * WordPress dependencies\n */\nimport { __experimentalListView as ListView } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport { useFocusOnMount, useMergeRefs } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function ListViewSidebar() {\n\tconst { setIsListViewOpened } = useDispatch( editWidgetsStore );\n\tconst { getListViewToggleRef } = unlock( useSelect( editWidgetsStore ) );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the dropZoneElement updates.\n\tconst [ dropZoneElement, setDropZoneElement ] = useState( null );\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\t// When closing the list view, focus should return to the toggle button.\n\tconst closeListView = useCallback( () => {\n\t\tsetIsListViewOpened( false );\n\t\tgetListViewToggleRef().current?.focus();\n\t}, [ getListViewToggleRef, setIsListViewOpened ] );\n\n\tconst closeOnEscape = useCallback(\n\t\t( event ) => {\n\t\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tcloseListView();\n\t\t\t}\n\t\t},\n\t\t[ closeListView ]\n\t);\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName=\"edit-widgets-editor__list-view-panel\"\n\t\t\tonKeyDown={ closeOnEscape }\n\t\t>\n\t\t\t<div className=\"edit-widgets-editor__list-view-panel-header\">\n\t\t\t\t<strong>{ __( 'List View' ) }</strong>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\tonClick={ closeListView }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-widgets-editor__list-view-panel-content\"\n\t\t\t\tref={ useMergeRefs( [ focusOnMountRef, setDropZoneElement ] ) }\n\t\t\t>\n\t\t\t\t<ListView dropZoneElement={ dropZoneElement } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\n/**\n * Warns the user if there are unsaved changes before leaving the editor.\n *\n * This is a duplicate of the component implemented in the editor package.\n * Duplicated here as edit-widgets doesn't depend on editor.\n *\n * @return {Component} The component.\n */\nexport default function UnsavedChangesWarning() {\n\tconst isDirty = useSelect( ( select ) => {\n\t\tconst { getEditedWidgetAreas } = select( editWidgetsStore );\n\t\tconst editedWidgetAreas = getEditedWidgetAreas();\n\n\t\treturn editedWidgetAreas?.length > 0;\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t/**\n\t\t * Warns the user if there are unsaved changes before leaving the editor.\n\t\t *\n\t\t * @param {Event} event `beforeunload` event.\n\t\t *\n\t\t * @return {string | undefined} Warning prompt message, if unsaved changes exist.\n\t\t */\n\t\tconst warnIfUnsavedChanges = ( event ) => {\n\t\t\tif ( isDirty ) {\n\t\t\t\tevent.returnValue = __(\n\t\t\t\t\t'You have unsaved changes. If you proceed, they will be lost.'\n\t\t\t\t);\n\t\t\t\treturn event.returnValue;\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener( 'beforeunload', warnIfUnsavedChanges );\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener( 'beforeunload', warnIfUnsavedChanges );\n\t\t};\n\t}, [ isDirty ] );\n\n\treturn null;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ExternalLink, Guide } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\nexport default function WelcomeGuide() {\n\tconst isActive = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t[]\n\t);\n\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst widgetAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editWidgetsStore ).getWidgetAreas( { per_page: -1 } ),\n\t\t[]\n\t);\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\tconst isEntirelyBlockWidgets = widgetAreas?.every(\n\t\t( widgetArea ) =>\n\t\t\twidgetArea.id === 'wp_inactive_widgets' ||\n\t\t\twidgetArea.widgets.every( ( widgetId ) =>\n\t\t\t\twidgetId.startsWith( 'block-' )\n\t\t\t)\n\t);\n\n\tconst numWidgetAreas =\n\t\twidgetAreas?.filter(\n\t\t\t( widgetArea ) => widgetArea.id !== 'wp_inactive_widgets'\n\t\t).length ?? 0;\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-widgets-welcome-guide\"\n\t\t\tcontentLabel={ __( 'Welcome to block Widgets' ) }\n\t\t\tfinishButtonText={ __( 'Get started' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-widgets', 'welcomeGuide' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/welcome-canvas.svg\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/welcome-canvas.gif\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-widgets-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Welcome to block Widgets' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t{ isEntirelyBlockWidgets ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<p className=\"edit-widgets-welcome-guide__text\">\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// Translators: %s: Number of block areas in the current theme.\n\t\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t\t'Your theme provides %s \u201Cblock\u201D area for you to add and edit content.\u00A0Try adding a search bar, social icons, or other types of blocks here and see how they\u2019ll look on your site.',\n\t\t\t\t\t\t\t\t\t\t\t\t'Your theme provides %s different \u201Cblock\u201D areas for you to add and edit content.\u00A0Try adding a search bar, social icons, or other types of blocks here and see how they\u2019ll look on your site.',\n\t\t\t\t\t\t\t\t\t\t\t\tnumWidgetAreas\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tnumWidgetAreas\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\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\t<>\n\t\t\t\t\t\t\t\t\t<p className=\"edit-widgets-welcome-guide__text\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'You can now add any block to your site\u2019s widget areas. Don\u2019t worry, all of your favorite widgets still work flawlessly.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<p className=\"edit-widgets-welcome-guide__text\">\n\t\t\t\t\t\t\t\t\t\t<strong>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Want to stick with the old widgets?'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</strong>{ ' ' }\n\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/plugins/classic-widgets/'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Get the Classic Widgets plugin.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t</>\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\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/welcome-editor.svg\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/welcome-editor.gif\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-widgets-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Customize each block' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-widgets-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Each block comes with its own set of controls for changing things like color, width, and alignment. These will show and hide automatically when you have a block selected.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/welcome-library.svg\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/welcome-library.gif\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-widgets-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Explore all blocks' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-widgets-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'All of the blocks available to you live in the block library. You\u2019ll find it wherever you see the <InserterIconImage /> icon.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tInserterIconImage: (\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-widgets-welcome-guide__inserter-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\talt={ __( 'inserter' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='18' height='18' rx='2' fill='%231E1E1E'/%3E%3Cpath d='M9.22727 4V14M4 8.77273H14' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E%0A\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/welcome-documentation.svg\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/welcome-documentation.gif\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-widgets-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Learn more' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-widgets-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\"New to the block editor? Want to learn more about using it? <a>Here's a detailed guide.</a>\"\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/wordpress-block-editor/'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\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\nfunction WelcomeGuideImage( { nonAnimatedSrc, animatedSrc } ) {\n\treturn (\n\t\t<picture className=\"edit-widgets-welcome-guide__image\">\n\t\t\t<source\n\t\t\t\tsrcSet={ nonAnimatedSrc }\n\t\t\t\tmedia=\"(prefers-reduced-motion: reduce)\"\n\t\t\t/>\n\t\t\t<img src={ animatedSrc } width=\"312\" height=\"240\" alt=\"\" />\n\t\t</picture>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO;AAAA;AAAA;;;ACAxB;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO,UAAU,OAAO,GAAG;AAAA;AAAA;;;ACA3B;AAAA;AAAA,aAAO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",
"names": ["import_blocks", "import_data", "import_deprecated", "import_element", "import_block_library", "import_core_data", "import_widgets", "import_preferences", "import_data", "import_blocks", "import_core_data", "import_i18n", "import_components", "import_data", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_element", "import_preferences", "import_plugins", "import_data", "import_data", "import_deprecated", "deprecated", "name", "dispatch", "preferencesStore", "deprecated", "name", "import_data", "import_deprecated", "import_preferences", "preferencesStore", "deprecated", "import_data", "reducer_default", "reducer_default", "import_jsx_runtime", "name", "enableComplementaryArea", "disableComplementaryArea", "import_jsx_runtime", "import_components", "import_components", "import_jsx_runtime", "name", "Component", "import_jsx_runtime", "import_components", "import_jsx_runtime", "import_jsx_runtime", "AnimatePresence", "motion", "enableComplementaryArea", "disableComplementaryArea", "name", "getActiveComplementaryArea", "isComplementaryAreaLoading", "isItemPinned", "preferencesStore", "viewportStore", "pinItem", "unpinItem", "import_element", "import_jsx_runtime", "import_element", "import_components", "import_i18n", "import_compose", "import_jsx_runtime", "ANIMATION_DURATION", "AnimatePresence", "motion", "import_widgets", "STORE_NAME", "coreStore", "dispatch", "noticesStore", "widgetAreasOpenState", "STORE_NAME", "blockEditorStore", "dispatch", "coreStore", "widgetAreasOpenState", "import_data", "import_widgets", "import_core_data", "import_block_editor", "getWidgets", "coreStore", "STORE_NAME", "getWidgetAreas", "blockEditorStore", "widgetAreasOpenState", "selectors_exports", "actions_exports", "store", "STORE_NAME", "apiFetch", "import_block_editor", "import_compose", "import_data", "import_widgets", "import_jsx_runtime", "canInsertBlockInWidgetArea", "store", "moveBlockToWidgetArea", "import_hooks", "import_i18n", "import_element", "import_data", "import_core_data", "import_components", "import_block_editor", "import_core_data", "import_block_editor", "import_element", "import_element", "import_jsx_runtime", "import_jsx_runtime", "name", "store", "setIsWidgetAreaOpen", "DisclosureContent", "import_i18n", "import_data", "import_plugins", "import_notices", "import_components", "import_element", "import_i18n", "import_components", "import_block_editor", "import_compose", "import_hooks", "import_jsx_runtime", "import_components", "import_compose", "import_media_utils", "import_data", "import_core_data", "import_element", "import_block_editor", "import_preferences", "import_element", "import_data", "import_i18n", "import_core_data", "coreStore", "saveEditedWidgetAreas", "store", "keyboardShortcutsStore", "import_data", "import_block_editor", "import_core_data", "blockEditorStore", "getParentWidgetAreaBlock", "store", "coreStore", "import_jsx_runtime", "blockEditorPrivateApis", "editPatternsPrivateApis", "blockLibraryPrivateApis", "coreStore", "preferencesStore", "setIsInserterOpened", "store", "settings", "import_element", "import_i18n", "import_block_editor", "import_components", "import_data", "import_data", "import_element", "import_block_editor", "import_components", "import_i18n", "import_jsx_runtime", "store", "import_jsx_runtime", "componentsPrivateApis", "enableComplementaryArea", "blockEditorStore", "getActiveComplementaryArea", "store", "import_compose", "import_block_editor", "import_element", "import_data", "import_i18n", "import_preferences", "import_block_editor", "import_data", "import_element", "import_i18n", "import_components", "import_compose", "import_preferences", "import_data", "import_i18n", "import_components", "import_block_editor", "import_element", "import_compose", "import_i18n", "import_components", "import_data", "import_keycodes", "import_core_data", "import_element", "import_jsx_runtime", "coreStore", "undo_default", "import_i18n", "import_components", "import_data", "import_keycodes", "import_core_data", "import_element", "import_jsx_runtime", "coreStore", "redo_default", "import_jsx_runtime", "inserterSidebarToggleRef", "listViewToggleRef", "isInserterOpened", "getInserterSidebarToggleRef", "isListViewOpened", "getListViewToggleRef", "store", "setIsInserterOpened", "setIsListViewOpened", "undo_default", "redo_default", "import_components", "import_i18n", "import_data", "import_jsx_runtime", "getEditedWidgetAreas", "isSavingWidgetAreas", "isWidgetSavingLocked", "store", "saveEditedWidgetAreas", "import_components", "import_element", "import_i18n", "import_preferences", "import_keycodes", "import_keyboard_shortcuts", "import_compose", "import_components", "import_i18n", "import_keyboard_shortcuts", "import_data", "import_i18n", "import_element", "import_keycodes", "import_jsx_runtime", "Fragment", "import_data", "import_keyboard_shortcuts", "import_jsx_runtime", "name", "keyboardShortcutsStore", "import_jsx_runtime", "keyboardShortcutsStore", "isModalActive", "import_components", "import_jsx_runtime", "Slot", "import_jsx_runtime", "import_jsx_runtime", "preferencesStore", "import_block_editor", "import_compose", "import_data", "import_element", "import_preferences", "import_components", "import_data", "import_notices", "import_jsx_runtime", "noticesStore", "import_jsx_runtime", "preferencesStore", "EditorStyles", "import_data", "import_block_editor", "import_compose", "import_element", "import_data", "import_data", "import_block_editor", "import_core_data", "coreStore", "blockEditorStore", "store", "import_jsx_runtime", "setIsInserterOpened", "store", "Library", "import_block_editor", "import_components", "import_compose", "import_data", "import_element", "import_i18n", "import_keycodes", "import_jsx_runtime", "setIsListViewOpened", "store", "getListViewToggleRef", "ListView", "import_jsx_runtime", "isInserterOpened", "isListViewOpened", "store", "import_jsx_runtime", "setIsInserterOpened", "setIsListViewOpened", "closeGeneralSidebar", "store", "isInserterOpened", "isListViewOpened", "preferencesStore", "import_i18n", "import_element", "import_data", "getEditedWidgetAreas", "store", "import_data", "import_components", "import_i18n", "import_element", "import_preferences", "import_jsx_runtime", "preferencesStore", "store", "import_jsx_runtime", "noticesStore", "name", "useNavigateRegions", "import_jsx_runtime", "settings", "preferencesStore", "blocksStore", "fetchLinkSuggestions", "deprecated", "name"]
}