@wordpress/edit-post 8.45.1-next.v.202605131032.0 → 8.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/components/back-button/fullscreen-mode-close.cjs +10 -3
- package/build/components/back-button/fullscreen-mode-close.cjs.map +3 -3
- package/build/components/layout/index.cjs +34 -21
- package/build/components/layout/index.cjs.map +3 -3
- package/build/components/meta-boxes/meta-boxes-area/index.cjs +1 -1
- package/build/components/meta-boxes/meta-boxes-area/index.cjs.map +2 -2
- package/build/components/meta-boxes/use-meta-box-initialization.cjs +21 -7
- package/build/components/meta-boxes/use-meta-box-initialization.cjs.map +2 -2
- package/build/index.cjs +120 -9
- package/build/index.cjs.map +3 -3
- package/build-module/components/back-button/fullscreen-mode-close.mjs +21 -8
- package/build-module/components/back-button/fullscreen-mode-close.mjs.map +2 -2
- package/build-module/components/layout/index.mjs +37 -25
- package/build-module/components/layout/index.mjs.map +2 -2
- package/build-module/components/meta-boxes/meta-boxes-area/index.mjs +1 -1
- package/build-module/components/meta-boxes/meta-boxes-area/index.mjs.map +2 -2
- package/build-module/components/meta-boxes/use-meta-box-initialization.mjs +21 -7
- package/build-module/components/meta-boxes/use-meta-box-initialization.mjs.map +2 -2
- package/build-module/index.mjs +121 -10
- package/build-module/index.mjs.map +2 -2
- package/build-style/experimental-admin-bar-in-editor-rtl.css +50 -0
- package/build-style/experimental-admin-bar-in-editor.css +50 -0
- package/build-style/style-rtl.css +53 -2
- package/build-style/style.css +53 -2
- package/package.json +36 -36
- package/src/components/back-button/fullscreen-mode-close.js +39 -21
- package/src/components/layout/index.js +75 -66
- package/src/components/layout/index.native.js +3 -3
- package/src/components/meta-boxes/meta-boxes-area/index.js +3 -1
- package/src/components/meta-boxes/meta-boxes-area/style.scss +4 -4
- package/src/components/meta-boxes/test/use-meta-box-initialization.js +31 -0
- package/src/components/meta-boxes/use-meta-box-initialization.js +30 -11
- package/src/experimental-admin-bar-in-editor.scss +67 -0
- package/src/index.js +155 -11
- package/src/style.scss +1 -0
package/build/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport deprecated from '@wordpress/deprecated';\nimport { createRoot, StrictMode } from '@wordpress/element';\nimport { dispatch, select } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\nimport {\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Layout from './components/layout';\nimport { unlock } from './lock-unlock';\n\nconst {\n\tBackButton: __experimentalMainDashboardButton,\n\tregisterCoreBlockBindingsSources,\n} = unlock( editorPrivateApis );\n\n/**\n * Initializes and returns an instance of Editor.\n *\n * @param {string} id Unique identifier for editor instance.\n * @param {string} postType Post type of the post to edit.\n * @param {Object} postId ID of the post to edit.\n * @param {?Object} settings Editor settings object.\n * @param {Object} initialEdits Programmatic edits to apply initially, to be\n * considered as non-user-initiated (bypass for\n * unsaved changes prompt).\n */\nexport function initializeEditor(\n\tid,\n\tpostType,\n\tpostId,\n\tsettings,\n\tinitialEdits\n) {\n\tconst isMediumOrBigger = window.matchMedia( '(min-width: 782px)' ).matches;\n\tconst target = document.getElementById( id );\n\tconst root = createRoot( target );\n\n\tdispatch( preferencesStore ).setDefaults( 'core/edit-post', {\n\t\tfullscreenMode: true,\n\t\tthemeStyles: true,\n\t\twelcomeGuide: true,\n\t\twelcomeGuideTemplate: true,\n\t} );\n\n\tdispatch( preferencesStore ).setDefaults( 'core', {\n\t\tallowRightClickOverrides: true,\n\t\teditorMode: 'visual',\n\t\teditorTool: 'edit',\n\t\tfixedToolbar: false,\n\t\thiddenBlockTypes: [],\n\t\tinactivePanels: [],\n\t\topenPanels: [ 'post-status' ],\n\t\tshowBlockBreadcrumbs: true,\n\t\tshowIconLabels: false,\n\t\tshowListViewByDefault: false,\n\t\tenableChoosePatternModal: true,\n\t\tisPublishSidebarEnabled: true,\n\t\tshowCollaborationCursor: false,\n\t\tshowCollaborationNotifications: true,\n\t} );\n\n\tif ( window.__clientSideMediaProcessing ) {\n\t\tdispatch( preferencesStore ).setDefaults( 'core/media', {\n\t\t\trequireApproval: true,\n\t\t\toptimizeOnUpload: true,\n\t\t} );\n\t}\n\n\tdispatch( blocksStore ).reapplyBlockTypeFilters();\n\n\t// Check if the block list view should be open by default.\n\t// If `distractionFree` mode is enabled, the block list view should not be open.\n\t// This behavior is disabled for small viewports.\n\tif (\n\t\tisMediumOrBigger &&\n\t\tselect( preferencesStore ).get( 'core', 'showListViewByDefault' ) &&\n\t\t! select( preferencesStore ).get( 'core', 'distractionFree' )\n\t) {\n\t\tdispatch( editorStore ).setIsListViewOpened( true );\n\t}\n\n\tregisterCoreBlocks();\n\tregisterCoreBlockBindingsSources();\n\tregisterLegacyWidgetBlock( { inserter: false } );\n\tregisterWidgetGroupBlock( { inserter: false } );\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks,\n\t\t} );\n\t}\n\n\t// Show a console log warning if the browser is not in Standards rendering mode.\n\tconst documentMode =\n\t\tdocument.compatMode === 'CSS1Compat' ? 'Standards' : 'Quirks';\n\tif ( documentMode !== 'Standards' ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t\"Your browser is using Quirks Mode. \\nThis can cause rendering issues such as blocks overlaying meta boxes in the editor. Quirks Mode can be triggered by PHP errors or HTML code appearing before the opening <!DOCTYPE html>. Try checking the raw page source or your site's PHP error log and resolving errors there, removing any HTML before the doctype, or disabling plugins.\"\n\t\t);\n\t}\n\n\t// This is a temporary fix for a couple of issues specific to Webkit on iOS.\n\t// Without this hack the browser scrolls the mobile toolbar off-screen.\n\t// Once supported in Safari we can replace this in favor of preventScroll.\n\t// For details see issue #18632 and PR #18686\n\t// Specifically, we scroll `interface-interface-skeleton__body` to enable a fixed top toolbar.\n\t// But Mobile Safari forces the `html` element to scroll upwards, hiding the toolbar.\n\n\tconst isIphone = window.navigator.userAgent.indexOf( 'iPhone' ) !== -1;\n\tif ( isIphone ) {\n\t\twindow.addEventListener( 'scroll', ( event ) => {\n\t\t\tconst editorScrollContainer = document.getElementsByClassName(\n\t\t\t\t'interface-interface-skeleton__body'\n\t\t\t)[ 0 ];\n\t\t\tif ( event.target === document ) {\n\t\t\t\t// Scroll element into view by scrolling the editor container by the same amount\n\t\t\t\t// that Mobile Safari tried to scroll the html element upwards.\n\t\t\t\tif ( window.scrollY > 100 ) {\n\t\t\t\t\teditorScrollContainer.scrollTop =\n\t\t\t\t\t\teditorScrollContainer.scrollTop + window.scrollY;\n\t\t\t\t}\n\t\t\t\t// Undo unwanted scroll on html element, but only in the visual editor.\n\t\t\t\tif (\n\t\t\t\t\tdocument.getElementsByClassName( 'is-mode-visual' )[ 0 ]\n\t\t\t\t) {\n\t\t\t\t\twindow.scrollTo( 0, 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Prevent the default browser action for files dropped outside of dropzones.\n\twindow.addEventListener( 'dragover', ( e ) => e.preventDefault(), false );\n\twindow.addEventListener( 'drop', ( e ) => e.preventDefault(), false );\n\n\troot.render(\n\t\t<StrictMode>\n\t\t\t<Layout\n\t\t\t\tsettings={ settings }\n\t\t\t\tpostId={ postId }\n\t\t\t\tpostType={ postType }\n\t\t\t\tinitialEdits={ initialEdits }\n\t\t\t/>\n\t\t</StrictMode>\n\t);\n\n\treturn root;\n}\n\n/**\n * Used to reinitialize the editor after an error. Now it's a deprecated noop function.\n */\nexport function reinitializeEditor() {\n\tdeprecated( 'wp.editPost.reinitializeEditor', {\n\t\tsince: '6.2',\n\t\tversion: '6.3',\n\t} );\n}\n\nexport { default as __experimentalFullscreenModeClose } from './components/back-button/fullscreen-mode-close';\nexport { __experimentalMainDashboardButton };\nexport { store } from './store';\nexport * from './deprecated';\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAAqC;AACrC,2BAGO;AACP,wBAAuB;AACvB,qBAAuC;AACvC,
|
|
6
|
-
"names": ["editorPrivateApis", "preferencesStore", "blocksStore", "editorStore", "Layout", "deprecated"]
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport deprecated from '@wordpress/deprecated';\nimport { createRoot, StrictMode } from '@wordpress/element';\nimport { dispatch, resolveSelect, select } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\nimport {\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport Layout from './components/layout';\nimport { unlock } from './lock-unlock';\n\nconst {\n\tBackButton: __experimentalMainDashboardButton,\n\tregisterCoreBlockBindingsSources,\n} = unlock( editorPrivateApis );\n\nconst { enablePreloadMultiUse, clearPreloadedData } = unlock(\n\tapiFetch.privateApis\n);\n\n/**\n * Initializes and returns an instance of Editor.\n *\n * @param {string} id Unique identifier for editor instance.\n * @param {string} postType Post type of the post to edit.\n * @param {Object} postId ID of the post to edit.\n * @param {?Object} settings Editor settings object.\n * @param {Object} initialEdits Programmatic edits to apply initially, to be\n * considered as non-user-initiated (bypass for\n * unsaved changes prompt).\n */\nexport function initializeEditor(\n\tid,\n\tpostType,\n\tpostId,\n\tsettings,\n\tinitialEdits\n) {\n\tconst isMediumOrBigger = window.matchMedia( '(min-width: 782px)' ).matches;\n\tconst target = document.getElementById( id );\n\tconst root = createRoot( target );\n\n\tdispatch( preferencesStore ).setDefaults( 'core/edit-post', {\n\t\tfullscreenMode: true,\n\t\tthemeStyles: true,\n\t\twelcomeGuide: true,\n\t\twelcomeGuideTemplate: true,\n\t} );\n\n\tdispatch( preferencesStore ).setDefaults( 'core', {\n\t\tallowRightClickOverrides: true,\n\t\teditorMode: 'visual',\n\t\teditorTool: 'edit',\n\t\tfixedToolbar: false,\n\t\thiddenBlockTypes: [],\n\t\tinactivePanels: [],\n\t\topenPanels: [ 'post-status' ],\n\t\tshowBlockBreadcrumbs: true,\n\t\tshowIconLabels: false,\n\t\tshowListViewByDefault: false,\n\t\tenableChoosePatternModal: true,\n\t\tisPublishSidebarEnabled: true,\n\t\tshowCollaborationCursor: false,\n\t\tshowCollaborationNotifications: true,\n\t} );\n\n\tif ( window.__clientSideMediaProcessing ) {\n\t\tdispatch( preferencesStore ).setDefaults( 'core/media', {\n\t\t\trequireApproval: true,\n\t\t\toptimizeOnUpload: true,\n\t\t} );\n\t}\n\n\tdispatch( blocksStore ).reapplyBlockTypeFilters();\n\n\t// Check if the block list view should be open by default.\n\t// If `distractionFree` mode is enabled, the block list view should not be open.\n\t// This behavior is disabled for small viewports.\n\tif (\n\t\tisMediumOrBigger &&\n\t\tselect( preferencesStore ).get( 'core', 'showListViewByDefault' ) &&\n\t\t! select( preferencesStore ).get( 'core', 'distractionFree' )\n\t) {\n\t\tdispatch( editorStore ).setIsListViewOpened( true );\n\t}\n\n\tregisterCoreBlocks();\n\tregisterCoreBlockBindingsSources();\n\tregisterLegacyWidgetBlock( { inserter: false } );\n\tregisterWidgetGroupBlock( { inserter: false } );\n\tif ( globalThis.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks,\n\t\t} );\n\t}\n\n\t// Show a console log warning if the browser is not in Standards rendering mode.\n\tconst documentMode =\n\t\tdocument.compatMode === 'CSS1Compat' ? 'Standards' : 'Quirks';\n\tif ( documentMode !== 'Standards' ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t\"Your browser is using Quirks Mode. \\nThis can cause rendering issues such as blocks overlaying meta boxes in the editor. Quirks Mode can be triggered by PHP errors or HTML code appearing before the opening <!DOCTYPE html>. Try checking the raw page source or your site's PHP error log and resolving errors there, removing any HTML before the doctype, or disabling plugins.\"\n\t\t);\n\t}\n\n\t// This is a temporary fix for a couple of issues specific to Webkit on iOS.\n\t// Without this hack the browser scrolls the mobile toolbar off-screen.\n\t// Once supported in Safari we can replace this in favor of preventScroll.\n\t// For details see issue #18632 and PR #18686\n\t// Specifically, we scroll `interface-interface-skeleton__body` to enable a fixed top toolbar.\n\t// But Mobile Safari forces the `html` element to scroll upwards, hiding the toolbar.\n\n\tconst isIphone = window.navigator.userAgent.indexOf( 'iPhone' ) !== -1;\n\tif ( isIphone ) {\n\t\twindow.addEventListener( 'scroll', ( event ) => {\n\t\t\tconst editorScrollContainer = document.getElementsByClassName(\n\t\t\t\t'interface-interface-skeleton__body'\n\t\t\t)[ 0 ];\n\t\t\tif ( event.target === document ) {\n\t\t\t\t// Scroll element into view by scrolling the editor container by the same amount\n\t\t\t\t// that Mobile Safari tried to scroll the html element upwards.\n\t\t\t\tif ( window.scrollY > 100 ) {\n\t\t\t\t\teditorScrollContainer.scrollTop =\n\t\t\t\t\t\teditorScrollContainer.scrollTop + window.scrollY;\n\t\t\t\t}\n\t\t\t\t// Undo unwanted scroll on html element, but only in the visual editor.\n\t\t\t\tif (\n\t\t\t\t\tdocument.getElementsByClassName( 'is-mode-visual' )[ 0 ]\n\t\t\t\t) {\n\t\t\t\t\twindow.scrollTo( 0, 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Prevent the default browser action for files dropped outside of dropzones.\n\twindow.addEventListener( 'dragover', ( e ) => e.preventDefault(), false );\n\twindow.addEventListener( 'drop', ( e ) => e.preventDefault(), false );\n\n\t// Drive the resolvers whose data `createPreloadingMiddleware`\n\t// already has cached so every metadata entry they touch is\n\t// `finished` by the time React mounts \u2014 no `setTimeout(0)`\n\t// resolution dance on first render. Multi-use lets a single\n\t// preloaded URL back several selectors (e.g. /wp/v2/settings GET +\n\t// OPTIONS serves `getEntitiesConfig`, `canUser`, `getEntityRecord`).\n\tenablePreloadMultiUse();\n\tconst preloadedResolutions = preloadResolutions( postType, postId );\n\n\tpreloadedResolutions.finally( () => {\n\t\t// Anything not consumed by the kickoff falls through to a real\n\t\t// network request from here on. `clearPreloadedData` logs which\n\t\t// preload entries (if any) were never served.\n\t\tclearPreloadedData();\n\t\tif ( postType && postId ) {\n\t\t\tconst post = select( coreDataStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tif ( post ) {\n\t\t\t\tdispatch( editorStore ).setupEditor(\n\t\t\t\t\tpost,\n\t\t\t\t\tinitialEdits,\n\t\t\t\t\tsettings.template\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\troot.render(\n\t\t\t<StrictMode>\n\t\t\t\t<Layout\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tpostId={ postId }\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tinitialEdits={ initialEdits }\n\t\t\t\t/>\n\t\t\t</StrictMode>\n\t\t);\n\t} );\n\n\treturn root;\n}\n\n/**\n * Drive resolvers to completion against the preload cache before React\n * mounts. Two phases: known-up-front args (post id + type), then args\n * derived from phase-1 state (post slug \u2192 template, current global\n * styles id \u2192 record + canUser).\n *\n * @param {string} postType Current post type.\n * @param {number} postId Current post id.\n * @return {Promise<void>} Resolves when the kickoff resolvers settle.\n */\nasync function preloadResolutions( postType, postId ) {\n\tconst core = resolveSelect( coreDataStore );\n\tconst coreSelect = select( coreDataStore );\n\n\ttry {\n\t\tawait Promise.all( [\n\t\t\tcore.getCurrentUser(),\n\t\t\tcore.getEntitiesConfig( 'postType' ),\n\t\t\tcore.getEntitiesConfig( 'taxonomy' ),\n\t\t\tcore.getEntitiesConfig( 'root' ),\n\t\t\tcore.getEntityRecords( 'root', 'taxonomy' ),\n\t\t\tcore.getCurrentTheme(),\n\t\t\t// Forward-resolver alias of `getCurrentTheme` with its own\n\t\t\t// resolution metadata, so it needs a separate kick.\n\t\t\tcore.getThemeSupports(),\n\t\t\tcore.getBlockPatternCategories(),\n\t\t\tcore.__experimentalGetCurrentGlobalStylesId(),\n\t\t\tcore.__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t\tcore.__experimentalGetCurrentThemeGlobalStylesVariations(),\n\t\t\tcore.getEntityRecord( 'root', '__unstableBase' ),\n\t\t\tcore.getEntityRecord( 'root', 'site' ),\n\t\t\tcore.canUser( 'read', { kind: 'root', name: 'site' } ),\n\t\t\tcore.canUser( 'create', { kind: 'postType', name: 'attachment' } ),\n\t\t\tcore.canUser( 'create', { kind: 'postType', name: 'page' } ),\n\t\t\tcore.canUser( 'create', { kind: 'postType', name: 'wp_block' } ),\n\t\t\tcore.canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} ),\n\t\t\t// Per-post resolvers. `getPostType` and `getEditedEntityRecord`\n\t\t\t// are shorthand/forward-resolver aliases with their own\n\t\t\t// resolution metadata, so they need separate kicks.\n\t\t\t...( postType && postId\n\t\t\t\t? [\n\t\t\t\t\t\tcore.getPostType( postType ),\n\t\t\t\t\t\tcore.getEntityRecord( 'postType', postType, postId ),\n\t\t\t\t\t\tcore.getEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\tpostId\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcore.getAutosaves( postType, postId ),\n\t\t\t\t\t\tcore.getDefaultTemplateId( { slug: 'front-page' } ),\n\t\t\t\t\t\tcore.canUser( 'create', {\n\t\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\t\tname: postType,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [] ),\n\t\t] );\n\n\t\t// Phase 2: read derived data out of state.\n\t\tconst tasks = [];\n\t\tconst globalStylesId =\n\t\t\tcoreSelect.__experimentalGetCurrentGlobalStylesId();\n\t\tif ( globalStylesId ) {\n\t\t\ttasks.push(\n\t\t\t\tcore.getEntityRecord( 'root', 'globalStyles', globalStylesId ),\n\t\t\t\tcore.canUser( 'read', {\n\t\t\t\t\tkind: 'root',\n\t\t\t\t\tname: 'globalStyles',\n\t\t\t\t\tid: globalStylesId,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\tconst post = coreSelect.getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tif ( post ) {\n\t\t\t\t// Mirrors core-data's `getDefaultTemplate` slug formula.\n\t\t\t\tlet slug = 'page' === postType ? 'page' : 'single-' + postType;\n\t\t\t\tif ( post.slug ) {\n\t\t\t\t\tslug += '-' + post.slug;\n\t\t\t\t}\n\t\t\t\ttasks.push( core.getDefaultTemplateId( { slug } ) );\n\n\t\t\t\tif ( post.author ) {\n\t\t\t\t\ttasks.push(\n\t\t\t\t\t\tcore.getUser( post.author, {\n\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t\t_fields: 'id,name',\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\tif ( tasks.length ) {\n\t\t\tawait Promise.all( tasks );\n\t\t}\n\t} catch {\n\t\t// Resolver failures here would also surface on demand; don't block render.\n\t}\n}\n\n/**\n * Used to reinitialize the editor after an error. Now it's a deprecated noop function.\n */\nexport function reinitializeEditor() {\n\tdeprecated( 'wp.editPost.reinitializeEditor', {\n\t\tsince: '6.2',\n\t\tversion: '6.3',\n\t} );\n}\n\nexport { default as __experimentalFullscreenModeClose } from './components/back-button/fullscreen-mode-close';\nexport { __experimentalMainDashboardButton };\nexport { store } from './store';\nexport * from './deprecated';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["editorPrivateApis", "apiFetch", "preferencesStore", "blocksStore", "editorStore", "coreDataStore", "Layout", "deprecated"]
|
|
7
7
|
}
|
|
@@ -3,12 +3,18 @@ import clsx from "clsx";
|
|
|
3
3
|
import { useSelect } from "@wordpress/data";
|
|
4
4
|
import {
|
|
5
5
|
Button,
|
|
6
|
-
Icon,
|
|
6
|
+
Icon as WCIcon,
|
|
7
7
|
__unstableMotion as motion
|
|
8
8
|
} from "@wordpress/components";
|
|
9
|
-
import { __ } from "@wordpress/i18n";
|
|
9
|
+
import { __, isRTL } from "@wordpress/i18n";
|
|
10
10
|
import { addQueryArgs } from "@wordpress/url";
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
wordpress,
|
|
13
|
+
arrowUpLeft,
|
|
14
|
+
arrowUpRight,
|
|
15
|
+
chevronLeft,
|
|
16
|
+
chevronRight
|
|
17
|
+
} from "@wordpress/icons";
|
|
12
18
|
import { store as editorStore } from "@wordpress/editor";
|
|
13
19
|
import { store as coreStore } from "@wordpress/core-data";
|
|
14
20
|
import { useReducedMotion } from "@wordpress/compose";
|
|
@@ -75,7 +81,7 @@ function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
|
|
|
75
81
|
);
|
|
76
82
|
} else {
|
|
77
83
|
siteIconContent = /* @__PURE__ */ jsx(
|
|
78
|
-
|
|
84
|
+
WCIcon,
|
|
79
85
|
{
|
|
80
86
|
className: "edit-post-fullscreen-mode-close-site-icon__icon",
|
|
81
87
|
icon: wordpress,
|
|
@@ -83,7 +89,7 @@ function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
|
|
|
83
89
|
}
|
|
84
90
|
);
|
|
85
91
|
}
|
|
86
|
-
const buttonIcon = icon ? /* @__PURE__ */ jsx(
|
|
92
|
+
const buttonIcon = icon ? /* @__PURE__ */ jsx(WCIcon, { size: "36px", icon }) : /* @__PURE__ */ jsx("div", { className: "edit-post-fullscreen-mode-close-site-icon", children: siteIconContent });
|
|
87
93
|
const classes = clsx("edit-post-fullscreen-mode-close", {
|
|
88
94
|
"has-icon": siteIconUrl
|
|
89
95
|
});
|
|
@@ -91,6 +97,7 @@ function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
|
|
|
91
97
|
post_type: postType.slug
|
|
92
98
|
});
|
|
93
99
|
const buttonLabel = postType?.labels?.view_items ?? __("Back");
|
|
100
|
+
const hasAdminBarInEditor = window.__experimentalAdminBarInEditor;
|
|
94
101
|
return /* @__PURE__ */ jsxs(
|
|
95
102
|
motion.div,
|
|
96
103
|
{
|
|
@@ -110,10 +117,16 @@ function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
|
|
|
110
117
|
label: buttonLabel,
|
|
111
118
|
showTooltip,
|
|
112
119
|
tooltipPosition: "bottom",
|
|
113
|
-
children:
|
|
120
|
+
children: !hasAdminBarInEditor && /* @__PURE__ */ jsx(
|
|
121
|
+
motion.div,
|
|
122
|
+
{
|
|
123
|
+
variants: !disableMotion && siteIconVariants,
|
|
124
|
+
children: /* @__PURE__ */ jsx("div", { className: "edit-post-fullscreen-mode-close__view-mode-toggle-icon", children: buttonIcon })
|
|
125
|
+
}
|
|
126
|
+
)
|
|
114
127
|
}
|
|
115
128
|
),
|
|
116
|
-
/* @__PURE__ */ jsx(
|
|
129
|
+
hasAdminBarInEditor ? /* @__PURE__ */ jsx("div", { className: "edit-post-fullscreen-mode-close__back-icon", children: /* @__PURE__ */ jsx(WCIcon, { icon: isRTL() ? chevronRight : chevronLeft }) }) : /* @__PURE__ */ jsx(
|
|
117
130
|
motion.div,
|
|
118
131
|
{
|
|
119
132
|
className: clsx(
|
|
@@ -123,7 +136,7 @@ function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
|
|
|
123
136
|
}
|
|
124
137
|
),
|
|
125
138
|
variants: !disableMotion && toggleHomeIconVariants,
|
|
126
|
-
children: /* @__PURE__ */ jsx(
|
|
139
|
+
children: /* @__PURE__ */ jsx(WCIcon, { icon: isRTL() ? arrowUpRight : arrowUpLeft })
|
|
127
140
|
}
|
|
128
141
|
)
|
|
129
142
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/back-button/fullscreen-mode-close.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tIcon,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport {
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tIcon as WCIcon,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\twordpress,\n\tarrowUpLeft,\n\tarrowUpRight,\n\tchevronLeft,\n\tchevronRight,\n} from '@wordpress/icons';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useReducedMotion } from '@wordpress/compose';\n\nconst siteIconVariants = {\n\tedit: {\n\t\tclipPath: 'inset(0% round 0px)',\n\t},\n\thover: {\n\t\tclipPath: 'inset( 22% round 2px )',\n\t},\n\ttap: {\n\t\tclipPath: 'inset(0% round 0px)',\n\t},\n};\n\nconst toggleHomeIconVariants = {\n\tedit: {\n\t\topacity: 0,\n\t\tscale: 0.2,\n\t},\n\thover: {\n\t\topacity: 1,\n\t\tscale: 1,\n\t\tclipPath: 'inset( 22% round 2px )',\n\t},\n};\n\nfunction FullscreenModeClose( { showTooltip, icon, href, initialPost } ) {\n\tconst { isRequestingSiteIcon, postType, siteIconUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPostType } = select( editorStore );\n\t\t\tconst { getEntityRecord, getPostType, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst siteData =\n\t\t\t\tgetEntityRecord( 'root', '__unstableBase', undefined ) || {};\n\t\t\tconst _postType = initialPost?.type || getCurrentPostType();\n\t\t\treturn {\n\t\t\t\tisRequestingSiteIcon: isResolving( 'getEntityRecord', [\n\t\t\t\t\t'root',\n\t\t\t\t\t'__unstableBase',\n\t\t\t\t\tundefined,\n\t\t\t\t] ),\n\t\t\t\tpostType: getPostType( _postType ),\n\t\t\t\tsiteIconUrl: siteData.site_icon_url,\n\t\t\t};\n\t\t},\n\t\t[ initialPost?.type ]\n\t);\n\n\tconst disableMotion = useReducedMotion();\n\tconst transition = {\n\t\tduration: disableMotion ? 0 : 0.2,\n\t};\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\t// Create SiteIcon equivalent structure exactly like edit-site\n\tlet siteIconContent;\n\tif ( isRequestingSiteIcon && ! siteIconUrl ) {\n\t\tsiteIconContent = (\n\t\t\t<div className=\"edit-post-fullscreen-mode-close-site-icon__image\" />\n\t\t);\n\t} else if ( siteIconUrl ) {\n\t\tsiteIconContent = (\n\t\t\t<img\n\t\t\t\tclassName=\"edit-post-fullscreen-mode-close-site-icon__image\"\n\t\t\t\talt={ __( 'Site Icon' ) }\n\t\t\t\tsrc={ siteIconUrl }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\tsiteIconContent = (\n\t\t\t<WCIcon\n\t\t\t\tclassName=\"edit-post-fullscreen-mode-close-site-icon__icon\"\n\t\t\t\ticon={ wordpress }\n\t\t\t\tsize={ 48 }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Override default icon if custom icon is provided via props.\n\tconst buttonIcon = icon ? (\n\t\t<WCIcon size=\"36px\" icon={ icon } />\n\t) : (\n\t\t<div className=\"edit-post-fullscreen-mode-close-site-icon\">\n\t\t\t{ siteIconContent }\n\t\t</div>\n\t);\n\n\tconst classes = clsx( 'edit-post-fullscreen-mode-close', {\n\t\t'has-icon': siteIconUrl,\n\t} );\n\n\tconst buttonHref =\n\t\thref ??\n\t\taddQueryArgs( 'edit.php', {\n\t\t\tpost_type: postType.slug,\n\t\t} );\n\n\tconst buttonLabel = postType?.labels?.view_items ?? __( 'Back' );\n\n\tconst hasAdminBarInEditor = window.__experimentalAdminBarInEditor;\n\n\treturn (\n\t\t<motion.div\n\t\t\tclassName=\"edit-post-fullscreen-mode-close__view-mode-toggle\"\n\t\t\tanimate=\"edit\"\n\t\t\tinitial=\"edit\"\n\t\t\twhileHover=\"hover\"\n\t\t\twhileTap=\"tap\"\n\t\t\ttransition={ transition }\n\t\t>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName={ classes }\n\t\t\t\thref={ buttonHref }\n\t\t\t\tlabel={ buttonLabel }\n\t\t\t\tshowTooltip={ showTooltip }\n\t\t\t\ttooltipPosition=\"bottom\"\n\t\t\t>\n\t\t\t\t{ ! hasAdminBarInEditor && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ ! disableMotion && siteIconVariants }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"edit-post-fullscreen-mode-close__view-mode-toggle-icon\">\n\t\t\t\t\t\t\t{ buttonIcon }\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</Button>\n\t\t\t{ hasAdminBarInEditor ? (\n\t\t\t\t<div className=\"edit-post-fullscreen-mode-close__back-icon\">\n\t\t\t\t\t<WCIcon icon={ isRTL() ? chevronRight : chevronLeft } />\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'edit-post-fullscreen-mode-close__back-icon',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-site-icon': siteIconUrl,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvariants={ ! disableMotion && toggleHomeIconVariants }\n\t\t\t\t>\n\t\t\t\t\t<WCIcon icon={ isRTL() ? arrowUpRight : arrowUpLeft } />\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t</motion.div>\n\t);\n}\n\nexport default FullscreenModeClose;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -32,9 +32,8 @@ import { addQueryArgs } from "@wordpress/url";
|
|
|
32
32
|
import { decodeEntities } from "@wordpress/html-entities";
|
|
33
33
|
import { store as coreStore } from "@wordpress/core-data";
|
|
34
34
|
import {
|
|
35
|
-
Icon,
|
|
35
|
+
Icon as WCIcon,
|
|
36
36
|
SlotFillProvider,
|
|
37
|
-
Tooltip,
|
|
38
37
|
__unstableUseNavigateRegions as useNavigateRegions,
|
|
39
38
|
privateApis as componentsPrivateApis
|
|
40
39
|
} from "@wordpress/components";
|
|
@@ -44,7 +43,7 @@ import {
|
|
|
44
43
|
useRefEffect,
|
|
45
44
|
useViewportMatch
|
|
46
45
|
} from "@wordpress/compose";
|
|
47
|
-
import { VisuallyHidden } from "@wordpress/ui";
|
|
46
|
+
import { Tooltip, VisuallyHidden } from "@wordpress/ui";
|
|
48
47
|
import BackButton from "../back-button/index.mjs";
|
|
49
48
|
import EditorInitialization from "../editor-initialization/index.mjs";
|
|
50
49
|
import EditPostKeyboardShortcuts from "../keyboard-shortcuts/index.mjs";
|
|
@@ -124,8 +123,8 @@ function MetaBoxesMain({ isLegacy }) {
|
|
|
124
123
|
if (!container) {
|
|
125
124
|
return;
|
|
126
125
|
}
|
|
127
|
-
const
|
|
128
|
-
":scope > .
|
|
126
|
+
const noticeContainer = container.querySelector(
|
|
127
|
+
":scope > .notices-inline-notices-wrapper"
|
|
129
128
|
);
|
|
130
129
|
const resizeHandle = container.querySelector(
|
|
131
130
|
".edit-post-meta-boxes-main__presenter"
|
|
@@ -133,16 +132,16 @@ function MetaBoxesMain({ isLegacy }) {
|
|
|
133
132
|
const deriveConstraints = () => {
|
|
134
133
|
const fullHeight = container.offsetHeight;
|
|
135
134
|
let nextMax = fullHeight;
|
|
136
|
-
|
|
137
|
-
nextMax -=
|
|
135
|
+
if (noticeContainer) {
|
|
136
|
+
nextMax -= noticeContainer.offsetHeight;
|
|
138
137
|
}
|
|
139
|
-
const nextMin = resizeHandle
|
|
138
|
+
const nextMin = resizeHandle?.offsetHeight ?? 0;
|
|
140
139
|
setHeightConstraints({ min: nextMin, max: nextMax });
|
|
141
140
|
};
|
|
142
141
|
const observer = new window.ResizeObserver(deriveConstraints);
|
|
143
142
|
observer.observe(container);
|
|
144
|
-
|
|
145
|
-
observer.observe(
|
|
143
|
+
if (noticeContainer) {
|
|
144
|
+
observer.observe(noticeContainer);
|
|
146
145
|
}
|
|
147
146
|
return () => observer.disconnect();
|
|
148
147
|
}, []);
|
|
@@ -246,22 +245,30 @@ function MetaBoxesMain({ isLegacy }) {
|
|
|
246
245
|
...!isShort && bindDragGesture(persistIsOpen),
|
|
247
246
|
children: [
|
|
248
247
|
paneLabel,
|
|
249
|
-
/* @__PURE__ */ jsx(
|
|
248
|
+
/* @__PURE__ */ jsx(WCIcon, { icon: isOpen ? chevronUp : chevronDown })
|
|
250
249
|
]
|
|
251
250
|
}
|
|
252
251
|
);
|
|
253
252
|
const separator = !isShort && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
253
|
+
/* @__PURE__ */ jsxs(Tooltip.Root, { children: [
|
|
254
|
+
/* @__PURE__ */ jsx(
|
|
255
|
+
Tooltip.Trigger,
|
|
256
|
+
{
|
|
257
|
+
render: /* @__PURE__ */ jsx(
|
|
258
|
+
"button",
|
|
259
|
+
{
|
|
260
|
+
ref: separatorRef,
|
|
261
|
+
role: "separator",
|
|
262
|
+
"aria-valuenow": usedAriaValueNow,
|
|
263
|
+
"aria-label": __("Drag to resize"),
|
|
264
|
+
"aria-describedby": separatorHelpId,
|
|
265
|
+
...bindDragGesture()
|
|
266
|
+
}
|
|
267
|
+
)
|
|
268
|
+
}
|
|
269
|
+
),
|
|
270
|
+
/* @__PURE__ */ jsx(Tooltip.Popup, { children: __("Drag to resize") })
|
|
271
|
+
] }),
|
|
265
272
|
/* @__PURE__ */ jsx(VisuallyHidden, { id: separatorHelpId, children: __(
|
|
266
273
|
"Use up and down arrow keys to resize the meta box pane."
|
|
267
274
|
) })
|
|
@@ -451,7 +458,7 @@ function Layout({
|
|
|
451
458
|
};
|
|
452
459
|
}, [initialPostType, initialPostId]);
|
|
453
460
|
const backButton = useViewportMatch("medium") && isFullscreenActive ? /* @__PURE__ */ jsx(BackButton, { initialPost }) : null;
|
|
454
|
-
return /* @__PURE__ */ jsx(SlotFillProvider, { children: /* @__PURE__ */ jsxs(ErrorBoundary, { canCopyContent: true, children: [
|
|
461
|
+
return /* @__PURE__ */ jsx(SlotFillProvider, { children: /* @__PURE__ */ jsx(Tooltip.Provider, { children: /* @__PURE__ */ jsxs(ErrorBoundary, { canCopyContent: true, children: [
|
|
455
462
|
/* @__PURE__ */ jsx(WelcomeGuide, { postType: currentPostType }),
|
|
456
463
|
/* @__PURE__ */ jsx("div", { ...navigateRegionsProps, children: /* @__PURE__ */ jsxs(
|
|
457
464
|
Editor,
|
|
@@ -467,7 +474,12 @@ function Layout({
|
|
|
467
474
|
autoFocus: !isWelcomeGuideVisible,
|
|
468
475
|
onActionPerformed,
|
|
469
476
|
extraSidebarPanels: showMetaBoxes && /* @__PURE__ */ jsx(MetaBoxes, { location: "side" }),
|
|
470
|
-
extraContent: !isDistractionFree && showMetaBoxes && /* @__PURE__ */ jsx(
|
|
477
|
+
extraContent: !isDistractionFree && showMetaBoxes && /* @__PURE__ */ jsx(
|
|
478
|
+
MetaBoxesMain,
|
|
479
|
+
{
|
|
480
|
+
isLegacy: isDevicePreview
|
|
481
|
+
}
|
|
482
|
+
),
|
|
471
483
|
children: [
|
|
472
484
|
/* @__PURE__ */ jsx(PostLockedModal, {}),
|
|
473
485
|
/* @__PURE__ */ jsx(EditorInitialization, {}),
|
|
@@ -487,7 +499,7 @@ function Layout({
|
|
|
487
499
|
]
|
|
488
500
|
}
|
|
489
501
|
) })
|
|
490
|
-
] }) });
|
|
502
|
+
] }) }) });
|
|
491
503
|
}
|
|
492
504
|
var layout_default = Layout;
|
|
493
505
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/layout/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion } from '@wordpress/admin-ui';\nimport {\n\tAutosaveMonitor,\n\tLocalAutosaveMonitor,\n\tUnsavedChangesWarning,\n\tEditorKeyboardShortcutsRegister,\n\tErrorBoundary,\n\tPostLockedModal,\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getLayoutStyles } from '@wordpress/global-styles-engine';\nimport { PluginArea } from '@wordpress/plugins';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseId,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { chevronDown, chevronUp } from '@wordpress/icons';\nimport { SnackbarNotices, store as noticesStore } from '@wordpress/notices';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as commandsPrivateApis } from '@wordpress/commands';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\nimport { addQueryArgs } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tIcon,\n\tSlotFillProvider,\n\tTooltip,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tuseMediaQuery,\n\tuseMergeRefs,\n\tuseRefEffect,\n\tuseViewportMatch,\n} from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport BackButton from '../back-button';\nimport EditorInitialization from '../editor-initialization';\nimport EditPostKeyboardShortcuts from '../keyboard-shortcuts';\nimport InitPatternModal from '../init-pattern-modal';\nimport BrowserURL from '../browser-url';\nimport MetaBoxes from '../meta-boxes';\nimport PostEditorMoreMenu from '../more-menu';\nimport WelcomeGuide from '../welcome-guide';\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport useEditPostCommands from '../../commands/use-commands';\nimport { useShouldIframe } from './use-should-iframe';\nimport useNavigateToEntityRecord from '../../hooks/use-navigate-to-entity-record';\nimport { useMetaBoxInitialization } from '../meta-boxes/use-meta-box-initialization';\n\nconst { useCommandContext } = unlock( commandsPrivateApis );\n/** @type {{} & {useDrag: import('@use-gesture/react').useDrag}} */\nconst { useDrag } = unlock( componentsPrivateApis );\nconst { Editor, FullscreenMode } = unlock( editorPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\nconst DESIGN_POST_TYPES = [\n\t'wp_template',\n\t'wp_template_part',\n\t'wp_block',\n\t'wp_navigation',\n];\n\nfunction useEditorStyles( settings ) {\n\tconst { hasThemeStyleSupport } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\thasThemeStyleSupport:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'themeStyles' ),\n\t\t};\n\t}, [] );\n\n\t// Compute the default styles.\n\treturn useMemo( () => {\n\t\tconst presetStyles =\n\t\t\tsettings.styles?.filter(\n\t\t\t\t( style ) =>\n\t\t\t\t\tstyle.__unstableType && style.__unstableType !== 'theme'\n\t\t\t) ?? [];\n\n\t\tconst defaultEditorStyles = [\n\t\t\t...( settings?.defaultEditorStyles ?? [] ),\n\t\t\t...presetStyles,\n\t\t];\n\n\t\t// Has theme styles if the theme supports them and if some styles were not preset styles (in which case they're theme styles).\n\t\tconst hasThemeStyles =\n\t\t\thasThemeStyleSupport &&\n\t\t\tpresetStyles.length !== ( settings.styles?.length ?? 0 );\n\n\t\t// If theme styles are not present or displayed, ensure that\n\t\t// base layout styles are still present in the editor.\n\t\tif ( ! settings.disableLayoutStyles && ! hasThemeStyles ) {\n\t\t\tdefaultEditorStyles.push( {\n\t\t\t\tcss: getLayoutStyles( {\n\t\t\t\t\tstyle: {},\n\t\t\t\t\tselector: 'body',\n\t\t\t\t\thasBlockGapSupport: false,\n\t\t\t\t\thasFallbackGapSupport: true,\n\t\t\t\t\tfallbackGapValue: '0.5em',\n\t\t\t\t} ),\n\t\t\t} );\n\t\t}\n\n\t\treturn hasThemeStyles ? settings.styles ?? [] : defaultEditorStyles;\n\t}, [\n\t\tsettings.defaultEditorStyles,\n\t\tsettings.disableLayoutStyles,\n\t\tsettings.styles,\n\t\thasThemeStyleSupport,\n\t] );\n}\n\n/**\n * @param {Object} props\n * @param {boolean} props.isLegacy True for device previews where split view is disabled.\n */\nfunction MetaBoxesMain( { isLegacy } ) {\n\tconst [ isOpen, openHeight, hasAnyVisible ] = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { isMetaBoxLocationVisible } = select( editPostStore );\n\t\treturn [\n\t\t\t!! get( 'core/edit-post', 'metaBoxesMainIsOpen' ),\n\t\t\tget( 'core/edit-post', 'metaBoxesMainOpenHeight' ),\n\t\t\tisMetaBoxLocationVisible( 'normal' ) ||\n\t\t\t\tisMetaBoxLocationVisible( 'advanced' ) ||\n\t\t\t\tisMetaBoxLocationVisible( 'side' ),\n\t\t];\n\t}, [] );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\tconst isShort = useMediaQuery( '(max-height: 549px)' );\n\n\tconst [ { min = 0, max }, setHeightConstraints ] = useState( () => ( {} ) );\n\t// Keeps the resizable area\u2019s size constraints updated taking into account\n\t// editor notices. The constraints are also used to derive the value for the\n\t// aria-valuenow attribute on the separator.\n\tconst effectSizeConstraints = useRefEffect( ( node ) => {\n\t\tconst container = node.closest(\n\t\t\t'.interface-interface-skeleton__content'\n\t\t);\n\t\tif ( ! container ) {\n\t\t\treturn;\n\t\t}\n\t\tconst noticeLists = container.querySelectorAll(\n\t\t\t':scope > .components-notice-list'\n\t\t);\n\t\tconst resizeHandle = container.querySelector(\n\t\t\t'.edit-post-meta-boxes-main__presenter'\n\t\t);\n\t\tconst deriveConstraints = () => {\n\t\t\tconst fullHeight = container.offsetHeight;\n\t\t\tlet nextMax = fullHeight;\n\t\t\tfor ( const element of noticeLists ) {\n\t\t\t\tnextMax -= element.offsetHeight;\n\t\t\t}\n\t\t\tconst nextMin = resizeHandle.offsetHeight;\n\t\t\tsetHeightConstraints( { min: nextMin, max: nextMax } );\n\t\t};\n\t\tconst observer = new window.ResizeObserver( deriveConstraints );\n\t\tobserver.observe( container );\n\t\tfor ( const element of noticeLists ) {\n\t\t\tobserver.observe( element );\n\t\t}\n\t\treturn () => observer.disconnect();\n\t}, [] );\n\tconst metaBoxesMainRef = useRef();\n\tconst setMainRefs = useMergeRefs( [\n\t\tmetaBoxesMainRef,\n\t\teffectSizeConstraints,\n\t] );\n\n\tconst separatorRef = useRef();\n\tconst separatorHelpId = useId();\n\n\tconst heightRef = useRef();\n\n\tconst getAriaValueNow = ( height ) =>\n\t\tMath.round( ( ( height - min ) / ( max - min ) ) * 100 );\n\tconst persistIsOpen = ( to = ! isOpen ) =>\n\t\tsetPreference( 'core/edit-post', 'metaBoxesMainIsOpen', to );\n\n\t/**\n\t * @param {number|'auto'} [candidateHeight] Height in pixels or 'auto'.\n\t * @param {boolean} isPersistent Whether to persist the height in preferences.\n\t */\n\tconst applyHeight = ( candidateHeight = 'auto', isPersistent ) => {\n\t\tlet styleHeight;\n\t\tif ( candidateHeight === 'auto' ) {\n\t\t\tisPersistent = false; // Just in case \u2014 \u201Cauto\u201D should never persist.\n\t\t\tstyleHeight = candidateHeight;\n\t\t} else {\n\t\t\tcandidateHeight = Math.min( max, Math.max( min, candidateHeight ) );\n\t\t\theightRef.current = candidateHeight;\n\t\t\tstyleHeight = `${ candidateHeight }px`;\n\t\t}\n\t\tif ( isPersistent ) {\n\t\t\tsetPreference(\n\t\t\t\t'core/edit-post',\n\t\t\t\t'metaBoxesMainOpenHeight',\n\t\t\t\tcandidateHeight\n\t\t\t);\n\t\t}\n\t\t// Applies imperative DOM updates only when not persisting the value\n\t\t// because otherwise it's done by the subsequent render.\n\t\telse {\n\t\t\tmetaBoxesMainRef.current.style.height = styleHeight;\n\t\t\tif ( ! isShort ) {\n\t\t\t\tseparatorRef.current.ariaValueNow =\n\t\t\t\t\tgetAriaValueNow( candidateHeight );\n\t\t\t}\n\t\t}\n\t};\n\n\t// useDrag includes keyboard support with arrow keys emulating a drag.\n\t// TODO: Support more/all keyboard interactions from the window splitter pattern:\n\t// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\tconst bindDragGesture = useDrag(\n\t\t( { movement, first, last, memo, tap, args } ) => {\n\t\t\tconst pane = metaBoxesMainRef.current;\n\t\t\tconst [ , yMovement ] = movement;\n\t\t\tif ( first ) {\n\t\t\t\tpane.classList.add( 'is-resizing' );\n\t\t\t\tlet fromHeight = heightRef.current ?? pane.offsetHeight;\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t// Starts from max in case shortening the window has imposed it.\n\t\t\t\t\tif ( fromHeight > max ) {\n\t\t\t\t\t\tfromHeight = max;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfromHeight = min;\n\t\t\t\t}\n\t\t\t\tapplyHeight( fromHeight - yMovement );\n\t\t\t\treturn { fromHeight };\n\t\t\t}\n\n\t\t\tif ( ! first && ! last && ! tap ) {\n\t\t\t\tapplyHeight( memo.fromHeight - yMovement );\n\t\t\t\treturn memo;\n\t\t\t}\n\t\t\t// Here, `last === true` \u2013 it\u2019s the final event of the gesture.\n\n\t\t\tpane.classList.remove( 'is-resizing' );\n\t\t\tif ( tap ) {\n\t\t\t\tconst [ onTap ] = args;\n\t\t\t\tonTap?.();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nextIsOpen = heightRef.current > min;\n\t\t\tpersistIsOpen( nextIsOpen );\n\t\t\t// Persists height only if still open. This is so that when closed by a drag the\n\t\t\t// prior height can be restored by the toggle button instead of having to drag\n\t\t\t// the pane open again.\n\t\t\tapplyHeight( heightRef.current, nextIsOpen );\n\t\t},\n\t\t{ keyboardDisplacement: 20, filterTaps: true }\n\t);\n\n\tif ( ! hasAnyVisible ) {\n\t\treturn;\n\t}\n\n\tconst contents = (\n\t\t<div\n\t\t\t// The class name 'edit-post-layout__metaboxes' is retained because some plugins use it.\n\t\t\tclassName=\"edit-post-layout__metaboxes edit-post-meta-boxes-main__liner\"\n\t\t\thidden={ ! isLegacy && ! isOpen }\n\t\t>\n\t\t\t<MetaBoxes location=\"normal\" />\n\t\t\t<MetaBoxes location=\"advanced\" />\n\t\t</div>\n\t);\n\n\tif ( isLegacy ) {\n\t\treturn contents;\n\t}\n\n\tconst isAutoHeight = openHeight === undefined;\n\tconst usedOpenHeight = isShort ? 'auto' : openHeight;\n\tconst usedHeight = isOpen ? usedOpenHeight : min;\n\n\tconst usedAriaValueNow =\n\t\tmax === undefined || isAutoHeight ? 50 : getAriaValueNow( usedHeight );\n\n\tconst paneLabel = __( 'Meta Boxes' );\n\n\t// The toggle button. It also resizes when the viewport is tall to provide\n\t// a larger hit area than the small separator button.\n\tconst toggle = (\n\t\t<button\n\t\t\taria-expanded={ isOpen }\n\t\t\t// Toggles for all clicks when short and only keyboard \u201Cclicks\u201D when\n\t\t\t// resizable because pointer input is handled by the drag gesture.\n\t\t\tonClick={ ( { detail } ) => {\n\t\t\t\tif ( isShort || ! detail ) {\n\t\t\t\t\tpersistIsOpen();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t// Passes a toggle callback that the drag gesture handler calls when\n\t\t\t// it interprets the input as a click/tap.\n\t\t\t{ ...( ! isShort && bindDragGesture( persistIsOpen ) ) }\n\t\t>\n\t\t\t{ paneLabel }\n\t\t\t<Icon icon={ isOpen ? chevronUp : chevronDown } />\n\t\t</button>\n\t);\n\n\t// The separator button that provides a11y for resizing.\n\tconst separator = ! isShort && (\n\t\t<>\n\t\t\t<Tooltip text={ __( 'Drag to resize' ) }>\n\t\t\t\t<button\n\t\t\t\t\tref={ separatorRef }\n\t\t\t\t\trole=\"separator\" // eslint-disable-line jsx-a11y/no-interactive-element-to-noninteractive-role\n\t\t\t\t\taria-valuenow={ usedAriaValueNow }\n\t\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\t\taria-describedby={ separatorHelpId }\n\t\t\t\t\t{ ...bindDragGesture() }\n\t\t\t\t/>\n\t\t\t</Tooltip>\n\t\t\t<VisuallyHidden id={ separatorHelpId }>\n\t\t\t\t{ __(\n\t\t\t\t\t'Use up and down arrow keys to resize the meta box pane.'\n\t\t\t\t) }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n\n\treturn (\n\t\t<NavigableRegion\n\t\t\tariaLabel={ paneLabel }\n\t\t\tref={ setMainRefs }\n\t\t\tclassName={ clsx(\n\t\t\t\t'edit-post-meta-boxes-main',\n\t\t\t\t! isShort && 'is-resizable'\n\t\t\t) }\n\t\t\tstyle={ { height: usedHeight } }\n\t\t>\n\t\t\t<div className=\"edit-post-meta-boxes-main__presenter\">\n\t\t\t\t{ toggle }\n\t\t\t\t{ separator }\n\t\t\t</div>\n\t\t\t{ contents }\n\t\t</NavigableRegion>\n\t);\n}\n\nfunction Layout( {\n\tpostId: initialPostId,\n\tpostType: initialPostType,\n\tsettings,\n\tinitialEdits,\n} ) {\n\tuseEditPostCommands();\n\tconst shouldIframe = useShouldIframe();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tcurrentPost: { postId: currentPostId, postType: currentPostType },\n\t\tonNavigateToEntityRecord,\n\t\tonNavigateToPreviousEntityRecord,\n\t} = useNavigateToEntityRecord(\n\t\tinitialPostId,\n\t\tinitialPostType,\n\t\t'post-only'\n\t);\n\tconst isEditingTemplate = currentPostType === 'wp_template';\n\tconst {\n\t\tmode,\n\t\tisFullscreenActive,\n\t\thasResolvedMode,\n\t\thasActiveMetaboxes,\n\t\thasBlockSelected,\n\t\tshowIconLabels,\n\t\tisDistractionFree,\n\t\tshowMetaBoxes,\n\t\tisWelcomeGuideVisible,\n\t\ttemplateId,\n\t\tisDevicePreview,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { isFeatureActive, hasMetaBoxes } = select( editPostStore );\n\t\t\tconst { canUser, getPostType, getTemplateId } = unlock(\n\t\t\t\tselect( coreStore )\n\t\t\t);\n\n\t\t\tconst supportsTemplateMode = settings.supportsTemplateMode;\n\t\t\tconst isViewable =\n\t\t\t\tgetPostType( currentPostType )?.viewable ?? false;\n\t\t\tconst canViewTemplate = canUser( 'read', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\tconst { getBlockSelectionStart, isZoomOut } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst { getEditorMode, getDefaultRenderingMode, getDeviceType } =\n\t\t\t\tunlock( select( editorStore ) );\n\t\t\tconst isNotDesignPostType =\n\t\t\t\t! DESIGN_POST_TYPES.includes( currentPostType );\n\t\t\tconst isDirectlyEditingPattern =\n\t\t\t\tcurrentPostType === 'wp_block' &&\n\t\t\t\t! onNavigateToPreviousEntityRecord;\n\t\t\tconst _templateId = getTemplateId( currentPostType, currentPostId );\n\t\t\tconst defaultMode = getDefaultRenderingMode( currentPostType );\n\n\t\t\treturn {\n\t\t\t\tmode: getEditorMode(),\n\t\t\t\tisFullscreenActive: isFeatureActive( 'fullscreenMode' ),\n\t\t\t\thasActiveMetaboxes: hasMetaBoxes(),\n\t\t\t\thasResolvedMode:\n\t\t\t\t\tdefaultMode === 'template-locked'\n\t\t\t\t\t\t? !! _templateId\n\t\t\t\t\t\t: defaultMode !== undefined,\n\t\t\t\thasBlockSelected: !! getBlockSelectionStart(),\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tshowMetaBoxes:\n\t\t\t\t\t( isNotDesignPostType && ! isZoomOut() ) ||\n\t\t\t\t\tisDirectlyEditingPattern,\n\t\t\t\tisWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),\n\t\t\t\ttemplateId:\n\t\t\t\t\tsupportsTemplateMode &&\n\t\t\t\t\tisViewable &&\n\t\t\t\t\tcanViewTemplate &&\n\t\t\t\t\t! isEditingTemplate\n\t\t\t\t\t\t? _templateId\n\t\t\t\t\t\t: null,\n\t\t\t\tisDevicePreview: getDeviceType() !== 'Desktop',\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tcurrentPostType,\n\t\t\tcurrentPostId,\n\t\t\tisEditingTemplate,\n\t\t\tsettings.supportsTemplateMode,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t]\n\t);\n\n\tuseMetaBoxInitialization( hasActiveMetaboxes && hasResolvedMode );\n\n\t// Set the right context for the command palette\n\tconst commandContext = hasBlockSelected\n\t\t? 'block-selection-edit'\n\t\t: 'entity-edit';\n\tuseCommandContext( commandContext );\n\tconst styles = useEditorStyles( settings );\n\tconst editorSettings = useMemo(\n\t\t() => ( {\n\t\t\t...settings,\n\t\t\tstyles,\n\t\t\tonNavigateToEntityRecord,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t} ),\n\t\t[\n\t\t\tsettings,\n\t\t\tstyles,\n\t\t\tonNavigateToEntityRecord,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t]\n\t);\n\n\t// We need to add the show-icon-labels class to the body element so it is applied to modals.\n\tif ( showIconLabels ) {\n\t\tdocument.body.classList.add( 'show-icon-labels' );\n\t} else {\n\t\tdocument.body.classList.remove( 'show-icon-labels' );\n\t}\n\n\tconst navigateRegionsProps = useNavigateRegions();\n\n\tconst className = clsx( 'edit-post-layout', 'is-mode-' + mode, {\n\t\t'has-metaboxes': hasActiveMetaboxes,\n\t} );\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 { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tswitch ( actionId ) {\n\t\t\t\tcase 'move-to-trash':\n\t\t\t\t\t{\n\t\t\t\t\t\tdocument.location.href = addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\ttrashed: 1,\n\t\t\t\t\t\t\tpost_type: items[ 0 ].type,\n\t\t\t\t\t\t\tids: items[ 0 ].id,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'duplicate-post':\n\t\t\t\t\t{\n\t\t\t\t\t\tconst newItem = items[ 0 ];\n\t\t\t\t\t\tconst title =\n\t\t\t\t\t\t\ttypeof newItem.title === 'string'\n\t\t\t\t\t\t\t\t? newItem.title\n\t\t\t\t\t\t\t\t: newItem.title?.rendered;\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( title ) || __( '(no title)' )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: __( 'Edit' ),\n\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\tconst postId = newItem.id;\n\t\t\t\t\t\t\t\t\t\t\tdocument.location.href =\n\t\t\t\t\t\t\t\t\t\t\t\taddQueryArgs( 'post.php', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpost: postId,\n\t\t\t\t\t\t\t\t\t\t\t\t\taction: 'edit',\n\t\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}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t[ createSuccessNotice ]\n\t);\n\n\tconst initialPost = useMemo( () => {\n\t\treturn {\n\t\t\ttype: initialPostType,\n\t\t\tid: initialPostId,\n\t\t};\n\t}, [ initialPostType, initialPostId ] );\n\n\tconst backButton =\n\t\tuseViewportMatch( 'medium' ) && isFullscreenActive ? (\n\t\t\t<BackButton initialPost={ initialPost } />\n\t\t) : null;\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<ErrorBoundary canCopyContent>\n\t\t\t\t<WelcomeGuide postType={ currentPostType } />\n\t\t\t\t<div { ...navigateRegionsProps }>\n\t\t\t\t\t<Editor\n\t\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t\tinitialEdits={ initialEdits }\n\t\t\t\t\t\tpostType={ currentPostType }\n\t\t\t\t\t\tpostId={ currentPostId }\n\t\t\t\t\t\ttemplateId={ templateId }\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\t\t\tdisableIframe={ ! shouldIframe }\n\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\tautoFocus={ ! isWelcomeGuideVisible }\n\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\textraSidebarPanels={\n\t\t\t\t\t\t\tshowMetaBoxes && <MetaBoxes location=\"side\" />\n\t\t\t\t\t\t}\n\t\t\t\t\t\textraContent={\n\t\t\t\t\t\t\t! isDistractionFree &&\n\t\t\t\t\t\t\tshowMetaBoxes && (\n\t\t\t\t\t\t\t\t<MetaBoxesMain isLegacy={ isDevicePreview } />\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\t\t<PostLockedModal />\n\t\t\t\t\t\t<EditorInitialization />\n\t\t\t\t\t\t<FullscreenMode isActive={ isFullscreenActive } />\n\t\t\t\t\t\t<BrowserURL />\n\t\t\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t\t\t<AutosaveMonitor />\n\t\t\t\t\t\t<LocalAutosaveMonitor />\n\t\t\t\t\t\t<EditPostKeyboardShortcuts />\n\t\t\t\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t\t\t\t<BlockKeyboardShortcuts />\n\t\t\t\t\t\t{ currentPostType === 'wp_block' && (\n\t\t\t\t\t\t\t<InitPatternModal />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t\t\t<PostEditorMoreMenu />\n\t\t\t\t\t\t{ backButton }\n\t\t\t\t\t\t<SnackbarNotices className=\"edit-post-layout__snackbar\" />\n\t\t\t\t\t</Editor>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t</SlotFillProvider>\n\t);\n}\n\nexport default Layout;\n"],
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,uBAAuB;AAChC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,eAAe;AAAA,OACT;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,IAAI,eAAe;AAC5B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,aAAa,iBAAiB;AACvC,SAAS,iBAAiB,SAAS,oBAAoB;AACvD,SAAS,SAAS,wBAAwB;AAC1C,SAAS,eAAe,2BAA2B;AACnD,SAAS,eAAe,+BAA+B;AACvD,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,SAAS,iBAAiB;AACnC;AAAA,EACC
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion } from '@wordpress/admin-ui';\nimport {\n\tAutosaveMonitor,\n\tLocalAutosaveMonitor,\n\tUnsavedChangesWarning,\n\tEditorKeyboardShortcutsRegister,\n\tErrorBoundary,\n\tPostLockedModal,\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getLayoutStyles } from '@wordpress/global-styles-engine';\nimport { PluginArea } from '@wordpress/plugins';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseId,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { chevronDown, chevronUp } from '@wordpress/icons';\nimport { SnackbarNotices, store as noticesStore } from '@wordpress/notices';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as commandsPrivateApis } from '@wordpress/commands';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\nimport { addQueryArgs } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tIcon as WCIcon,\n\tSlotFillProvider,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tuseMediaQuery,\n\tuseMergeRefs,\n\tuseRefEffect,\n\tuseViewportMatch,\n} from '@wordpress/compose';\n// eslint-disable-next-line @wordpress/use-recommended-components -- `Tooltip` is not yet on the recommended `@wordpress/ui` allow-list; landing as a migration step ahead of the wider rollout.\nimport { Tooltip, VisuallyHidden } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport BackButton from '../back-button';\nimport EditorInitialization from '../editor-initialization';\nimport EditPostKeyboardShortcuts from '../keyboard-shortcuts';\nimport InitPatternModal from '../init-pattern-modal';\nimport BrowserURL from '../browser-url';\nimport MetaBoxes from '../meta-boxes';\nimport PostEditorMoreMenu from '../more-menu';\nimport WelcomeGuide from '../welcome-guide';\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport useEditPostCommands from '../../commands/use-commands';\nimport { useShouldIframe } from './use-should-iframe';\nimport useNavigateToEntityRecord from '../../hooks/use-navigate-to-entity-record';\nimport { useMetaBoxInitialization } from '../meta-boxes/use-meta-box-initialization';\n\nconst { useCommandContext } = unlock( commandsPrivateApis );\n/** @type {{} & {useDrag: import('@use-gesture/react').useDrag}} */\nconst { useDrag } = unlock( componentsPrivateApis );\nconst { Editor, FullscreenMode } = unlock( editorPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\nconst DESIGN_POST_TYPES = [\n\t'wp_template',\n\t'wp_template_part',\n\t'wp_block',\n\t'wp_navigation',\n];\n\nfunction useEditorStyles( settings ) {\n\tconst { hasThemeStyleSupport } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\thasThemeStyleSupport:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'themeStyles' ),\n\t\t};\n\t}, [] );\n\n\t// Compute the default styles.\n\treturn useMemo( () => {\n\t\tconst presetStyles =\n\t\t\tsettings.styles?.filter(\n\t\t\t\t( style ) =>\n\t\t\t\t\tstyle.__unstableType && style.__unstableType !== 'theme'\n\t\t\t) ?? [];\n\n\t\tconst defaultEditorStyles = [\n\t\t\t...( settings?.defaultEditorStyles ?? [] ),\n\t\t\t...presetStyles,\n\t\t];\n\n\t\t// Has theme styles if the theme supports them and if some styles were not preset styles (in which case they're theme styles).\n\t\tconst hasThemeStyles =\n\t\t\thasThemeStyleSupport &&\n\t\t\tpresetStyles.length !== ( settings.styles?.length ?? 0 );\n\n\t\t// If theme styles are not present or displayed, ensure that\n\t\t// base layout styles are still present in the editor.\n\t\tif ( ! settings.disableLayoutStyles && ! hasThemeStyles ) {\n\t\t\tdefaultEditorStyles.push( {\n\t\t\t\tcss: getLayoutStyles( {\n\t\t\t\t\tstyle: {},\n\t\t\t\t\tselector: 'body',\n\t\t\t\t\thasBlockGapSupport: false,\n\t\t\t\t\thasFallbackGapSupport: true,\n\t\t\t\t\tfallbackGapValue: '0.5em',\n\t\t\t\t} ),\n\t\t\t} );\n\t\t}\n\n\t\treturn hasThemeStyles ? settings.styles ?? [] : defaultEditorStyles;\n\t}, [\n\t\tsettings.defaultEditorStyles,\n\t\tsettings.disableLayoutStyles,\n\t\tsettings.styles,\n\t\thasThemeStyleSupport,\n\t] );\n}\n\n/**\n * @param {Object} props\n * @param {boolean} props.isLegacy True for device previews where split view is disabled.\n */\nfunction MetaBoxesMain( { isLegacy } ) {\n\tconst [ isOpen, openHeight, hasAnyVisible ] = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { isMetaBoxLocationVisible } = select( editPostStore );\n\t\treturn [\n\t\t\t!! get( 'core/edit-post', 'metaBoxesMainIsOpen' ),\n\t\t\tget( 'core/edit-post', 'metaBoxesMainOpenHeight' ),\n\t\t\tisMetaBoxLocationVisible( 'normal' ) ||\n\t\t\t\tisMetaBoxLocationVisible( 'advanced' ) ||\n\t\t\t\tisMetaBoxLocationVisible( 'side' ),\n\t\t];\n\t}, [] );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\tconst isShort = useMediaQuery( '(max-height: 549px)' );\n\n\tconst [ { min = 0, max }, setHeightConstraints ] = useState( () => ( {} ) );\n\t// Keeps the resizable area\u2019s size constraints updated taking into account\n\t// editor notices. The constraints are also used to derive the value for the\n\t// aria-valuenow attribute on the separator.\n\tconst effectSizeConstraints = useRefEffect( ( node ) => {\n\t\tconst container = node.closest(\n\t\t\t'.interface-interface-skeleton__content'\n\t\t);\n\t\tif ( ! container ) {\n\t\t\treturn;\n\t\t}\n\t\tconst noticeContainer = container.querySelector(\n\t\t\t':scope > .notices-inline-notices-wrapper'\n\t\t);\n\t\tconst resizeHandle = container.querySelector(\n\t\t\t'.edit-post-meta-boxes-main__presenter'\n\t\t);\n\t\tconst deriveConstraints = () => {\n\t\t\tconst fullHeight = container.offsetHeight;\n\t\t\tlet nextMax = fullHeight;\n\t\t\tif ( noticeContainer ) {\n\t\t\t\tnextMax -= noticeContainer.offsetHeight;\n\t\t\t}\n\t\t\tconst nextMin = resizeHandle?.offsetHeight ?? 0;\n\t\t\tsetHeightConstraints( { min: nextMin, max: nextMax } );\n\t\t};\n\t\tconst observer = new window.ResizeObserver( deriveConstraints );\n\t\tobserver.observe( container );\n\t\tif ( noticeContainer ) {\n\t\t\tobserver.observe( noticeContainer );\n\t\t}\n\t\treturn () => observer.disconnect();\n\t}, [] );\n\tconst metaBoxesMainRef = useRef();\n\tconst setMainRefs = useMergeRefs( [\n\t\tmetaBoxesMainRef,\n\t\teffectSizeConstraints,\n\t] );\n\n\tconst separatorRef = useRef();\n\tconst separatorHelpId = useId();\n\n\tconst heightRef = useRef();\n\n\tconst getAriaValueNow = ( height ) =>\n\t\tMath.round( ( ( height - min ) / ( max - min ) ) * 100 );\n\tconst persistIsOpen = ( to = ! isOpen ) =>\n\t\tsetPreference( 'core/edit-post', 'metaBoxesMainIsOpen', to );\n\n\t/**\n\t * @param {number|'auto'} [candidateHeight] Height in pixels or 'auto'.\n\t * @param {boolean} isPersistent Whether to persist the height in preferences.\n\t */\n\tconst applyHeight = ( candidateHeight = 'auto', isPersistent ) => {\n\t\tlet styleHeight;\n\t\tif ( candidateHeight === 'auto' ) {\n\t\t\tisPersistent = false; // Just in case \u2014 \u201Cauto\u201D should never persist.\n\t\t\tstyleHeight = candidateHeight;\n\t\t} else {\n\t\t\tcandidateHeight = Math.min( max, Math.max( min, candidateHeight ) );\n\t\t\theightRef.current = candidateHeight;\n\t\t\tstyleHeight = `${ candidateHeight }px`;\n\t\t}\n\t\tif ( isPersistent ) {\n\t\t\tsetPreference(\n\t\t\t\t'core/edit-post',\n\t\t\t\t'metaBoxesMainOpenHeight',\n\t\t\t\tcandidateHeight\n\t\t\t);\n\t\t}\n\t\t// Applies imperative DOM updates only when not persisting the value\n\t\t// because otherwise it's done by the subsequent render.\n\t\telse {\n\t\t\tmetaBoxesMainRef.current.style.height = styleHeight;\n\t\t\tif ( ! isShort ) {\n\t\t\t\tseparatorRef.current.ariaValueNow =\n\t\t\t\t\tgetAriaValueNow( candidateHeight );\n\t\t\t}\n\t\t}\n\t};\n\n\t// useDrag includes keyboard support with arrow keys emulating a drag.\n\t// TODO: Support more/all keyboard interactions from the window splitter pattern:\n\t// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\tconst bindDragGesture = useDrag(\n\t\t( { movement, first, last, memo, tap, args } ) => {\n\t\t\tconst pane = metaBoxesMainRef.current;\n\t\t\tconst [ , yMovement ] = movement;\n\t\t\tif ( first ) {\n\t\t\t\tpane.classList.add( 'is-resizing' );\n\t\t\t\tlet fromHeight = heightRef.current ?? pane.offsetHeight;\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t// Starts from max in case shortening the window has imposed it.\n\t\t\t\t\tif ( fromHeight > max ) {\n\t\t\t\t\t\tfromHeight = max;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfromHeight = min;\n\t\t\t\t}\n\t\t\t\tapplyHeight( fromHeight - yMovement );\n\t\t\t\treturn { fromHeight };\n\t\t\t}\n\n\t\t\tif ( ! first && ! last && ! tap ) {\n\t\t\t\tapplyHeight( memo.fromHeight - yMovement );\n\t\t\t\treturn memo;\n\t\t\t}\n\t\t\t// Here, `last === true` \u2013 it\u2019s the final event of the gesture.\n\n\t\t\tpane.classList.remove( 'is-resizing' );\n\t\t\tif ( tap ) {\n\t\t\t\tconst [ onTap ] = args;\n\t\t\t\tonTap?.();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nextIsOpen = heightRef.current > min;\n\t\t\tpersistIsOpen( nextIsOpen );\n\t\t\t// Persists height only if still open. This is so that when closed by a drag the\n\t\t\t// prior height can be restored by the toggle button instead of having to drag\n\t\t\t// the pane open again.\n\t\t\tapplyHeight( heightRef.current, nextIsOpen );\n\t\t},\n\t\t{ keyboardDisplacement: 20, filterTaps: true }\n\t);\n\n\tif ( ! hasAnyVisible ) {\n\t\treturn;\n\t}\n\n\tconst contents = (\n\t\t<div\n\t\t\t// The class name 'edit-post-layout__metaboxes' is retained because some plugins use it.\n\t\t\tclassName=\"edit-post-layout__metaboxes edit-post-meta-boxes-main__liner\"\n\t\t\thidden={ ! isLegacy && ! isOpen }\n\t\t>\n\t\t\t<MetaBoxes location=\"normal\" />\n\t\t\t<MetaBoxes location=\"advanced\" />\n\t\t</div>\n\t);\n\n\tif ( isLegacy ) {\n\t\treturn contents;\n\t}\n\n\tconst isAutoHeight = openHeight === undefined;\n\tconst usedOpenHeight = isShort ? 'auto' : openHeight;\n\tconst usedHeight = isOpen ? usedOpenHeight : min;\n\n\tconst usedAriaValueNow =\n\t\tmax === undefined || isAutoHeight ? 50 : getAriaValueNow( usedHeight );\n\n\tconst paneLabel = __( 'Meta Boxes' );\n\n\t// The toggle button. It also resizes when the viewport is tall to provide\n\t// a larger hit area than the small separator button.\n\tconst toggle = (\n\t\t<button\n\t\t\taria-expanded={ isOpen }\n\t\t\t// Toggles for all clicks when short and only keyboard \u201Cclicks\u201D when\n\t\t\t// resizable because pointer input is handled by the drag gesture.\n\t\t\tonClick={ ( { detail } ) => {\n\t\t\t\tif ( isShort || ! detail ) {\n\t\t\t\t\tpersistIsOpen();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t// Passes a toggle callback that the drag gesture handler calls when\n\t\t\t// it interprets the input as a click/tap.\n\t\t\t{ ...( ! isShort && bindDragGesture( persistIsOpen ) ) }\n\t\t>\n\t\t\t{ paneLabel }\n\t\t\t<WCIcon icon={ isOpen ? chevronUp : chevronDown } />\n\t\t</button>\n\t);\n\n\t// The separator button that provides a11y for resizing.\n\tconst separator = ! isShort && (\n\t\t<>\n\t\t\t<Tooltip.Root>\n\t\t\t\t<Tooltip.Trigger\n\t\t\t\t\trender={\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tref={ separatorRef }\n\t\t\t\t\t\t\trole=\"separator\" // eslint-disable-line jsx-a11y/no-interactive-element-to-noninteractive-role\n\t\t\t\t\t\t\taria-valuenow={ usedAriaValueNow }\n\t\t\t\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\t\t\t\taria-describedby={ separatorHelpId }\n\t\t\t\t\t\t\t{ ...bindDragGesture() }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<Tooltip.Popup>{ __( 'Drag to resize' ) }</Tooltip.Popup>\n\t\t\t</Tooltip.Root>\n\t\t\t<VisuallyHidden id={ separatorHelpId }>\n\t\t\t\t{ __(\n\t\t\t\t\t'Use up and down arrow keys to resize the meta box pane.'\n\t\t\t\t) }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n\n\treturn (\n\t\t<NavigableRegion\n\t\t\tariaLabel={ paneLabel }\n\t\t\tref={ setMainRefs }\n\t\t\tclassName={ clsx(\n\t\t\t\t'edit-post-meta-boxes-main',\n\t\t\t\t! isShort && 'is-resizable'\n\t\t\t) }\n\t\t\tstyle={ { height: usedHeight } }\n\t\t>\n\t\t\t<div className=\"edit-post-meta-boxes-main__presenter\">\n\t\t\t\t{ toggle }\n\t\t\t\t{ separator }\n\t\t\t</div>\n\t\t\t{ contents }\n\t\t</NavigableRegion>\n\t);\n}\n\nfunction Layout( {\n\tpostId: initialPostId,\n\tpostType: initialPostType,\n\tsettings,\n\tinitialEdits,\n} ) {\n\tuseEditPostCommands();\n\tconst shouldIframe = useShouldIframe();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tcurrentPost: { postId: currentPostId, postType: currentPostType },\n\t\tonNavigateToEntityRecord,\n\t\tonNavigateToPreviousEntityRecord,\n\t} = useNavigateToEntityRecord(\n\t\tinitialPostId,\n\t\tinitialPostType,\n\t\t'post-only'\n\t);\n\tconst isEditingTemplate = currentPostType === 'wp_template';\n\tconst {\n\t\tmode,\n\t\tisFullscreenActive,\n\t\thasResolvedMode,\n\t\thasActiveMetaboxes,\n\t\thasBlockSelected,\n\t\tshowIconLabels,\n\t\tisDistractionFree,\n\t\tshowMetaBoxes,\n\t\tisWelcomeGuideVisible,\n\t\ttemplateId,\n\t\tisDevicePreview,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { isFeatureActive, hasMetaBoxes } = select( editPostStore );\n\t\t\tconst { canUser, getPostType, getTemplateId } = unlock(\n\t\t\t\tselect( coreStore )\n\t\t\t);\n\n\t\t\tconst supportsTemplateMode = settings.supportsTemplateMode;\n\t\t\tconst isViewable =\n\t\t\t\tgetPostType( currentPostType )?.viewable ?? false;\n\t\t\tconst canViewTemplate = canUser( 'read', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\tconst { getBlockSelectionStart, isZoomOut } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst { getEditorMode, getDefaultRenderingMode, getDeviceType } =\n\t\t\t\tunlock( select( editorStore ) );\n\t\t\tconst isNotDesignPostType =\n\t\t\t\t! DESIGN_POST_TYPES.includes( currentPostType );\n\t\t\tconst isDirectlyEditingPattern =\n\t\t\t\tcurrentPostType === 'wp_block' &&\n\t\t\t\t! onNavigateToPreviousEntityRecord;\n\t\t\tconst _templateId = getTemplateId( currentPostType, currentPostId );\n\t\t\tconst defaultMode = getDefaultRenderingMode( currentPostType );\n\n\t\t\treturn {\n\t\t\t\tmode: getEditorMode(),\n\t\t\t\tisFullscreenActive: isFeatureActive( 'fullscreenMode' ),\n\t\t\t\thasActiveMetaboxes: hasMetaBoxes(),\n\t\t\t\thasResolvedMode:\n\t\t\t\t\tdefaultMode === 'template-locked'\n\t\t\t\t\t\t? !! _templateId\n\t\t\t\t\t\t: defaultMode !== undefined,\n\t\t\t\thasBlockSelected: !! getBlockSelectionStart(),\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tshowMetaBoxes:\n\t\t\t\t\t( isNotDesignPostType && ! isZoomOut() ) ||\n\t\t\t\t\tisDirectlyEditingPattern,\n\t\t\t\tisWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),\n\t\t\t\ttemplateId:\n\t\t\t\t\tsupportsTemplateMode &&\n\t\t\t\t\tisViewable &&\n\t\t\t\t\tcanViewTemplate &&\n\t\t\t\t\t! isEditingTemplate\n\t\t\t\t\t\t? _templateId\n\t\t\t\t\t\t: null,\n\t\t\t\tisDevicePreview: getDeviceType() !== 'Desktop',\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tcurrentPostType,\n\t\t\tcurrentPostId,\n\t\t\tisEditingTemplate,\n\t\t\tsettings.supportsTemplateMode,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t]\n\t);\n\n\tuseMetaBoxInitialization( hasActiveMetaboxes && hasResolvedMode );\n\n\t// Set the right context for the command palette\n\tconst commandContext = hasBlockSelected\n\t\t? 'block-selection-edit'\n\t\t: 'entity-edit';\n\tuseCommandContext( commandContext );\n\tconst styles = useEditorStyles( settings );\n\tconst editorSettings = useMemo(\n\t\t() => ( {\n\t\t\t...settings,\n\t\t\tstyles,\n\t\t\tonNavigateToEntityRecord,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t} ),\n\t\t[\n\t\t\tsettings,\n\t\t\tstyles,\n\t\t\tonNavigateToEntityRecord,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t]\n\t);\n\n\t// We need to add the show-icon-labels class to the body element so it is applied to modals.\n\tif ( showIconLabels ) {\n\t\tdocument.body.classList.add( 'show-icon-labels' );\n\t} else {\n\t\tdocument.body.classList.remove( 'show-icon-labels' );\n\t}\n\n\tconst navigateRegionsProps = useNavigateRegions();\n\n\tconst className = clsx( 'edit-post-layout', 'is-mode-' + mode, {\n\t\t'has-metaboxes': hasActiveMetaboxes,\n\t} );\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 { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tswitch ( actionId ) {\n\t\t\t\tcase 'move-to-trash':\n\t\t\t\t\t{\n\t\t\t\t\t\tdocument.location.href = addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\ttrashed: 1,\n\t\t\t\t\t\t\tpost_type: items[ 0 ].type,\n\t\t\t\t\t\t\tids: items[ 0 ].id,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'duplicate-post':\n\t\t\t\t\t{\n\t\t\t\t\t\tconst newItem = items[ 0 ];\n\t\t\t\t\t\tconst title =\n\t\t\t\t\t\t\ttypeof newItem.title === 'string'\n\t\t\t\t\t\t\t\t? newItem.title\n\t\t\t\t\t\t\t\t: newItem.title?.rendered;\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( title ) || __( '(no title)' )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: __( 'Edit' ),\n\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\tconst postId = newItem.id;\n\t\t\t\t\t\t\t\t\t\t\tdocument.location.href =\n\t\t\t\t\t\t\t\t\t\t\t\taddQueryArgs( 'post.php', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpost: postId,\n\t\t\t\t\t\t\t\t\t\t\t\t\taction: 'edit',\n\t\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}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t[ createSuccessNotice ]\n\t);\n\n\tconst initialPost = useMemo( () => {\n\t\treturn {\n\t\t\ttype: initialPostType,\n\t\t\tid: initialPostId,\n\t\t};\n\t}, [ initialPostType, initialPostId ] );\n\n\tconst backButton =\n\t\tuseViewportMatch( 'medium' ) && isFullscreenActive ? (\n\t\t\t<BackButton initialPost={ initialPost } />\n\t\t) : null;\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<Tooltip.Provider>\n\t\t\t\t<ErrorBoundary canCopyContent>\n\t\t\t\t\t<WelcomeGuide postType={ currentPostType } />\n\t\t\t\t\t<div { ...navigateRegionsProps }>\n\t\t\t\t\t\t<Editor\n\t\t\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t\t\tinitialEdits={ initialEdits }\n\t\t\t\t\t\t\tpostType={ currentPostType }\n\t\t\t\t\t\t\tpostId={ currentPostId }\n\t\t\t\t\t\t\ttemplateId={ templateId }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tforceIsDirty={ hasActiveMetaboxes }\n\t\t\t\t\t\t\tdisableIframe={ ! shouldIframe }\n\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={ ! isWelcomeGuideVisible }\n\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\textraSidebarPanels={\n\t\t\t\t\t\t\t\tshowMetaBoxes && <MetaBoxes location=\"side\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\textraContent={\n\t\t\t\t\t\t\t\t! isDistractionFree &&\n\t\t\t\t\t\t\t\tshowMetaBoxes && (\n\t\t\t\t\t\t\t\t\t<MetaBoxesMain\n\t\t\t\t\t\t\t\t\t\tisLegacy={ isDevicePreview }\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>\n\t\t\t\t\t\t\t<PostLockedModal />\n\t\t\t\t\t\t\t<EditorInitialization />\n\t\t\t\t\t\t\t<FullscreenMode isActive={ isFullscreenActive } />\n\t\t\t\t\t\t\t<BrowserURL />\n\t\t\t\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t\t\t\t<AutosaveMonitor />\n\t\t\t\t\t\t\t<LocalAutosaveMonitor />\n\t\t\t\t\t\t\t<EditPostKeyboardShortcuts />\n\t\t\t\t\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t\t\t\t\t<BlockKeyboardShortcuts />\n\t\t\t\t\t\t\t{ currentPostType === 'wp_block' && (\n\t\t\t\t\t\t\t\t<InitPatternModal />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t\t\t\t<PostEditorMoreMenu />\n\t\t\t\t\t\t\t{ backButton }\n\t\t\t\t\t\t\t<SnackbarNotices className=\"edit-post-layout__snackbar\" />\n\t\t\t\t\t\t</Editor>\n\t\t\t\t\t</div>\n\t\t\t\t</ErrorBoundary>\n\t\t\t</Tooltip.Provider>\n\t\t</SlotFillProvider>\n\t);\n}\n\nexport default Layout;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -28,7 +28,7 @@ function MetaBoxesArea({ location }) {
|
|
|
28
28
|
"is-loading": isSaving
|
|
29
29
|
});
|
|
30
30
|
return /* @__PURE__ */ jsxs("div", { className: classes, children: [
|
|
31
|
-
isSaving && /* @__PURE__ */ jsx(Spinner, {}),
|
|
31
|
+
isSaving && /* @__PURE__ */ jsx(Spinner, { className: "edit-post-meta-boxes-area__spinner" }),
|
|
32
32
|
/* @__PURE__ */ jsx(
|
|
33
33
|
"div",
|
|
34
34
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/meta-boxes/meta-boxes-area/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Render metabox area.\n *\n * @param {Object} props Component props.\n * @param {string} props.location metabox location.\n * @return {Component} The component to be rendered.\n */\nfunction MetaBoxesArea( { location } ) {\n\tconst container = useRef( null );\n\tconst formRef = useRef( null );\n\n\tuseEffect( () => {\n\t\tformRef.current = document.querySelector(\n\t\t\t'.metabox-location-' + location\n\t\t);\n\n\t\tif ( formRef.current ) {\n\t\t\tcontainer.current.appendChild( formRef.current );\n\t\t}\n\n\t\treturn () => {\n\t\t\tif ( formRef.current ) {\n\t\t\t\tdocument\n\t\t\t\t\t.querySelector( '#metaboxes' )\n\t\t\t\t\t.appendChild( formRef.current );\n\t\t\t}\n\t\t};\n\t}, [ location ] );\n\n\tconst isSaving = useSelect( ( select ) => {\n\t\treturn select( editPostStore ).isSavingMetaBoxes();\n\t}, [] );\n\n\tconst classes = clsx( 'edit-post-meta-boxes-area', `is-${ location }`, {\n\t\t'is-loading': isSaving,\n\t} );\n\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t{ isSaving && <Spinner
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,QAAQ,iBAAiB;AAClC,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAK1B,SAAS,SAAS,qBAAqB;AAwCrC,
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Render metabox area.\n *\n * @param {Object} props Component props.\n * @param {string} props.location metabox location.\n * @return {Component} The component to be rendered.\n */\nfunction MetaBoxesArea( { location } ) {\n\tconst container = useRef( null );\n\tconst formRef = useRef( null );\n\n\tuseEffect( () => {\n\t\tformRef.current = document.querySelector(\n\t\t\t'.metabox-location-' + location\n\t\t);\n\n\t\tif ( formRef.current ) {\n\t\t\tcontainer.current.appendChild( formRef.current );\n\t\t}\n\n\t\treturn () => {\n\t\t\tif ( formRef.current ) {\n\t\t\t\tdocument\n\t\t\t\t\t.querySelector( '#metaboxes' )\n\t\t\t\t\t.appendChild( formRef.current );\n\t\t\t}\n\t\t};\n\t}, [ location ] );\n\n\tconst isSaving = useSelect( ( select ) => {\n\t\treturn select( editPostStore ).isSavingMetaBoxes();\n\t}, [] );\n\n\tconst classes = clsx( 'edit-post-meta-boxes-area', `is-${ location }`, {\n\t\t'is-loading': isSaving,\n\t} );\n\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t{ isSaving && (\n\t\t\t\t<Spinner className=\"edit-post-meta-boxes-area__spinner\" />\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"edit-post-meta-boxes-area__container\"\n\t\t\t\tref={ container }\n\t\t\t/>\n\t\t\t<div className=\"edit-post-meta-boxes-area__clear\" />\n\t\t</div>\n\t);\n}\n\nexport default MetaBoxesArea;\n"],
|
|
5
|
+
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,QAAQ,iBAAiB;AAClC,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAK1B,SAAS,SAAS,qBAAqB;AAwCrC,SAEE,KAFF;AA/BF,SAAS,cAAe,EAAE,SAAS,GAAI;AACtC,QAAM,YAAY,OAAQ,IAAK;AAC/B,QAAM,UAAU,OAAQ,IAAK;AAE7B,YAAW,MAAM;AAChB,YAAQ,UAAU,SAAS;AAAA,MAC1B,uBAAuB;AAAA,IACxB;AAEA,QAAK,QAAQ,SAAU;AACtB,gBAAU,QAAQ,YAAa,QAAQ,OAAQ;AAAA,IAChD;AAEA,WAAO,MAAM;AACZ,UAAK,QAAQ,SAAU;AACtB,iBACE,cAAe,YAAa,EAC5B,YAAa,QAAQ,OAAQ;AAAA,MAChC;AAAA,IACD;AAAA,EACD,GAAG,CAAE,QAAS,CAAE;AAEhB,QAAM,WAAW,UAAW,CAAE,WAAY;AACzC,WAAO,OAAQ,aAAc,EAAE,kBAAkB;AAAA,EAClD,GAAG,CAAC,CAAE;AAEN,QAAM,UAAU,KAAM,6BAA6B,MAAO,QAAS,IAAI;AAAA,IACtE,cAAc;AAAA,EACf,CAAE;AAEF,SACC,qBAAC,SAAI,WAAY,SACd;AAAA,gBACD,oBAAC,WAAQ,WAAU,sCAAqC;AAAA,IAEzD;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,KAAM;AAAA;AAAA,IACP;AAAA,IACA,oBAAC,SAAI,WAAU,oCAAmC;AAAA,KACnD;AAEF;AAEA,IAAO,0BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -9,16 +9,25 @@ var useMetaBoxInitialization = (enabled) => {
|
|
|
9
9
|
const {
|
|
10
10
|
isEnabledAndEditorReady,
|
|
11
11
|
isCollaborationEnabled,
|
|
12
|
-
hasIncompatibleMetaBoxes
|
|
12
|
+
hasIncompatibleMetaBoxes,
|
|
13
|
+
hasActiveMetaBoxes
|
|
13
14
|
} = useSelect(
|
|
14
|
-
(select) =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
(select) => {
|
|
16
|
+
const {
|
|
17
|
+
__unstableIsEditorReady,
|
|
18
|
+
isCollaborationEnabledForCurrentPost
|
|
19
|
+
} = unlock(select(editorStore));
|
|
20
|
+
return {
|
|
21
|
+
isEnabledAndEditorReady: enabled && __unstableIsEditorReady(),
|
|
22
|
+
isCollaborationEnabled: isCollaborationEnabledForCurrentPost(),
|
|
23
|
+
hasIncompatibleMetaBoxes: enabled ? select(editPostStore).getAllMetaBoxes().some((metaBox) => !metaBox.__rtc_compatible) : false,
|
|
24
|
+
hasActiveMetaBoxes: enabled && select(editPostStore).hasMetaBoxes()
|
|
25
|
+
};
|
|
26
|
+
},
|
|
19
27
|
[enabled]
|
|
20
28
|
);
|
|
21
29
|
const { setCollaborationSupported } = unlock(useDispatch(coreStore));
|
|
30
|
+
const { updateEditorSettings } = useDispatch(editorStore);
|
|
22
31
|
const { initializeMetaBoxes } = useDispatch(editPostStore);
|
|
23
32
|
useEffect(() => {
|
|
24
33
|
if (isEnabledAndEditorReady) {
|
|
@@ -26,13 +35,18 @@ var useMetaBoxInitialization = (enabled) => {
|
|
|
26
35
|
if (isCollaborationEnabled && hasIncompatibleMetaBoxes) {
|
|
27
36
|
setCollaborationSupported(false);
|
|
28
37
|
}
|
|
38
|
+
if (hasActiveMetaBoxes) {
|
|
39
|
+
updateEditorSettings({ disableVisualRevisions: true });
|
|
40
|
+
}
|
|
29
41
|
}
|
|
30
42
|
}, [
|
|
31
43
|
isEnabledAndEditorReady,
|
|
32
44
|
initializeMetaBoxes,
|
|
33
45
|
isCollaborationEnabled,
|
|
34
46
|
setCollaborationSupported,
|
|
35
|
-
hasIncompatibleMetaBoxes
|
|
47
|
+
hasIncompatibleMetaBoxes,
|
|
48
|
+
hasActiveMetaBoxes,
|
|
49
|
+
updateEditorSettings
|
|
36
50
|
]);
|
|
37
51
|
};
|
|
38
52
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/meta-boxes/use-meta-box-initialization.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Initializes WordPress `postboxes` script and the logic for saving meta boxes.\n *\n * @param { boolean } enabled\n */\nexport const useMetaBoxInitialization = ( enabled ) => {\n\tconst {\n\t\tisEnabledAndEditorReady,\n\t\tisCollaborationEnabled,\n\t\thasIncompatibleMetaBoxes,\n\t} = useSelect(\n\t\t( select ) =>
|
|
5
|
-
"mappings": ";AAGA,SAAS,aAAa,iBAAiB;AACvC,SAAS,SAAS,mBAAmB;AACrC,SAAS,SAAS,iBAAiB;AACnC,SAAS,iBAAiB;AAK1B,SAAS,SAAS,qBAAqB;AACvC,SAAS,cAAc;AAOhB,IAAM,2BAA2B,CAAE,YAAa;AACtD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAAA,IACH,CAAE,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Initializes WordPress `postboxes` script and the logic for saving meta boxes.\n *\n * @param { boolean } enabled\n */\nexport const useMetaBoxInitialization = ( enabled ) => {\n\tconst {\n\t\tisEnabledAndEditorReady,\n\t\tisCollaborationEnabled,\n\t\thasIncompatibleMetaBoxes,\n\t\thasActiveMetaBoxes,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__unstableIsEditorReady,\n\t\t\t\tisCollaborationEnabledForCurrentPost,\n\t\t\t} = unlock( select( editorStore ) );\n\t\t\treturn {\n\t\t\t\tisEnabledAndEditorReady: enabled && __unstableIsEditorReady(),\n\t\t\t\tisCollaborationEnabled: isCollaborationEnabledForCurrentPost(),\n\t\t\t\thasIncompatibleMetaBoxes: enabled\n\t\t\t\t\t? select( editPostStore )\n\t\t\t\t\t\t\t.getAllMetaBoxes()\n\t\t\t\t\t\t\t.some( ( metaBox ) => ! metaBox.__rtc_compatible )\n\t\t\t\t\t: false,\n\t\t\t\thasActiveMetaBoxes:\n\t\t\t\t\tenabled && select( editPostStore ).hasMetaBoxes(),\n\t\t\t};\n\t\t},\n\t\t[ enabled ]\n\t);\n\tconst { setCollaborationSupported } = unlock( useDispatch( coreStore ) );\n\tconst { updateEditorSettings } = useDispatch( editorStore );\n\tconst { initializeMetaBoxes } = useDispatch( editPostStore );\n\n\t// The effect has to rerun when the editor is ready because initializeMetaBoxes\n\t// will noop until then.\n\tuseEffect( () => {\n\t\tif ( isEnabledAndEditorReady ) {\n\t\t\tinitializeMetaBoxes();\n\n\t\t\t// Disable real-time collaboration when incompatible meta boxes are detected.\n\t\t\tif ( isCollaborationEnabled && hasIncompatibleMetaBoxes ) {\n\t\t\t\tsetCollaborationSupported( false );\n\t\t\t}\n\n\t\t\t// Classic meta box values are saved through a separate\n\t\t\t// admin-ajax submission that the in-editor revisions restore\n\t\t\t// does not drive, so visual revisions would silently leave\n\t\t\t// them untouched. Fall back to the classic revision.php\n\t\t\t// admin screen instead.\n\t\t\tif ( hasActiveMetaBoxes ) {\n\t\t\t\tupdateEditorSettings( { disableVisualRevisions: true } );\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisEnabledAndEditorReady,\n\t\tinitializeMetaBoxes,\n\t\tisCollaborationEnabled,\n\t\tsetCollaborationSupported,\n\t\thasIncompatibleMetaBoxes,\n\t\thasActiveMetaBoxes,\n\t\tupdateEditorSettings,\n\t] );\n};\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,aAAa,iBAAiB;AACvC,SAAS,SAAS,mBAAmB;AACrC,SAAS,SAAS,iBAAiB;AACnC,SAAS,iBAAiB;AAK1B,SAAS,SAAS,qBAAqB;AACvC,SAAS,cAAc;AAOhB,IAAM,2BAA2B,CAAE,YAAa;AACtD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAAA,IACH,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,OAAQ,WAAY,CAAE;AAClC,aAAO;AAAA,QACN,yBAAyB,WAAW,wBAAwB;AAAA,QAC5D,wBAAwB,qCAAqC;AAAA,QAC7D,0BAA0B,UACvB,OAAQ,aAAc,EACrB,gBAAgB,EAChB,KAAM,CAAE,YAAa,CAAE,QAAQ,gBAAiB,IACjD;AAAA,QACH,oBACC,WAAW,OAAQ,aAAc,EAAE,aAAa;AAAA,MAClD;AAAA,IACD;AAAA,IACA,CAAE,OAAQ;AAAA,EACX;AACA,QAAM,EAAE,0BAA0B,IAAI,OAAQ,YAAa,SAAU,CAAE;AACvE,QAAM,EAAE,qBAAqB,IAAI,YAAa,WAAY;AAC1D,QAAM,EAAE,oBAAoB,IAAI,YAAa,aAAc;AAI3D,YAAW,MAAM;AAChB,QAAK,yBAA0B;AAC9B,0BAAoB;AAGpB,UAAK,0BAA0B,0BAA2B;AACzD,kCAA2B,KAAM;AAAA,MAClC;AAOA,UAAK,oBAAqB;AACzB,6BAAsB,EAAE,wBAAwB,KAAK,CAAE;AAAA,MACxD;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|