@wordpress/editor 14.22.0 → 14.24.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.
Files changed (79) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/collab-sidebar/comment-form.js +3 -1
  3. package/build/components/collab-sidebar/comment-form.js.map +1 -1
  4. package/build/components/editor-interface/index.js +11 -6
  5. package/build/components/editor-interface/index.js.map +1 -1
  6. package/build/components/post-author/check.js +3 -7
  7. package/build/components/post-author/check.js.map +1 -1
  8. package/build/components/post-author/panel.js +10 -2
  9. package/build/components/post-author/panel.js.map +1 -1
  10. package/build/components/post-publish-panel/postpublish.js +11 -3
  11. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  12. package/build/components/post-template/swap-template-button.js +18 -4
  13. package/build/components/post-template/swap-template-button.js.map +1 -1
  14. package/build/components/template-part-menu-items/convert-to-template-part.js +4 -1
  15. package/build/components/template-part-menu-items/convert-to-template-part.js.map +1 -1
  16. package/build/components/visual-editor/index.js +1 -2
  17. package/build/components/visual-editor/index.js.map +1 -1
  18. package/build/store/private-actions.js +2 -1
  19. package/build/store/private-actions.js.map +1 -1
  20. package/build/store/utils/notice-builder.js +2 -1
  21. package/build/store/utils/notice-builder.js.map +1 -1
  22. package/build/utils/search-templates.js +75 -0
  23. package/build/utils/search-templates.js.map +1 -0
  24. package/build-module/components/collab-sidebar/comment-form.js +4 -2
  25. package/build-module/components/collab-sidebar/comment-form.js.map +1 -1
  26. package/build-module/components/editor-interface/index.js +11 -6
  27. package/build-module/components/editor-interface/index.js.map +1 -1
  28. package/build-module/components/post-author/check.js +3 -7
  29. package/build-module/components/post-author/check.js.map +1 -1
  30. package/build-module/components/post-author/panel.js +10 -2
  31. package/build-module/components/post-author/panel.js.map +1 -1
  32. package/build-module/components/post-publish-panel/postpublish.js +12 -4
  33. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  34. package/build-module/components/post-template/swap-template-button.js +19 -5
  35. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  36. package/build-module/components/template-part-menu-items/convert-to-template-part.js +4 -1
  37. package/build-module/components/template-part-menu-items/convert-to-template-part.js.map +1 -1
  38. package/build-module/components/visual-editor/index.js +1 -2
  39. package/build-module/components/visual-editor/index.js.map +1 -1
  40. package/build-module/store/private-actions.js +2 -1
  41. package/build-module/store/private-actions.js.map +1 -1
  42. package/build-module/store/utils/notice-builder.js +2 -1
  43. package/build-module/store/utils/notice-builder.js.map +1 -1
  44. package/build-module/utils/search-templates.js +68 -0
  45. package/build-module/utils/search-templates.js.map +1 -0
  46. package/build-style/style-rtl.css +146 -28
  47. package/build-style/style.css +146 -28
  48. package/build-types/components/collab-sidebar/comment-form.d.ts.map +1 -1
  49. package/build-types/components/editor-interface/index.d.ts.map +1 -1
  50. package/build-types/components/post-author/check.d.ts.map +1 -1
  51. package/build-types/components/post-author/panel.d.ts.map +1 -1
  52. package/build-types/components/post-publish-panel/postpublish.d.ts.map +1 -1
  53. package/build-types/components/post-template/swap-template-button.d.ts.map +1 -1
  54. package/build-types/components/template-part-menu-items/convert-to-template-part.d.ts.map +1 -1
  55. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  56. package/build-types/store/private-actions.d.ts.map +1 -1
  57. package/build-types/store/utils/notice-builder.d.ts.map +1 -1
  58. package/build-types/utils/search-templates.d.ts +10 -0
  59. package/build-types/utils/search-templates.d.ts.map +1 -0
  60. package/package.json +37 -37
  61. package/src/components/collab-sidebar/comment-form.js +3 -1
  62. package/src/components/editor-interface/index.js +17 -15
  63. package/src/components/editor-interface/style.scss +1 -2
  64. package/src/components/post-author/check.js +2 -7
  65. package/src/components/post-author/panel.js +10 -2
  66. package/src/components/post-author/test/check.js +3 -11
  67. package/src/components/post-publish-panel/postpublish.js +19 -3
  68. package/src/components/post-publish-panel/style.scss +3 -1
  69. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +82 -12
  70. package/src/components/post-template/style.scss +10 -0
  71. package/src/components/post-template/swap-template-button.js +23 -6
  72. package/src/components/template-part-menu-items/convert-to-template-part.js +5 -2
  73. package/src/components/visual-editor/index.js +0 -1
  74. package/src/components/visual-editor/style.scss +6 -29
  75. package/src/store/private-actions.js +1 -0
  76. package/src/store/utils/notice-builder.js +1 -0
  77. package/src/store/utils/test/notice-builder.js +3 -1
  78. package/src/utils/search-templates.js +77 -0
  79. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","InterfaceSkeleton","ComplementaryArea","useSelect","__","_x","store","preferencesStore","BlockBreadcrumb","BlockToolbar","useViewportMatch","useState","useCallback","editorStore","EditorNotices","Header","InserterSidebar","ListViewSidebar","SavePublishPanels","TextEditor","VisualEditor","EditorContentSlotFill","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","interfaceLabels","header","body","sidebar","actions","footer","EditorInterface","className","styles","children","forceIsDirty","contentRef","disableIframe","autoFocus","customSaveButton","customSavePanel","forceDisableBlockTools","title","iframeProps","mode","isRichEditingEnabled","isInserterOpened","isListViewOpened","isDistractionFree","isPreviewMode","showBlockBreadcrumbs","documentLabel","select","get","getEditorSettings","getPostTypeLabel","editorSettings","postTypeLabel","getEditorMode","richEditingEnabled","isLargeViewport","secondarySidebarLabel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","labels","secondarySidebar","editorNotices","Slot","scope","content","editorCanvasView","hideDragHandle","rootLabelText","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","undefined"],"sources":["@wordpress/editor/src/components/editor-interface/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton, ComplementaryArea } from '@wordpress/interface';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { BlockBreadcrumb, BlockToolbar } from '@wordpress/block-editor';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport EditorNotices from '../editor-notices';\nimport Header from '../header';\nimport InserterSidebar from '../inserter-sidebar';\nimport ListViewSidebar from '../list-view-sidebar';\nimport SavePublishPanels from '../save-publish-panels';\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditorContentSlotFill from './content-slot-fill';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nexport default function EditorInterface( {\n\tclassName,\n\tstyles,\n\tchildren,\n\tforceIsDirty,\n\tcontentRef,\n\tdisableIframe,\n\tautoFocus,\n\tcustomSaveButton,\n\tcustomSavePanel,\n\tforceDisableBlockTools,\n\ttitle,\n\tiframeProps,\n} ) {\n\tconst {\n\t\tmode,\n\t\tisRichEditingEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tisDistractionFree,\n\t\tisPreviewMode,\n\t\tshowBlockBreadcrumbs,\n\t\tdocumentLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tmode: select( editorStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editorStore ).isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisPreviewMode: editorSettings.isPreviewMode,\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tdocumentLabel:\n\t\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\t\tpostTypeLabel || _x( 'Document', 'noun, breadcrumb' ),\n\t\t};\n\t}, [] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tisDistractionFree={ isDistractionFree }\n\t\t\tclassName={ clsx( 'editor-editor-interface', className, {\n\t\t\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t\t\t\t'is-distraction-free': isDistractionFree && ! isPreviewMode,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={\n\t\t\t\t! isPreviewMode && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomSaveButton={ customSaveButton }\n\t\t\t\t\t\tforceDisableBlockTools={ forceDisableBlockTools }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\tsecondarySidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\tmode === 'visual' &&\n\t\t\t\t( ( isInserterOpened && <InserterSidebar /> ) ||\n\t\t\t\t\t( isListViewOpened && <ListViewSidebar /> ) )\n\t\t\t}\n\t\t\tsidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree && <ComplementaryArea.Slot scope=\"core\" />\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ ! isDistractionFree && ! isPreviewMode && (\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<EditorContentSlotFill.Slot>\n\t\t\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t\t\teditorCanvasView\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{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t( mode === 'text' ||\n\t\t\t\t\t\t\t\t\t\t\t! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t\t\t\t\t<TextEditor\n\t\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\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{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t! isLargeViewport &&\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( isPreviewMode ||\n\t\t\t\t\t\t\t\t\t\t( isRichEditingEnabled &&\n\t\t\t\t\t\t\t\t\t\t\tmode === 'visual' ) ) && (\n\t\t\t\t\t\t\t\t\t\t<VisualEditor\n\t\t\t\t\t\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t\t\t\tdisableIframe={ disableIframe }\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\tiframeProps={ iframeProps }\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\t{ children }\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</EditorContentSlotFill.Slot>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\tisRichEditingEnabled &&\n\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t)\n\t\t\t}\n\t\t\tactions={\n\t\t\t\t! isPreviewMode\n\t\t\t\t\t? customSavePanel || (\n\t\t\t\t\t\t\t<SavePublishPanels\n\t\t\t\t\t\t\t\tcloseEntitiesSavedStates={\n\t\t\t\t\t\t\t\t\tcloseEntitiesSavedStates\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tforceIsDirtyPublishPanel={ forceIsDirty }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","InterfaceSkeleton","ComplementaryArea","useSelect","__","_x","store","preferencesStore","BlockBreadcrumb","BlockToolbar","useViewportMatch","useState","useCallback","editorStore","EditorNotices","Header","InserterSidebar","ListViewSidebar","SavePublishPanels","TextEditor","VisualEditor","EditorContentSlotFill","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","interfaceLabels","header","body","sidebar","actions","footer","EditorInterface","className","styles","children","forceIsDirty","contentRef","disableIframe","autoFocus","customSaveButton","customSavePanel","forceDisableBlockTools","title","iframeProps","mode","isInserterOpened","isListViewOpened","isDistractionFree","isPreviewMode","showBlockBreadcrumbs","documentLabel","select","get","getEditorSettings","getPostTypeLabel","editorSettings","postTypeLabel","_mode","getEditorMode","richEditingEnabled","codeEditingEnabled","isLargeViewport","secondarySidebarLabel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","labels","secondarySidebar","editorNotices","Slot","scope","content","editorCanvasView","hideDragHandle","rootLabelText","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","undefined"],"sources":["@wordpress/editor/src/components/editor-interface/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton, ComplementaryArea } from '@wordpress/interface';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { BlockBreadcrumb, BlockToolbar } from '@wordpress/block-editor';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport EditorNotices from '../editor-notices';\nimport Header from '../header';\nimport InserterSidebar from '../inserter-sidebar';\nimport ListViewSidebar from '../list-view-sidebar';\nimport SavePublishPanels from '../save-publish-panels';\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditorContentSlotFill from './content-slot-fill';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nexport default function EditorInterface( {\n\tclassName,\n\tstyles,\n\tchildren,\n\tforceIsDirty,\n\tcontentRef,\n\tdisableIframe,\n\tautoFocus,\n\tcustomSaveButton,\n\tcustomSavePanel,\n\tforceDisableBlockTools,\n\ttitle,\n\tiframeProps,\n} ) {\n\tconst {\n\t\tmode,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tisDistractionFree,\n\t\tisPreviewMode,\n\t\tshowBlockBreadcrumbs,\n\t\tdocumentLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\tlet _mode = select( editorStore ).getEditorMode();\n\t\tif ( ! editorSettings.richEditingEnabled && _mode === 'visual' ) {\n\t\t\t_mode = 'text';\n\t\t}\n\t\tif ( ! editorSettings.codeEditingEnabled && _mode === 'text' ) {\n\t\t\t_mode = 'visual';\n\t\t}\n\n\t\treturn {\n\t\t\tmode: _mode,\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editorStore ).isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisPreviewMode: editorSettings.isPreviewMode,\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tdocumentLabel:\n\t\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\t\tpostTypeLabel || _x( 'Document', 'noun, breadcrumb' ),\n\t\t};\n\t}, [] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tisDistractionFree={ isDistractionFree }\n\t\t\tclassName={ clsx( 'editor-editor-interface', className, {\n\t\t\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t\t\t\t'is-distraction-free': isDistractionFree && ! isPreviewMode,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={\n\t\t\t\t! isPreviewMode && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomSaveButton={ customSaveButton }\n\t\t\t\t\t\tforceDisableBlockTools={ forceDisableBlockTools }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\tsecondarySidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\tmode === 'visual' &&\n\t\t\t\t( ( isInserterOpened && <InserterSidebar /> ) ||\n\t\t\t\t\t( isListViewOpened && <ListViewSidebar /> ) )\n\t\t\t}\n\t\t\tsidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree && <ComplementaryArea.Slot scope=\"core\" />\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ ! isDistractionFree && ! isPreviewMode && (\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<EditorContentSlotFill.Slot>\n\t\t\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t\t\teditorCanvasView\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{ ! isPreviewMode && mode === 'text' && (\n\t\t\t\t\t\t\t\t\t\t<TextEditor\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\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\t{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t! isLargeViewport &&\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( isPreviewMode ||\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' ) && (\n\t\t\t\t\t\t\t\t\t\t<VisualEditor\n\t\t\t\t\t\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t\t\t\tdisableIframe={ disableIframe }\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\tiframeProps={ iframeProps }\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\t{ children }\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</EditorContentSlotFill.Slot>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t)\n\t\t\t}\n\t\t\tactions={\n\t\t\t\t! isPreviewMode\n\t\t\t\t\t? customSavePanel || (\n\t\t\t\t\t\t\t<SavePublishPanels\n\t\t\t\t\t\t\t\tcloseEntitiesSavedStates={\n\t\t\t\t\t\t\t\t\tcloseEntitiesSavedStates\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tforceIsDirtyPublishPanel={ forceIsDirty }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,14 +2,12 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useSelect } from '@wordpress/data';
5
- import { store as coreStore } from '@wordpress/core-data';
6
5
 
7
6
  /**
8
7
  * Internal dependencies
9
8
  */
10
9
  import PostTypeSupportCheck from '../post-type-support-check';
11
10
  import { store as editorStore } from '../../store';
12
- import { AUTHORS_QUERY } from './constants';
13
11
 
14
12
  /**
15
13
  * Wrapper component that renders its children only if the post type supports the author.
@@ -25,17 +23,15 @@ export default function PostAuthorCheck({
25
23
  children
26
24
  }) {
27
25
  const {
28
- hasAssignAuthorAction,
29
- hasAuthors
26
+ hasAssignAuthorAction
30
27
  } = useSelect(select => {
31
28
  const post = select(editorStore).getCurrentPost();
32
29
  const canAssignAuthor = post?._links?.['wp:action-assign-author'] ? true : false;
33
30
  return {
34
- hasAssignAuthorAction: canAssignAuthor,
35
- hasAuthors: canAssignAuthor ? select(coreStore).getUsers(AUTHORS_QUERY)?.length >= 1 : false
31
+ hasAssignAuthorAction: canAssignAuthor
36
32
  };
37
33
  }, []);
38
- if (!hasAssignAuthorAction || !hasAuthors) {
34
+ if (!hasAssignAuthorAction) {
39
35
  return null;
40
36
  }
41
37
  return /*#__PURE__*/_jsx(PostTypeSupportCheck, {
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","coreStore","PostTypeSupportCheck","editorStore","AUTHORS_QUERY","jsx","_jsx","PostAuthorCheck","children","hasAssignAuthorAction","hasAuthors","select","post","getCurrentPost","canAssignAuthor","_links","getUsers","length","supportKeys"],"sources":["@wordpress/editor/src/components/post-author/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\nimport { AUTHORS_QUERY } from './constants';\n\n/**\n * Wrapper component that renders its children only if the post type supports the author.\n *\n * @param {Object} props The component props.\n * @param {React.ReactNode} props.children Children to be rendered.\n *\n * @return {React.ReactNode} The component to be rendered. Return `null` if the post type doesn't\n * supports the author or if there are no authors available.\n */\nexport default function PostAuthorCheck( { children } ) {\n\tconst { hasAssignAuthorAction, hasAuthors } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst canAssignAuthor = post?._links?.[ 'wp:action-assign-author' ]\n\t\t\t? true\n\t\t\t: false;\n\t\treturn {\n\t\t\thasAssignAuthorAction: canAssignAuthor,\n\t\t\thasAuthors: canAssignAuthor\n\t\t\t\t? select( coreStore ).getUsers( AUTHORS_QUERY )?.length >= 1\n\t\t\t\t: false,\n\t\t};\n\t}, [] );\n\n\tif ( ! hasAssignAuthorAction || ! hasAuthors ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"author\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,4BAA4B;AAC7D,SAASF,KAAK,IAAIG,WAAW,QAAQ,aAAa;AAClD,SAASC,aAAa,QAAQ,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AASA,eAAe,SAASC,eAAeA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACvD,MAAM;IAAEC,qBAAqB;IAAEC;EAAW,CAAC,GAAGX,SAAS,CAAIY,MAAM,IAAM;IACtE,MAAMC,IAAI,GAAGD,MAAM,CAAER,WAAY,CAAC,CAACU,cAAc,CAAC,CAAC;IACnD,MAAMC,eAAe,GAAGF,IAAI,EAAEG,MAAM,GAAI,yBAAyB,CAAE,GAChE,IAAI,GACJ,KAAK;IACR,OAAO;MACNN,qBAAqB,EAAEK,eAAe;MACtCJ,UAAU,EAAEI,eAAe,GACxBH,MAAM,CAAEV,SAAU,CAAC,CAACe,QAAQ,CAAEZ,aAAc,CAAC,EAAEa,MAAM,IAAI,CAAC,GAC1D;IACJ,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAER,qBAAqB,IAAI,CAAEC,UAAU,EAAG;IAC9C,OAAO,IAAI;EACZ;EAEA,oBACCJ,IAAA,CAACJ,oBAAoB;IAACgB,WAAW,EAAC,QAAQ;IAAAV,QAAA,EACvCA;EAAQ,CACW,CAAC;AAEzB","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","PostTypeSupportCheck","store","editorStore","jsx","_jsx","PostAuthorCheck","children","hasAssignAuthorAction","select","post","getCurrentPost","canAssignAuthor","_links","supportKeys"],"sources":["@wordpress/editor/src/components/post-author/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\n/**\n * Wrapper component that renders its children only if the post type supports the author.\n *\n * @param {Object} props The component props.\n * @param {React.ReactNode} props.children Children to be rendered.\n *\n * @return {React.ReactNode} The component to be rendered. Return `null` if the post type doesn't\n * supports the author or if there are no authors available.\n */\nexport default function PostAuthorCheck( { children } ) {\n\tconst { hasAssignAuthorAction } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst canAssignAuthor = post?._links?.[ 'wp:action-assign-author' ]\n\t\t\t? true\n\t\t\t: false;\n\t\treturn {\n\t\t\thasAssignAuthorAction: canAssignAuthor,\n\t\t};\n\t}, [] );\n\n\tif ( ! hasAssignAuthorAction ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"author\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,4BAA4B;AAC7D,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AASA,eAAe,SAASC,eAAeA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACvD,MAAM;IAAEC;EAAsB,CAAC,GAAGR,SAAS,CAAIS,MAAM,IAAM;IAC1D,MAAMC,IAAI,GAAGD,MAAM,CAAEN,WAAY,CAAC,CAACQ,cAAc,CAAC,CAAC;IACnD,MAAMC,eAAe,GAAGF,IAAI,EAAEG,MAAM,GAAI,yBAAyB,CAAE,GAChE,IAAI,GACJ,KAAK;IACR,OAAO;MACNL,qBAAqB,EAAEI;IACxB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEJ,qBAAqB,EAAG;IAC9B,OAAO,IAAI;EACZ;EAEA,oBACCH,IAAA,CAACJ,oBAAoB;IAACa,WAAW,EAAC,QAAQ;IAAAP,QAAA,EACvCA;EAAQ,CACW,CAAC;AAEzB","ignoreList":[]}
@@ -6,6 +6,8 @@ import { Button, Dropdown } from '@wordpress/components';
6
6
  import { useState, useMemo } from '@wordpress/element';
7
7
  import { decodeEntities } from '@wordpress/html-entities';
8
8
  import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
9
+ import { useSelect } from '@wordpress/data';
10
+ import { store as coreStore } from '@wordpress/core-data';
9
11
 
10
12
  /**
11
13
  * Internal dependencies
@@ -13,7 +15,8 @@ import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '
13
15
  import PostAuthorCheck from './check';
14
16
  import PostAuthorForm from './index';
15
17
  import PostPanelRow from '../post-panel-row';
16
- import { useAuthorsQuery } from './hook';
18
+ import { BASE_QUERY } from './constants';
19
+ import { store as editorStore } from '../../store';
17
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
21
  function PostAuthorToggle({
19
22
  isOpen,
@@ -21,7 +24,12 @@ function PostAuthorToggle({
21
24
  }) {
22
25
  const {
23
26
  postAuthor
24
- } = useAuthorsQuery();
27
+ } = useSelect(select => {
28
+ const id = select(editorStore).getEditedPostAttribute('author');
29
+ return {
30
+ postAuthor: select(coreStore).getUser(id, BASE_QUERY)
31
+ };
32
+ }, []);
25
33
  const authorName = decodeEntities(postAuthor?.name) || __('(No author)');
26
34
  return /*#__PURE__*/_jsx(Button, {
27
35
  size: "compact",
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","Button","Dropdown","useState","useMemo","decodeEntities","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","PostAuthorCheck","PostAuthorForm","PostPanelRow","useAuthorsQuery","jsx","_jsx","jsxs","_jsxs","PostAuthorToggle","isOpen","onClick","postAuthor","authorName","name","size","className","variant","children","PostAuthor","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","label","ref","contentClassName","focusOnMount","renderToggle","onToggle","renderContent","onClose","title"],"sources":["@wordpress/editor/src/components/post-author/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button, Dropdown } from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PostAuthorCheck from './check';\nimport PostAuthorForm from './index';\nimport PostPanelRow from '../post-panel-row';\nimport { useAuthorsQuery } from './hook';\n\nfunction PostAuthorToggle( { isOpen, onClick } ) {\n\tconst { postAuthor } = useAuthorsQuery();\n\tconst authorName =\n\t\tdecodeEntities( postAuthor?.name ) || __( '(No author)' );\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tclassName=\"editor-post-author__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-label={\n\t\t\t\t// translators: %s: Author name.\n\t\t\t\tsprintf( __( 'Change author: %s' ), authorName )\n\t\t\t}\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ authorName }\n\t\t</Button>\n\t);\n}\n\n/**\n * Renders the Post Author Panel component.\n *\n * @return {React.ReactNode} The rendered component.\n */\nexport function PostAuthor() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\treturn (\n\t\t<PostAuthorCheck>\n\t\t\t<PostPanelRow label={ __( 'Author' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tcontentClassName=\"editor-post-author__panel-dialog\"\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<PostAuthorToggle\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<div className=\"editor-post-author\">\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Author' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PostAuthorForm onClose={ onClose } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostAuthorCheck>\n\t);\n}\n\nexport default PostAuthor;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,EAAEC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACtD,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,oCAAoC,IAAIC,sBAAsB,QAAQ,yBAAyB;;AAExG;AACA;AACA;AACA,OAAOC,eAAe,MAAM,SAAS;AACrC,OAAOC,cAAc,MAAM,SAAS;AACpC,OAAOC,YAAY,MAAM,mBAAmB;AAC5C,SAASC,eAAe,QAAQ,QAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEzC,SAASC,gBAAgBA,CAAE;EAAEC,MAAM;EAAEC;AAAQ,CAAC,EAAG;EAChD,MAAM;IAAEC;EAAW,CAAC,GAAGR,eAAe,CAAC,CAAC;EACxC,MAAMS,UAAU,GACff,cAAc,CAAEc,UAAU,EAAEE,IAAK,CAAC,IAAItB,EAAE,CAAE,aAAc,CAAC;EAC1D,oBACCc,IAAA,CAACZ,MAAM;IACNqB,IAAI,EAAC,SAAS;IACdC,SAAS,EAAC,kCAAkC;IAC5CC,OAAO,EAAC,UAAU;IAClB,iBAAgBP,MAAQ;IACxB;IACC;IACAjB,OAAO,CAAED,EAAE,CAAE,mBAAoB,CAAC,EAAEqB,UAAW,CAC/C;IACDF,OAAO,EAAGA,OAAS;IAAAO,QAAA,EAEjBL;EAAU,CACL,CAAC;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,UAAUA,CAAA,EAAG;EAC5B;EACA;EACA,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGzB,QAAQ,CAAE,IAAK,CAAC;EAC5D;EACA,MAAM0B,YAAY,GAAGzB,OAAO,CAC3B,OAAQ;IACP;IACA;IACA0B,MAAM,EAAEH,aAAa;IACrBI,SAAS,EAAE,YAAY;IACvBC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE;EACR,CAAC,CAAE,EACH,CAAEN,aAAa,CAChB,CAAC;EACD,oBACCd,IAAA,CAACL,eAAe;IAAAiB,QAAA,eACfZ,IAAA,CAACH,YAAY;MAACwB,KAAK,EAAGnC,EAAE,CAAE,QAAS,CAAG;MAACoC,GAAG,EAAGP,gBAAkB;MAAAH,QAAA,eAC9DZ,IAAA,CAACX,QAAQ;QACR2B,YAAY,EAAGA,YAAc;QAC7BO,gBAAgB,EAAC,kCAAkC;QACnDC,YAAY;QACZC,YAAY,EAAGA,CAAE;UAAErB,MAAM;UAAEsB;QAAS,CAAC,kBACpC1B,IAAA,CAACG,gBAAgB;UAChBC,MAAM,EAAGA,MAAQ;UACjBC,OAAO,EAAGqB;QAAU,CACpB,CACC;QACHC,aAAa,EAAGA,CAAE;UAAEC;QAAQ,CAAC,kBAC5B1B,KAAA;UAAKQ,SAAS,EAAC,oBAAoB;UAAAE,QAAA,gBAClCZ,IAAA,CAACN,sBAAsB;YACtBmC,KAAK,EAAG3C,EAAE,CAAE,QAAS,CAAG;YACxB0C,OAAO,EAAGA;UAAS,CACnB,CAAC,eACF5B,IAAA,CAACJ,cAAc;YAACgC,OAAO,EAAGA;UAAS,CAAE,CAAC;QAAA,CAClC;MACH,CACH;IAAC,CACW;EAAC,CACC,CAAC;AAEpB;AAEA,eAAef,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["__","sprintf","Button","Dropdown","useState","useMemo","decodeEntities","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useSelect","store","coreStore","PostAuthorCheck","PostAuthorForm","PostPanelRow","BASE_QUERY","editorStore","jsx","_jsx","jsxs","_jsxs","PostAuthorToggle","isOpen","onClick","postAuthor","select","id","getEditedPostAttribute","getUser","authorName","name","size","className","variant","children","PostAuthor","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","label","ref","contentClassName","focusOnMount","renderToggle","onToggle","renderContent","onClose","title"],"sources":["@wordpress/editor/src/components/post-author/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button, Dropdown } from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostAuthorCheck from './check';\nimport PostAuthorForm from './index';\nimport PostPanelRow from '../post-panel-row';\nimport { BASE_QUERY } from './constants';\nimport { store as editorStore } from '../../store';\n\nfunction PostAuthorToggle( { isOpen, onClick } ) {\n\tconst { postAuthor } = useSelect( ( select ) => {\n\t\tconst id = select( editorStore ).getEditedPostAttribute( 'author' );\n\t\treturn {\n\t\t\tpostAuthor: select( coreStore ).getUser( id, BASE_QUERY ),\n\t\t};\n\t}, [] );\n\tconst authorName =\n\t\tdecodeEntities( postAuthor?.name ) || __( '(No author)' );\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tclassName=\"editor-post-author__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-label={\n\t\t\t\t// translators: %s: Author name.\n\t\t\t\tsprintf( __( 'Change author: %s' ), authorName )\n\t\t\t}\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ authorName }\n\t\t</Button>\n\t);\n}\n\n/**\n * Renders the Post Author Panel component.\n *\n * @return {React.ReactNode} The rendered component.\n */\nexport function PostAuthor() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\treturn (\n\t\t<PostAuthorCheck>\n\t\t\t<PostPanelRow label={ __( 'Author' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tcontentClassName=\"editor-post-author__panel-dialog\"\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<PostAuthorToggle\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<div className=\"editor-post-author\">\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Author' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PostAuthorForm onClose={ onClose } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostAuthorCheck>\n\t);\n}\n\nexport default PostAuthor;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { PanelBody, Button, TextControl } from '@wordpress/components';
4
+ import { PanelBody, Button, TextControl, ExternalLink, VisuallyHidden } from '@wordpress/components';
5
5
  import { __, sprintf } from '@wordpress/i18n';
6
6
  import { useCallback, useEffect, useState, useRef } from '@wordpress/element';
7
7
  import { useSelect } from '@wordpress/data';
@@ -9,6 +9,7 @@ import { addQueryArgs, safeDecodeURIComponent } from '@wordpress/url';
9
9
  import { decodeEntities } from '@wordpress/html-entities';
10
10
  import { useCopyToClipboard } from '@wordpress/compose';
11
11
  import { store as coreStore } from '@wordpress/core-data';
12
+ import { external } from '@wordpress/icons';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -109,7 +110,7 @@ export default function PostPublishPanelPostpublish({
109
110
  className: "post-publish-panel__postpublish",
110
111
  children: [/*#__PURE__*/_jsxs(PanelBody, {
111
112
  className: "post-publish-panel__postpublish-header",
112
- children: [/*#__PURE__*/_jsx("a", {
113
+ children: [/*#__PURE__*/_jsx(ExternalLink, {
113
114
  ref: postLinkRef,
114
115
  href: link,
115
116
  children: decodeEntities(post.title) || __('(no title)')
@@ -139,11 +140,18 @@ export default function PostPublishPanelPostpublish({
139
140
  })]
140
141
  }), /*#__PURE__*/_jsxs("div", {
141
142
  className: "post-publish-panel__postpublish-buttons",
142
- children: [!isScheduled && /*#__PURE__*/_jsx(Button, {
143
+ children: [!isScheduled && /*#__PURE__*/_jsxs(Button, {
143
144
  variant: "primary",
144
145
  href: link,
145
146
  __next40pxDefaultSize: true,
146
- children: viewPostLabel
147
+ icon: external,
148
+ iconPosition: "right",
149
+ target: "_blank",
150
+ children: [viewPostLabel, /*#__PURE__*/_jsx(VisuallyHidden, {
151
+ as: "span",
152
+ children: /* translators: accessibility text */
153
+ __('(opens in a new tab)')
154
+ })]
147
155
  }), /*#__PURE__*/_jsx(Button, {
148
156
  variant: isScheduled ? 'primary' : 'secondary',
149
157
  __next40pxDefaultSize: true,
@@ -1 +1 @@
1
- {"version":3,"names":["PanelBody","Button","TextControl","__","sprintf","useCallback","useEffect","useState","useRef","useSelect","addQueryArgs","safeDecodeURIComponent","decodeEntities","useCopyToClipboard","store","coreStore","PostScheduleLabel","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POSTNAME","PAGENAME","getFuturePostUrl","post","slug","permalink_template","includes","replace","CopyButton","text","showCopyConfirmation","setShowCopyConfirmation","timeoutIdRef","ref","current","clearTimeout","setTimeout","__next40pxDefaultSize","variant","children","PostPublishPanelPostpublish","focusOnMount","postType","isScheduled","select","getEditedPostAttribute","getCurrentPost","isCurrentPostScheduled","getPostType","postLabel","labels","singular_name","viewPostLabel","view_item","addNewPostLabel","add_new_item","link","status","addLink","post_type","type","postLinkRef","node","focus","postPublishNonLinkHeader","className","href","title","__nextHasNoMarginBottom","readOnly","label","value","onFocus","event","target"],"sources":["@wordpress/editor/src/components/post-publish-panel/postpublish.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody, Button, TextControl } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useCallback, useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { addQueryArgs, safeDecodeURIComponent } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleLabel from '../post-schedule/label';\nimport { store as editorStore } from '../../store';\n\nconst POSTNAME = '%postname%';\nconst PAGENAME = '%pagename%';\n\n/**\n * Returns URL for a future post.\n *\n * @param {Object} post Post object.\n *\n * @return {string} PostPublish URL.\n */\n\nconst getFuturePostUrl = ( post ) => {\n\tconst { slug } = post;\n\n\tif ( post.permalink_template.includes( POSTNAME ) ) {\n\t\treturn post.permalink_template.replace( POSTNAME, slug );\n\t}\n\n\tif ( post.permalink_template.includes( PAGENAME ) ) {\n\t\treturn post.permalink_template.replace( PAGENAME, slug );\n\t}\n\n\treturn post.permalink_template;\n};\n\nfunction CopyButton( { text } ) {\n\tconst [ showCopyConfirmation, setShowCopyConfirmation ] = useState( false );\n\tconst timeoutIdRef = useRef();\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tsetShowCopyConfirmation( true );\n\t\tif ( timeoutIdRef.current ) {\n\t\t\tclearTimeout( timeoutIdRef.current );\n\t\t}\n\t\ttimeoutIdRef.current = setTimeout( () => {\n\t\t\tsetShowCopyConfirmation( false );\n\t\t}, 4000 );\n\t} );\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( timeoutIdRef.current ) {\n\t\t\t\tclearTimeout( timeoutIdRef.current );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Button __next40pxDefaultSize variant=\"secondary\" ref={ ref }>\n\t\t\t{ showCopyConfirmation ? __( 'Copied!' ) : __( 'Copy' ) }\n\t\t</Button>\n\t);\n}\n\nexport default function PostPublishPanelPostpublish( {\n\tfocusOnMount,\n\tchildren,\n} ) {\n\tconst { post, postType, isScheduled } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetCurrentPost,\n\t\t\tisCurrentPostScheduled,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpost: getCurrentPost(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t}, [] );\n\n\tconst postLabel = postType?.labels?.singular_name;\n\tconst viewPostLabel = postType?.labels?.view_item;\n\tconst addNewPostLabel = postType?.labels?.add_new_item;\n\tconst link =\n\t\tpost.status === 'future' ? getFuturePostUrl( post ) : post.link;\n\tconst addLink = addQueryArgs( 'post-new.php', {\n\t\tpost_type: post.type,\n\t} );\n\n\tconst postLinkRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( focusOnMount && node ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ focusOnMount ]\n\t);\n\n\tconst postPublishNonLinkHeader = isScheduled ? (\n\t\t<>\n\t\t\t{ __( 'is now scheduled. It will go live on' ) }{ ' ' }\n\t\t\t<PostScheduleLabel />.\n\t\t</>\n\t) : (\n\t\t__( 'is now live.' )\n\t);\n\n\treturn (\n\t\t<div className=\"post-publish-panel__postpublish\">\n\t\t\t<PanelBody className=\"post-publish-panel__postpublish-header\">\n\t\t\t\t<a ref={ postLinkRef } href={ link }>\n\t\t\t\t\t{ decodeEntities( post.title ) || __( '(no title)' ) }\n\t\t\t\t</a>{ ' ' }\n\t\t\t\t{ postPublishNonLinkHeader }\n\t\t\t</PanelBody>\n\t\t\t<PanelBody>\n\t\t\t\t<p className=\"post-publish-panel__postpublish-subheader\">\n\t\t\t\t\t<strong>{ __( 'What’s next?' ) }</strong>\n\t\t\t\t</p>\n\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address-container\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"post-publish-panel__postpublish-post-address\"\n\t\t\t\t\t\treadOnly\n\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: post type singular name */\n\t\t\t\t\t\t\t__( '%s address' ),\n\t\t\t\t\t\t\tpostLabel\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ safeDecodeURIComponent( link ) }\n\t\t\t\t\t\tonFocus={ ( event ) => event.target.select() }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address__copy-button-wrap\">\n\t\t\t\t\t\t<CopyButton text={ link } />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"post-publish-panel__postpublish-buttons\">\n\t\t\t\t\t{ ! isScheduled && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ viewPostLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant={ isScheduled ? 'primary' : 'secondary' }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\thref={ addLink }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ addNewPostLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</PanelBody>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PanelBody","Button","TextControl","ExternalLink","VisuallyHidden","__","sprintf","useCallback","useEffect","useState","useRef","useSelect","addQueryArgs","safeDecodeURIComponent","decodeEntities","useCopyToClipboard","store","coreStore","external","PostScheduleLabel","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POSTNAME","PAGENAME","getFuturePostUrl","post","slug","permalink_template","includes","replace","CopyButton","text","showCopyConfirmation","setShowCopyConfirmation","timeoutIdRef","ref","current","clearTimeout","setTimeout","__next40pxDefaultSize","variant","children","PostPublishPanelPostpublish","focusOnMount","postType","isScheduled","select","getEditedPostAttribute","getCurrentPost","isCurrentPostScheduled","getPostType","postLabel","labels","singular_name","viewPostLabel","view_item","addNewPostLabel","add_new_item","link","status","addLink","post_type","type","postLinkRef","node","focus","postPublishNonLinkHeader","className","href","title","__nextHasNoMarginBottom","readOnly","label","value","onFocus","event","target","icon","iconPosition","as"],"sources":["@wordpress/editor/src/components/post-publish-panel/postpublish.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tButton,\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useCallback, useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { addQueryArgs, safeDecodeURIComponent } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleLabel from '../post-schedule/label';\nimport { store as editorStore } from '../../store';\n\nconst POSTNAME = '%postname%';\nconst PAGENAME = '%pagename%';\n\n/**\n * Returns URL for a future post.\n *\n * @param {Object} post Post object.\n *\n * @return {string} PostPublish URL.\n */\n\nconst getFuturePostUrl = ( post ) => {\n\tconst { slug } = post;\n\n\tif ( post.permalink_template.includes( POSTNAME ) ) {\n\t\treturn post.permalink_template.replace( POSTNAME, slug );\n\t}\n\n\tif ( post.permalink_template.includes( PAGENAME ) ) {\n\t\treturn post.permalink_template.replace( PAGENAME, slug );\n\t}\n\n\treturn post.permalink_template;\n};\n\nfunction CopyButton( { text } ) {\n\tconst [ showCopyConfirmation, setShowCopyConfirmation ] = useState( false );\n\tconst timeoutIdRef = useRef();\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tsetShowCopyConfirmation( true );\n\t\tif ( timeoutIdRef.current ) {\n\t\t\tclearTimeout( timeoutIdRef.current );\n\t\t}\n\t\ttimeoutIdRef.current = setTimeout( () => {\n\t\t\tsetShowCopyConfirmation( false );\n\t\t}, 4000 );\n\t} );\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( timeoutIdRef.current ) {\n\t\t\t\tclearTimeout( timeoutIdRef.current );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Button __next40pxDefaultSize variant=\"secondary\" ref={ ref }>\n\t\t\t{ showCopyConfirmation ? __( 'Copied!' ) : __( 'Copy' ) }\n\t\t</Button>\n\t);\n}\n\nexport default function PostPublishPanelPostpublish( {\n\tfocusOnMount,\n\tchildren,\n} ) {\n\tconst { post, postType, isScheduled } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetCurrentPost,\n\t\t\tisCurrentPostScheduled,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpost: getCurrentPost(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t}, [] );\n\n\tconst postLabel = postType?.labels?.singular_name;\n\tconst viewPostLabel = postType?.labels?.view_item;\n\tconst addNewPostLabel = postType?.labels?.add_new_item;\n\tconst link =\n\t\tpost.status === 'future' ? getFuturePostUrl( post ) : post.link;\n\tconst addLink = addQueryArgs( 'post-new.php', {\n\t\tpost_type: post.type,\n\t} );\n\n\tconst postLinkRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( focusOnMount && node ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ focusOnMount ]\n\t);\n\n\tconst postPublishNonLinkHeader = isScheduled ? (\n\t\t<>\n\t\t\t{ __( 'is now scheduled. It will go live on' ) }{ ' ' }\n\t\t\t<PostScheduleLabel />.\n\t\t</>\n\t) : (\n\t\t__( 'is now live.' )\n\t);\n\n\treturn (\n\t\t<div className=\"post-publish-panel__postpublish\">\n\t\t\t<PanelBody className=\"post-publish-panel__postpublish-header\">\n\t\t\t\t<ExternalLink ref={ postLinkRef } href={ link }>\n\t\t\t\t\t{ decodeEntities( post.title ) || __( '(no title)' ) }\n\t\t\t\t</ExternalLink>{ ' ' }\n\t\t\t\t{ postPublishNonLinkHeader }\n\t\t\t</PanelBody>\n\t\t\t<PanelBody>\n\t\t\t\t<p className=\"post-publish-panel__postpublish-subheader\">\n\t\t\t\t\t<strong>{ __( 'What’s next?' ) }</strong>\n\t\t\t\t</p>\n\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address-container\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"post-publish-panel__postpublish-post-address\"\n\t\t\t\t\t\treadOnly\n\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: post type singular name */\n\t\t\t\t\t\t\t__( '%s address' ),\n\t\t\t\t\t\t\tpostLabel\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ safeDecodeURIComponent( link ) }\n\t\t\t\t\t\tonFocus={ ( event ) => event.target.select() }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address__copy-button-wrap\">\n\t\t\t\t\t\t<CopyButton text={ link } />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"post-publish-panel__postpublish-buttons\">\n\t\t\t\t\t{ ! isScheduled && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\ticonPosition=\"right\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ viewPostLabel }\n\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant={ isScheduled ? 'primary' : 'secondary' }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\thref={ addLink }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ addNewPostLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</PanelBody>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@
4
4
  import { useMemo, useState } from '@wordpress/element';
5
5
  import { decodeEntities } from '@wordpress/html-entities';
6
6
  import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
7
- import { MenuItem, Modal } from '@wordpress/components';
7
+ import { MenuItem, Modal, SearchControl } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { useDispatch } from '@wordpress/data';
10
10
  import { store as coreStore } from '@wordpress/core-data';
@@ -14,6 +14,7 @@ import { parse } from '@wordpress/blocks';
14
14
  * Internal dependencies
15
15
  */
16
16
  import { useAvailableTemplates, useEditedPostContext } from './hooks';
17
+ import { searchTemplates } from '../../utils/search-templates';
17
18
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
19
  export default function SwapTemplateButton({
19
20
  onClick
@@ -61,6 +62,7 @@ function TemplatesList({
61
62
  postType,
62
63
  onSelect
63
64
  }) {
65
+ const [searchValue, setSearchValue] = useState('');
64
66
  const availableTemplates = useAvailableTemplates(postType);
65
67
  const templatesAsPatterns = useMemo(() => availableTemplates.map(template => ({
66
68
  name: template.slug,
@@ -68,10 +70,22 @@ function TemplatesList({
68
70
  title: decodeEntities(template.title.rendered),
69
71
  id: template.id
70
72
  })), [availableTemplates]);
71
- return /*#__PURE__*/_jsx(BlockPatternsList, {
72
- label: __('Templates'),
73
- blockPatterns: templatesAsPatterns,
74
- onClickPattern: onSelect
73
+ const filteredBlockTemplates = useMemo(() => {
74
+ return searchTemplates(templatesAsPatterns, searchValue);
75
+ }, [templatesAsPatterns, searchValue]);
76
+ return /*#__PURE__*/_jsxs(_Fragment, {
77
+ children: [/*#__PURE__*/_jsx(SearchControl, {
78
+ __nextHasNoMarginBottom: true,
79
+ onChange: setSearchValue,
80
+ value: searchValue,
81
+ label: __('Search'),
82
+ placeholder: __('Search'),
83
+ className: "editor-post-template__swap-template-search"
84
+ }), /*#__PURE__*/_jsx(BlockPatternsList, {
85
+ label: __('Templates'),
86
+ blockPatterns: filteredBlockTemplates,
87
+ onClickPattern: onSelect
88
+ })]
75
89
  });
76
90
  }
77
91
  //# sourceMappingURL=swap-template-button.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useState","decodeEntities","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","__","useDispatch","store","coreStore","parse","useAvailableTemplates","useEditedPostContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SwapTemplateButton","onClick","showModal","setShowModal","postType","postId","availableTemplates","editEntityRecord","onTemplateSelect","template","name","undoIgnore","children","disabled","length","accessibleWhenDisabled","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","templatesAsPatterns","map","slug","blocks","content","raw","rendered","id","label","blockPatterns","onClickPattern"],"sources":["@wordpress/editor/src/components/post-template/swap-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useAvailableTemplates, useEditedPostContext } from './hooks';\n\nexport default function SwapTemplateButton( { onClick } ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst { postType, postId } = useEditedPostContext();\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst onTemplateSelect = async ( template ) => {\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\t{ template: template.name },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t\tsetShowModal( false ); // Close the template suggestions modal first.\n\t\tonClick();\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tdisabled={ ! availableTemplates?.length }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t>\n\t\t\t\t{ __( 'Change template' ) }\n\t\t\t</MenuItem>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ () => setShowModal( false ) }\n\t\t\t\t\toverlayClassName=\"editor-post-template__swap-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"editor-post-template__swap-template-modal-content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { postType, onSelect } ) {\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst templatesAsPatterns = useMemo(\n\t\t() =>\n\t\t\tavailableTemplates.map( ( template ) => ( {\n\t\t\t\tname: template.slug,\n\t\t\t\tblocks: parse( template.content.raw ),\n\t\t\t\ttitle: decodeEntities( template.title.rendered ),\n\t\t\t\tid: template.id,\n\t\t\t} ) ),\n\t\t[ availableTemplates ]\n\t);\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ templatesAsPatterns }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useState","decodeEntities","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","SearchControl","__","useDispatch","store","coreStore","parse","useAvailableTemplates","useEditedPostContext","searchTemplates","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SwapTemplateButton","onClick","showModal","setShowModal","postType","postId","availableTemplates","editEntityRecord","onTemplateSelect","template","name","undoIgnore","children","disabled","length","accessibleWhenDisabled","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","searchValue","setSearchValue","templatesAsPatterns","map","slug","blocks","content","raw","rendered","id","filteredBlockTemplates","__nextHasNoMarginBottom","onChange","value","label","placeholder","blockPatterns","onClickPattern"],"sources":["@wordpress/editor/src/components/post-template/swap-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useAvailableTemplates, useEditedPostContext } from './hooks';\nimport { searchTemplates } from '../../utils/search-templates';\n\nexport default function SwapTemplateButton( { onClick } ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst { postType, postId } = useEditedPostContext();\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst onTemplateSelect = async ( template ) => {\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\t{ template: template.name },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t\tsetShowModal( false ); // Close the template suggestions modal first.\n\t\tonClick();\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tdisabled={ ! availableTemplates?.length }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t>\n\t\t\t\t{ __( 'Change template' ) }\n\t\t\t</MenuItem>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ () => setShowModal( false ) }\n\t\t\t\t\toverlayClassName=\"editor-post-template__swap-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"editor-post-template__swap-template-modal-content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { postType, onSelect } ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst templatesAsPatterns = useMemo(\n\t\t() =>\n\t\t\tavailableTemplates.map( ( template ) => ( {\n\t\t\t\tname: template.slug,\n\t\t\t\tblocks: parse( template.content.raw ),\n\t\t\t\ttitle: decodeEntities( template.title.rendered ),\n\t\t\t\tid: template.id,\n\t\t\t} ) ),\n\t\t[ availableTemplates ]\n\t);\n\n\tconst filteredBlockTemplates = useMemo( () => {\n\t\treturn searchTemplates( templatesAsPatterns, searchValue );\n\t}, [ templatesAsPatterns, searchValue ] );\n\n\treturn (\n\t\t<>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tonChange={ setSearchValue }\n\t\t\t\tvalue={ searchValue }\n\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\tclassName=\"editor-post-template__swap-template-search\"\n\t\t\t/>\n\t\t\t<BlockPatternsList\n\t\t\t\tlabel={ __( 'Templates' ) }\n\t\t\t\tblockPatterns={ filteredBlockTemplates }\n\t\t\t\tonClickPattern={ onSelect }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ import { __ } from '@wordpress/i18n';
9
9
  import { useState } from '@wordpress/element';
10
10
  import { store as noticesStore } from '@wordpress/notices';
11
11
  import { symbolFilled } from '@wordpress/icons';
12
+ import { store as coreStore } from '@wordpress/core-data';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -27,13 +28,15 @@ export default function ConvertToTemplatePart({
27
28
  createSuccessNotice
28
29
  } = useDispatch(noticesStore);
29
30
  const {
31
+ isBlockBasedTheme,
30
32
  canCreate
31
33
  } = useSelect(select => {
32
34
  return {
35
+ isBlockBasedTheme: select(coreStore).getCurrentTheme()?.is_block_theme,
33
36
  canCreate: select(blockEditorStore).canInsertBlockType('core/template-part')
34
37
  };
35
38
  }, []);
36
- if (!canCreate) {
39
+ if (!isBlockBasedTheme || !canCreate) {
37
40
  return null;
38
41
  }
39
42
  const onConvert = async templatePart => {
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","useSelect","store","blockEditorStore","MenuItem","createBlock","__","useState","noticesStore","symbolFilled","CreateTemplatePartModal","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ConvertToTemplatePart","clientIds","blocks","isModalOpen","setIsModalOpen","replaceBlocks","createSuccessNotice","canCreate","select","canInsertBlockType","onConvert","templatePart","slug","theme","type","children","icon","onClick","closeModal","onCreate"],"sources":["@wordpress/editor/src/components/template-part-menu-items/convert-to-template-part.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { MenuItem } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { symbolFilled } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { CreateTemplatePartModal } from '@wordpress/fields';\n\nexport default function ConvertToTemplatePart( { clientIds, blocks } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { canCreate } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tcanCreate:\n\t\t\t\tselect( blockEditorStore ).canInsertBlockType(\n\t\t\t\t\t'core/template-part'\n\t\t\t\t),\n\t\t};\n\t}, [] );\n\n\tif ( ! canCreate ) {\n\t\treturn null;\n\t}\n\n\tconst onConvert = async ( templatePart ) => {\n\t\treplaceBlocks(\n\t\t\tclientIds,\n\t\t\tcreateBlock( 'core/template-part', {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t} )\n\t\t);\n\t\tcreateSuccessNotice( __( 'Template part created.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\n\t\t// The modal and this component will be unmounted because of `replaceBlocks` above,\n\t\t// so no need to call `closeModal` or `onClose`.\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbolFilled }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create template part' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonCreate={ onConvert }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASL,KAAK,IAAIM,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5D,eAAe,SAASC,qBAAqBA,CAAE;EAAEC,SAAS;EAAEC;AAAO,CAAC,EAAG;EACtE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGd,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM;IAAEe;EAAc,CAAC,GAAGtB,WAAW,CAAEG,gBAAiB,CAAC;EACzD,MAAM;IAAEoB;EAAoB,CAAC,GAAGvB,WAAW,CAAEQ,YAAa,CAAC;EAE3D,MAAM;IAAEgB;EAAU,CAAC,GAAGvB,SAAS,CAAIwB,MAAM,IAAM;IAC9C,OAAO;MACND,SAAS,EACRC,MAAM,CAAEtB,gBAAiB,CAAC,CAACuB,kBAAkB,CAC5C,oBACD;IACF,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEF,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMG,SAAS,GAAG,MAAQC,YAAY,IAAM;IAC3CN,aAAa,CACZJ,SAAS,EACTb,WAAW,CAAE,oBAAoB,EAAE;MAClCwB,IAAI,EAAED,YAAY,CAACC,IAAI;MACvBC,KAAK,EAAEF,YAAY,CAACE;IACrB,CAAE,CACH,CAAC;IACDP,mBAAmB,CAAEjB,EAAE,CAAE,wBAAyB,CAAC,EAAE;MACpDyB,IAAI,EAAE;IACP,CAAE,CAAC;;IAEH;IACA;EACD,CAAC;EAED,oBACCf,KAAA,CAAAF,SAAA;IAAAkB,QAAA,gBACCpB,IAAA,CAACR,QAAQ;MACR6B,IAAI,EAAGxB,YAAc;MACrByB,OAAO,EAAGA,CAAA,KAAM;QACfb,cAAc,CAAE,IAAK,CAAC;MACvB,CAAG;MACH,iBAAgBD,WAAa;MAC7B,iBAAc,QAAQ;MAAAY,QAAA,EAEpB1B,EAAE,CAAE,sBAAuB;IAAC,CACrB,CAAC,EACTc,WAAW,iBACZR,IAAA,CAACF,uBAAuB;MACvByB,UAAU,EAAGA,CAAA,KAAM;QAClBd,cAAc,CAAE,KAAM,CAAC;MACxB,CAAG;MACHF,MAAM,EAAGA,MAAQ;MACjBiB,QAAQ,EAAGT;IAAW,CACtB,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["useDispatch","useSelect","store","blockEditorStore","MenuItem","createBlock","__","useState","noticesStore","symbolFilled","coreStore","CreateTemplatePartModal","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ConvertToTemplatePart","clientIds","blocks","isModalOpen","setIsModalOpen","replaceBlocks","createSuccessNotice","isBlockBasedTheme","canCreate","select","getCurrentTheme","is_block_theme","canInsertBlockType","onConvert","templatePart","slug","theme","type","children","icon","onClick","closeModal","onCreate"],"sources":["@wordpress/editor/src/components/template-part-menu-items/convert-to-template-part.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { MenuItem } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { symbolFilled } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { CreateTemplatePartModal } from '@wordpress/fields';\n\nexport default function ConvertToTemplatePart( { clientIds, blocks } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { isBlockBasedTheme, canCreate } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tisBlockBasedTheme:\n\t\t\t\tselect( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t\tcanCreate:\n\t\t\t\tselect( blockEditorStore ).canInsertBlockType(\n\t\t\t\t\t'core/template-part'\n\t\t\t\t),\n\t\t};\n\t}, [] );\n\n\tif ( ! isBlockBasedTheme || ! canCreate ) {\n\t\treturn null;\n\t}\n\n\tconst onConvert = async ( templatePart ) => {\n\t\treplaceBlocks(\n\t\t\tclientIds,\n\t\t\tcreateBlock( 'core/template-part', {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t} )\n\t\t);\n\t\tcreateSuccessNotice( __( 'Template part created.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\n\t\t// The modal and this component will be unmounted because of `replaceBlocks` above,\n\t\t// so no need to call `closeModal` or `onClose`.\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbolFilled }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create template part' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonCreate={ onConvert }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASL,KAAK,IAAIM,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASP,KAAK,IAAIQ,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5D,eAAe,SAASC,qBAAqBA,CAAE;EAAEC,SAAS;EAAEC;AAAO,CAAC,EAAG;EACtE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGf,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM;IAAEgB;EAAc,CAAC,GAAGvB,WAAW,CAAEG,gBAAiB,CAAC;EACzD,MAAM;IAAEqB;EAAoB,CAAC,GAAGxB,WAAW,CAAEQ,YAAa,CAAC;EAE3D,MAAM;IAAEiB,iBAAiB;IAAEC;EAAU,CAAC,GAAGzB,SAAS,CAAI0B,MAAM,IAAM;IACjE,OAAO;MACNF,iBAAiB,EAChBE,MAAM,CAAEjB,SAAU,CAAC,CAACkB,eAAe,CAAC,CAAC,EAAEC,cAAc;MACtDH,SAAS,EACRC,MAAM,CAAExB,gBAAiB,CAAC,CAAC2B,kBAAkB,CAC5C,oBACD;IACF,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEL,iBAAiB,IAAI,CAAEC,SAAS,EAAG;IACzC,OAAO,IAAI;EACZ;EAEA,MAAMK,SAAS,GAAG,MAAQC,YAAY,IAAM;IAC3CT,aAAa,CACZJ,SAAS,EACTd,WAAW,CAAE,oBAAoB,EAAE;MAClC4B,IAAI,EAAED,YAAY,CAACC,IAAI;MACvBC,KAAK,EAAEF,YAAY,CAACE;IACrB,CAAE,CACH,CAAC;IACDV,mBAAmB,CAAElB,EAAE,CAAE,wBAAyB,CAAC,EAAE;MACpD6B,IAAI,EAAE;IACP,CAAE,CAAC;;IAEH;IACA;EACD,CAAC;EAED,oBACClB,KAAA,CAAAF,SAAA;IAAAqB,QAAA,gBACCvB,IAAA,CAACT,QAAQ;MACRiC,IAAI,EAAG5B,YAAc;MACrB6B,OAAO,EAAGA,CAAA,KAAM;QACfhB,cAAc,CAAE,IAAK,CAAC;MACvB,CAAG;MACH,iBAAgBD,WAAa;MAC7B,iBAAc,QAAQ;MAAAe,QAAA,EAEpB9B,EAAE,CAAE,sBAAuB;IAAC,CACrB,CAAC,EACTe,WAAW,iBACZR,IAAA,CAACF,uBAAuB;MACvB4B,UAAU,EAAGA,CAAA,KAAM;QAClBjB,cAAc,CAAE,KAAM,CAAC;MACxB,CAAG;MACHF,MAAM,EAAGA,MAAQ;MACjBoB,QAAQ,EAAGT;IAAW,CACtB,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
@@ -282,8 +282,7 @@ function VisualEditor({
282
282
  'edit-post-visual-editor', className, {
283
283
  'has-padding': isFocusedEntity || enableResizing,
284
284
  'is-resizable': enableResizing,
285
- 'is-iframed': !disableIframe,
286
- 'is-scrollable': disableIframe || deviceType !== 'Desktop'
285
+ 'is-iframed': !disableIframe
287
286
  }),
288
287
  children: /*#__PURE__*/_jsx(ResizableEditor, {
289
288
  enableResizing: enableResizing,