@wordpress/editor 14.10.0 → 14.11.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 +6 -0
- package/README.md +2 -2
- package/build/bindings/post-meta.js +2 -1
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/collab-sidebar/add-comment.js +120 -0
- package/build/components/collab-sidebar/add-comment.js.map +1 -0
- package/build/components/collab-sidebar/comment-button-toolbar.js +37 -0
- package/build/components/collab-sidebar/comment-button-toolbar.js.map +1 -0
- package/build/components/collab-sidebar/comment-button.js +37 -0
- package/build/components/collab-sidebar/comment-button.js.map +1 -0
- package/build/components/collab-sidebar/comments.js +321 -0
- package/build/components/collab-sidebar/comments.js.map +1 -0
- package/build/components/collab-sidebar/constants.js +8 -0
- package/build/components/collab-sidebar/constants.js.map +1 -0
- package/build/components/collab-sidebar/index.js +272 -0
- package/build/components/collab-sidebar/index.js.map +1 -0
- package/build/components/collab-sidebar/utils.js +16 -0
- package/build/components/collab-sidebar/utils.js.map +1 -0
- package/build/components/commands/index.js +6 -6
- package/build/components/commands/index.js.map +1 -1
- package/build/components/document-bar/index.js +8 -7
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/document-tools/index.js +1 -5
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-interface/index.js +3 -2
- package/build/components/editor-interface/index.js.map +1 -1
- package/build/components/entities-saved-states/index.js +1 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/global-styles-provider/index.js +13 -3
- package/build/components/global-styles-provider/index.js.map +1 -1
- package/build/components/header/index.js +5 -2
- package/build/components/header/index.js.map +1 -1
- package/build/components/inserter-sidebar/index.js +2 -2
- package/build/components/inserter-sidebar/index.js.map +1 -1
- package/build/components/page-attributes/parent.js +5 -5
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/plugin-more-menu-item/index.js +13 -11
- package/build/components/plugin-more-menu-item/index.js.map +1 -1
- package/build/components/plugin-preview-menu-item/index.js +15 -13
- package/build/components/plugin-preview-menu-item/index.js.map +1 -1
- package/build/components/plugin-sidebar/index.js +0 -15
- package/build/components/plugin-sidebar/index.js.map +1 -1
- package/build/components/post-actions/index.js +5 -5
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-author/panel.js +4 -4
- package/build/components/post-author/panel.js.map +1 -1
- package/build/components/post-card-panel/index.js +7 -36
- package/build/components/post-card-panel/index.js.map +1 -1
- package/build/components/post-content-information/index.js +1 -2
- package/build/components/post-content-information/index.js.map +1 -1
- package/build/components/post-featured-image/index.js +26 -7
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-last-revision/index.js +1 -1
- package/build/components/post-last-revision/index.js.map +1 -1
- package/build/components/post-schedule/label.js +1 -1
- package/build/components/post-schedule/label.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +9 -1
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-url/index.js +1 -1
- package/build/components/post-url/index.js.map +1 -1
- package/build/components/post-url/panel.js +3 -3
- package/build/components/post-url/panel.js.map +1 -1
- package/build/components/preview-dropdown/index.js +0 -4
- package/build/components/preview-dropdown/index.js.map +1 -1
- package/build/components/provider/index.js +10 -12
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +1 -1
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/sidebar/header.js +2 -1
- package/build/components/sidebar/header.js.map +1 -1
- package/build/components/sidebar/index.js +3 -3
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/time-to-read/index.js +2 -2
- package/build/components/time-to-read/index.js.map +1 -1
- package/build/components/visual-editor/index.js +25 -27
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/components/visual-editor/use-zoom-out-mode-exit.js +52 -0
- package/build/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -0
- package/build/components/zoom-out-toggle/index.js +37 -5
- package/build/components/zoom-out-toggle/index.js.map +1 -1
- package/build/dataviews/actions/duplicate-template-part.js +2 -2
- package/build/dataviews/actions/duplicate-template-part.js.map +1 -1
- package/build/store/actions.js +4 -3
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +2 -2
- package/build/store/private-actions.js.map +1 -1
- package/build/store/selectors.js +3 -2
- package/build/store/selectors.js.map +1 -1
- package/build/utils/pageTypeBadge.js +51 -0
- package/build/utils/pageTypeBadge.js.map +1 -0
- package/build/utils/terms.js +2 -2
- package/build/utils/terms.js.map +1 -1
- package/build-module/bindings/post-meta.js +2 -1
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/collab-sidebar/add-comment.js +114 -0
- package/build-module/components/collab-sidebar/add-comment.js.map +1 -0
- package/build-module/components/collab-sidebar/comment-button-toolbar.js +30 -0
- package/build-module/components/collab-sidebar/comment-button-toolbar.js.map +1 -0
- package/build-module/components/collab-sidebar/comment-button.js +30 -0
- package/build-module/components/collab-sidebar/comment-button.js.map +1 -0
- package/build-module/components/collab-sidebar/comments.js +314 -0
- package/build-module/components/collab-sidebar/comments.js.map +1 -0
- package/build-module/components/collab-sidebar/constants.js +2 -0
- package/build-module/components/collab-sidebar/constants.js.map +1 -0
- package/build-module/components/collab-sidebar/index.js +264 -0
- package/build-module/components/collab-sidebar/index.js.map +1 -0
- package/build-module/components/collab-sidebar/utils.js +10 -0
- package/build-module/components/collab-sidebar/utils.js.map +1 -0
- package/build-module/components/commands/index.js +6 -6
- package/build-module/components/commands/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +9 -8
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +2 -6
- package/build-module/components/document-tools/index.js.map +1 -1
- package/build-module/components/editor-interface/index.js +3 -2
- package/build-module/components/editor-interface/index.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +1 -1
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/global-styles-provider/index.js +13 -3
- package/build-module/components/global-styles-provider/index.js.map +1 -1
- package/build-module/components/header/index.js +5 -2
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/inserter-sidebar/index.js +2 -2
- package/build-module/components/inserter-sidebar/index.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +5 -5
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/plugin-more-menu-item/index.js +12 -10
- package/build-module/components/plugin-more-menu-item/index.js.map +1 -1
- package/build-module/components/plugin-preview-menu-item/index.js +14 -12
- package/build-module/components/plugin-preview-menu-item/index.js.map +1 -1
- package/build-module/components/plugin-sidebar/index.js +0 -15
- package/build-module/components/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/post-actions/index.js +5 -5
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-author/panel.js +4 -4
- package/build-module/components/post-author/panel.js.map +1 -1
- package/build-module/components/post-card-panel/index.js +8 -36
- package/build-module/components/post-card-panel/index.js.map +1 -1
- package/build-module/components/post-content-information/index.js +1 -2
- package/build-module/components/post-content-information/index.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +26 -7
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-last-revision/index.js +1 -1
- package/build-module/components/post-last-revision/index.js.map +1 -1
- package/build-module/components/post-schedule/label.js +1 -1
- package/build-module/components/post-schedule/label.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +12 -4
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-url/index.js +1 -1
- package/build-module/components/post-url/index.js.map +1 -1
- package/build-module/components/post-url/panel.js +3 -3
- package/build-module/components/post-url/panel.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +0 -4
- package/build-module/components/preview-dropdown/index.js.map +1 -1
- package/build-module/components/provider/index.js +10 -12
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +1 -1
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/sidebar/header.js +2 -1
- package/build-module/components/sidebar/header.js.map +1 -1
- package/build-module/components/sidebar/index.js +4 -4
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/time-to-read/index.js +2 -2
- package/build-module/components/time-to-read/index.js.map +1 -1
- package/build-module/components/visual-editor/index.js +26 -28
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/components/visual-editor/use-zoom-out-mode-exit.js +46 -0
- package/build-module/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -0
- package/build-module/components/zoom-out-toggle/index.js +37 -5
- package/build-module/components/zoom-out-toggle/index.js.map +1 -1
- package/build-module/dataviews/actions/duplicate-template-part.js +3 -3
- package/build-module/dataviews/actions/duplicate-template-part.js.map +1 -1
- package/build-module/store/actions.js +4 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +3 -3
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +3 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/pageTypeBadge.js +45 -0
- package/build-module/utils/pageTypeBadge.js.map +1 -0
- package/build-module/utils/terms.js +2 -2
- package/build-module/utils/terms.js.map +1 -1
- package/build-style/style-rtl.css +96 -54
- package/build-style/style.css +96 -54
- package/build-types/bindings/post-meta.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/add-comment.d.ts +15 -0
- package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comment-button-toolbar.d.ts +5 -0
- package/build-types/components/collab-sidebar/comment-button-toolbar.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comment-button.d.ts +5 -0
- package/build-types/components/collab-sidebar/comment-button.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comments.d.ts +19 -0
- package/build-types/components/collab-sidebar/comments.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/constants.d.ts +2 -0
- package/build-types/components/collab-sidebar/constants.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/index.d.ts +5 -0
- package/build-types/components/collab-sidebar/index.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/utils.d.ts +8 -0
- package/build-types/components/collab-sidebar/utils.d.ts.map +1 -0
- package/build-types/components/commands/index.d.ts.map +1 -1
- package/build-types/components/document-bar/index.d.ts.map +1 -1
- package/build-types/components/document-tools/index.d.ts.map +1 -1
- package/build-types/components/editor-interface/index.d.ts.map +1 -1
- package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
- package/build-types/components/header/index.d.ts.map +1 -1
- package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/plugin-more-menu-item/index.d.ts +62 -2
- package/build-types/components/plugin-more-menu-item/index.d.ts.map +1 -1
- package/build-types/components/plugin-preview-menu-item/index.d.ts +41 -2
- package/build-types/components/plugin-preview-menu-item/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
- package/build-types/components/post-author/panel.d.ts.map +1 -1
- package/build-types/components/post-card-panel/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
- package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
- package/build-types/components/provider/index.d.ts.map +1 -1
- package/build-types/components/sidebar/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts +5 -0
- package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts.map +1 -0
- package/build-types/components/zoom-out-toggle/index.d.ts +3 -1
- package/build-types/components/zoom-out-toggle/index.d.ts.map +1 -1
- package/build-types/store/actions.d.ts.map +1 -1
- package/build-types/store/selectors.d.ts.map +1 -1
- package/build-types/utils/pageTypeBadge.d.ts +5 -0
- package/build-types/utils/pageTypeBadge.d.ts.map +1 -0
- package/build-types/utils/terms.d.ts.map +1 -1
- package/package.json +38 -37
- package/src/bindings/post-meta.js +1 -0
- package/src/components/collab-sidebar/add-comment.js +124 -0
- package/src/components/collab-sidebar/comment-button-toolbar.js +29 -0
- package/src/components/collab-sidebar/comment-button.js +31 -0
- package/src/components/collab-sidebar/comments.js +404 -0
- package/src/components/collab-sidebar/constants.js +1 -0
- package/src/components/collab-sidebar/index.js +307 -0
- package/src/components/collab-sidebar/style.scss +111 -0
- package/src/components/collab-sidebar/utils.js +9 -0
- package/src/components/commands/index.js +9 -7
- package/src/components/document-bar/index.js +15 -7
- package/src/components/document-bar/style.scss +0 -4
- package/src/components/document-tools/index.js +1 -7
- package/src/components/editor-interface/index.js +4 -3
- package/src/components/entities-saved-states/index.js +2 -2
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
- package/src/components/global-styles-provider/index.js +20 -6
- package/src/components/header/index.js +3 -1
- package/src/components/inserter-sidebar/index.js +3 -6
- package/src/components/page-attributes/parent.js +6 -4
- package/src/components/plugin-more-menu-item/index.js +12 -11
- package/src/components/plugin-preview-menu-item/index.js +14 -13
- package/src/components/plugin-sidebar/index.js +0 -13
- package/src/components/post-actions/index.js +8 -11
- package/src/components/post-author/panel.js +4 -2
- package/src/components/post-card-panel/index.js +9 -43
- package/src/components/post-card-panel/style.scss +1 -9
- package/src/components/post-content-information/index.js +1 -1
- package/src/components/post-featured-image/index.js +31 -16
- package/src/components/post-featured-image/style.scss +5 -2
- package/src/components/post-last-revision/index.js +1 -1
- package/src/components/post-schedule/label.js +1 -1
- package/src/components/post-sticky/test/index.js +6 -6
- package/src/components/post-taxonomies/flat-term-selector.js +15 -4
- package/src/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/src/components/post-url/index.js +1 -1
- package/src/components/post-url/panel.js +4 -2
- package/src/components/preview-dropdown/index.js +0 -2
- package/src/components/provider/index.js +31 -24
- package/src/components/provider/use-block-editor-settings.js +1 -1
- package/src/components/sidebar/header.js +3 -2
- package/src/components/sidebar/index.js +5 -3
- package/src/components/time-to-read/index.js +3 -3
- package/src/components/visual-editor/index.js +32 -41
- package/src/components/visual-editor/use-zoom-out-mode-exit.js +49 -0
- package/src/components/zoom-out-toggle/index.js +39 -5
- package/src/dataviews/actions/duplicate-template-part.tsx +3 -3
- package/src/store/actions.js +5 -3
- package/src/store/private-actions.js +3 -3
- package/src/store/selectors.js +3 -2
- package/src/style.scss +1 -0
- package/src/utils/pageTypeBadge.js +41 -0
- package/src/utils/terms.js +4 -2
- package/src/utils/test/terms.js +3 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
privateApis as blockEditorPrivateApis,
|
|
17
17
|
__experimentalUseResizeCanvas as useResizeCanvas,
|
|
18
18
|
} from '@wordpress/block-editor';
|
|
19
|
-
import { useEffect, useRef, useMemo } from '@wordpress/element';
|
|
19
|
+
import { useEffect, useRef, useMemo, useState } from '@wordpress/element';
|
|
20
20
|
import { useSelect } from '@wordpress/data';
|
|
21
21
|
import { parse } from '@wordpress/blocks';
|
|
22
22
|
import { store as coreStore } from '@wordpress/core-data';
|
|
@@ -41,6 +41,7 @@ import {
|
|
|
41
41
|
TEMPLATE_PART_POST_TYPE,
|
|
42
42
|
TEMPLATE_POST_TYPE,
|
|
43
43
|
} from '../../store/constants';
|
|
44
|
+
import { useZoomOutModeExit } from './use-zoom-out-mode-exit';
|
|
44
45
|
|
|
45
46
|
const {
|
|
46
47
|
LayoutStyle,
|
|
@@ -48,7 +49,6 @@ const {
|
|
|
48
49
|
useLayoutStyles,
|
|
49
50
|
ExperimentalBlockCanvas: BlockCanvas,
|
|
50
51
|
useFlashEditableBlocks,
|
|
51
|
-
useZoomOutModeExit,
|
|
52
52
|
} = unlock( blockEditorPrivateApis );
|
|
53
53
|
|
|
54
54
|
/**
|
|
@@ -106,9 +106,11 @@ function VisualEditor( {
|
|
|
106
106
|
contentRef,
|
|
107
107
|
className,
|
|
108
108
|
} ) {
|
|
109
|
-
const [
|
|
109
|
+
const [ contentHeight, setContentHeight ] = useState( '' );
|
|
110
|
+
const effectContentHeight = useResizeObserver( ( [ entry ] ) => {
|
|
111
|
+
setContentHeight( entry.borderBoxSize[ 0 ].blockSize );
|
|
112
|
+
} );
|
|
110
113
|
const isMobileViewport = useViewportMatch( 'small', '<' );
|
|
111
|
-
const isTabletViewport = useViewportMatch( 'medium', '<' );
|
|
112
114
|
const {
|
|
113
115
|
renderingMode,
|
|
114
116
|
postContentAttributes,
|
|
@@ -167,7 +169,7 @@ function VisualEditor( {
|
|
|
167
169
|
deviceType: getDeviceType(),
|
|
168
170
|
isFocusedEntity: !! editorSettings.onNavigateToPreviousEntityRecord,
|
|
169
171
|
postType: postTypeSlug,
|
|
170
|
-
isPreview: editorSettings.
|
|
172
|
+
isPreview: editorSettings.isPreviewMode,
|
|
171
173
|
};
|
|
172
174
|
}, [] );
|
|
173
175
|
const { isCleanNewPost } = useSelect( editorStore );
|
|
@@ -324,29 +326,6 @@ function VisualEditor( {
|
|
|
324
326
|
.is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}
|
|
325
327
|
.is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;
|
|
326
328
|
|
|
327
|
-
const localRef = useRef();
|
|
328
|
-
const typewriterRef = useTypewriter();
|
|
329
|
-
contentRef = useMergeRefs( [
|
|
330
|
-
localRef,
|
|
331
|
-
contentRef,
|
|
332
|
-
renderingMode === 'post-only' ? typewriterRef : null,
|
|
333
|
-
useFlashEditableBlocks( {
|
|
334
|
-
isEnabled: renderingMode === 'template-locked',
|
|
335
|
-
} ),
|
|
336
|
-
useSelectNearestEditableBlock( {
|
|
337
|
-
isEnabled: renderingMode === 'template-locked',
|
|
338
|
-
} ),
|
|
339
|
-
useZoomOutModeExit(),
|
|
340
|
-
] );
|
|
341
|
-
|
|
342
|
-
const zoomOutProps =
|
|
343
|
-
isZoomedOut && ! isTabletViewport
|
|
344
|
-
? {
|
|
345
|
-
scale: 'default',
|
|
346
|
-
frameSize: '40px',
|
|
347
|
-
}
|
|
348
|
-
: {};
|
|
349
|
-
|
|
350
329
|
const forceFullHeight = postType === NAVIGATION_POST_TYPE;
|
|
351
330
|
const enableResizing =
|
|
352
331
|
[
|
|
@@ -360,14 +339,15 @@ function VisualEditor( {
|
|
|
360
339
|
! isMobileViewport &&
|
|
361
340
|
// Dsiable resizing in zoomed-out mode.
|
|
362
341
|
! isZoomedOut;
|
|
363
|
-
const shouldIframe =
|
|
364
|
-
! disableIframe || [ 'Tablet', 'Mobile' ].includes( deviceType );
|
|
365
342
|
|
|
366
343
|
const iframeStyles = useMemo( () => {
|
|
367
344
|
return [
|
|
368
345
|
...( styles ?? [] ),
|
|
369
346
|
{
|
|
370
|
-
|
|
347
|
+
// Ensures margins of children are contained so that the body background paints behind them.
|
|
348
|
+
// Otherwise, the background of html (when zoomed out) would show there and appear broken. It’s
|
|
349
|
+
// important mostly for post-only views yet conceivably an issue in templated views too.
|
|
350
|
+
css: `:where(.block-editor-iframe__body){display:flow-root;}.is-root-container{display:flow-root;${
|
|
371
351
|
// Some themes will have `min-height: 100vh` for the root container,
|
|
372
352
|
// which isn't a requirement in auto resize mode.
|
|
373
353
|
enableResizing ? 'min-height:0!important;' : ''
|
|
@@ -376,6 +356,24 @@ function VisualEditor( {
|
|
|
376
356
|
];
|
|
377
357
|
}, [ styles, enableResizing ] );
|
|
378
358
|
|
|
359
|
+
const localRef = useRef();
|
|
360
|
+
const typewriterRef = useTypewriter();
|
|
361
|
+
contentRef = useMergeRefs( [
|
|
362
|
+
localRef,
|
|
363
|
+
contentRef,
|
|
364
|
+
renderingMode === 'post-only' ? typewriterRef : null,
|
|
365
|
+
useFlashEditableBlocks( {
|
|
366
|
+
isEnabled: renderingMode === 'template-locked',
|
|
367
|
+
} ),
|
|
368
|
+
useSelectNearestEditableBlock( {
|
|
369
|
+
isEnabled: renderingMode === 'template-locked',
|
|
370
|
+
} ),
|
|
371
|
+
useZoomOutModeExit(),
|
|
372
|
+
// Avoid resize listeners when not needed, these will trigger
|
|
373
|
+
// unnecessary re-renders when animating the iframe width.
|
|
374
|
+
enableResizing ? effectContentHeight : null,
|
|
375
|
+
] );
|
|
376
|
+
|
|
379
377
|
return (
|
|
380
378
|
<div
|
|
381
379
|
className={ clsx(
|
|
@@ -386,24 +384,23 @@ function VisualEditor( {
|
|
|
386
384
|
{
|
|
387
385
|
'has-padding': isFocusedEntity || enableResizing,
|
|
388
386
|
'is-resizable': enableResizing,
|
|
389
|
-
'is-iframed':
|
|
387
|
+
'is-iframed': ! disableIframe,
|
|
390
388
|
}
|
|
391
389
|
) }
|
|
392
390
|
>
|
|
393
391
|
<ResizableEditor
|
|
394
392
|
enableResizing={ enableResizing }
|
|
395
393
|
height={
|
|
396
|
-
|
|
394
|
+
contentHeight && ! forceFullHeight ? contentHeight : '100%'
|
|
397
395
|
}
|
|
398
396
|
>
|
|
399
397
|
<BlockCanvas
|
|
400
|
-
shouldIframe={
|
|
398
|
+
shouldIframe={ ! disableIframe }
|
|
401
399
|
contentRef={ contentRef }
|
|
402
400
|
styles={ iframeStyles }
|
|
403
401
|
height="100%"
|
|
404
402
|
iframeProps={ {
|
|
405
403
|
...iframeProps,
|
|
406
|
-
...zoomOutProps,
|
|
407
404
|
style: {
|
|
408
405
|
...iframeProps?.style,
|
|
409
406
|
...deviceStyles,
|
|
@@ -488,12 +485,6 @@ function VisualEditor( {
|
|
|
488
485
|
/>
|
|
489
486
|
) }
|
|
490
487
|
</RecursionProvider>
|
|
491
|
-
{
|
|
492
|
-
// Avoid resize listeners when not needed,
|
|
493
|
-
// these will trigger unnecessary re-renders
|
|
494
|
-
// when animating the iframe width.
|
|
495
|
-
enableResizing && resizeObserver
|
|
496
|
-
}
|
|
497
488
|
</BlockCanvas>
|
|
498
489
|
</ResizableEditor>
|
|
499
490
|
</div>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
|
+
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { unlock } from '../../lock-unlock';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Allows Zoom Out mode to be exited by double clicking in the selected block.
|
|
15
|
+
*/
|
|
16
|
+
export function useZoomOutModeExit() {
|
|
17
|
+
const { getSettings, isZoomOut } = unlock( useSelect( blockEditorStore ) );
|
|
18
|
+
const { resetZoomLevel } = unlock( useDispatch( blockEditorStore ) );
|
|
19
|
+
|
|
20
|
+
return useRefEffect(
|
|
21
|
+
( node ) => {
|
|
22
|
+
function onDoubleClick( event ) {
|
|
23
|
+
if ( ! isZoomOut() ) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if ( ! event.defaultPrevented ) {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
|
|
30
|
+
const { __experimentalSetIsInserterOpened } = getSettings();
|
|
31
|
+
|
|
32
|
+
if (
|
|
33
|
+
typeof __experimentalSetIsInserterOpened === 'function'
|
|
34
|
+
) {
|
|
35
|
+
__experimentalSetIsInserterOpened( false );
|
|
36
|
+
}
|
|
37
|
+
resetZoomLevel();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
node.addEventListener( 'dblclick', onDoubleClick );
|
|
42
|
+
|
|
43
|
+
return () => {
|
|
44
|
+
node.removeEventListener( 'dblclick', onDoubleClick );
|
|
45
|
+
};
|
|
46
|
+
},
|
|
47
|
+
[ getSettings, isZoomOut, resetZoomLevel ]
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -3,18 +3,23 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Button } from '@wordpress/components';
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
|
-
|
|
6
|
+
import { useEffect } from '@wordpress/element';
|
|
7
7
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
8
8
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
9
9
|
import { square as zoomOutIcon } from '@wordpress/icons';
|
|
10
10
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
11
|
+
import {
|
|
12
|
+
useShortcut,
|
|
13
|
+
store as keyboardShortcutsStore,
|
|
14
|
+
} from '@wordpress/keyboard-shortcuts';
|
|
15
|
+
import { isAppleOS } from '@wordpress/keycodes';
|
|
11
16
|
|
|
12
17
|
/**
|
|
13
18
|
* Internal dependencies
|
|
14
19
|
*/
|
|
15
20
|
import { unlock } from '../../lock-unlock';
|
|
16
21
|
|
|
17
|
-
const ZoomOutToggle = () => {
|
|
22
|
+
const ZoomOutToggle = ( { disabled } ) => {
|
|
18
23
|
const { isZoomOut, showIconLabels } = useSelect( ( select ) => ( {
|
|
19
24
|
isZoomOut: unlock( select( blockEditorStore ) ).isZoomOut(),
|
|
20
25
|
showIconLabels: select( preferencesStore ).get(
|
|
@@ -23,21 +28,50 @@ const ZoomOutToggle = () => {
|
|
|
23
28
|
),
|
|
24
29
|
} ) );
|
|
25
30
|
|
|
26
|
-
const { resetZoomLevel, setZoomLevel
|
|
31
|
+
const { resetZoomLevel, setZoomLevel } = unlock(
|
|
27
32
|
useDispatch( blockEditorStore )
|
|
28
33
|
);
|
|
34
|
+
const { registerShortcut, unregisterShortcut } = useDispatch(
|
|
35
|
+
keyboardShortcutsStore
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
useEffect( () => {
|
|
39
|
+
registerShortcut( {
|
|
40
|
+
name: 'core/editor/zoom',
|
|
41
|
+
category: 'global',
|
|
42
|
+
description: __( 'Enter or exit zoom out.' ),
|
|
43
|
+
keyCombination: {
|
|
44
|
+
// `primaryShift+0` (`ctrl+shift+0`) is the shortcut for switching
|
|
45
|
+
// to input mode in Windows, so apply a different key combination.
|
|
46
|
+
modifier: isAppleOS() ? 'primaryShift' : 'secondary',
|
|
47
|
+
character: '0',
|
|
48
|
+
},
|
|
49
|
+
} );
|
|
50
|
+
return () => {
|
|
51
|
+
unregisterShortcut( 'core/editor/zoom' );
|
|
52
|
+
};
|
|
53
|
+
}, [ registerShortcut, unregisterShortcut ] );
|
|
54
|
+
|
|
55
|
+
useShortcut( 'core/editor/zoom', () => {
|
|
56
|
+
if ( isZoomOut ) {
|
|
57
|
+
resetZoomLevel();
|
|
58
|
+
} else {
|
|
59
|
+
setZoomLevel( 'auto-scaled' );
|
|
60
|
+
}
|
|
61
|
+
} );
|
|
29
62
|
|
|
30
63
|
const handleZoomOut = () => {
|
|
31
64
|
if ( isZoomOut ) {
|
|
32
65
|
resetZoomLevel();
|
|
33
66
|
} else {
|
|
34
|
-
setZoomLevel(
|
|
67
|
+
setZoomLevel( 'auto-scaled' );
|
|
35
68
|
}
|
|
36
|
-
__unstableSetEditorMode( isZoomOut ? 'edit' : 'zoom-out' );
|
|
37
69
|
};
|
|
38
70
|
|
|
39
71
|
return (
|
|
40
72
|
<Button
|
|
73
|
+
accessibleWhenDisabled
|
|
74
|
+
disabled={ disabled }
|
|
41
75
|
onClick={ handleZoomOut }
|
|
42
76
|
icon={ zoomOutIcon }
|
|
43
77
|
label={ __( 'Zoom Out' ) }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useDispatch } from '@wordpress/data';
|
|
5
|
-
import {
|
|
5
|
+
import { _x, sprintf } from '@wordpress/i18n';
|
|
6
6
|
import { store as noticesStore } from '@wordpress/notices';
|
|
7
7
|
import { useMemo } from '@wordpress/element';
|
|
8
8
|
// @ts-ignore
|
|
@@ -42,7 +42,7 @@ const duplicateTemplatePart: Action< TemplatePart > = {
|
|
|
42
42
|
createSuccessNotice(
|
|
43
43
|
sprintf(
|
|
44
44
|
// translators: %s: The new template part's title e.g. 'Call to action (copy)'.
|
|
45
|
-
|
|
45
|
+
_x( '"%s" duplicated.', 'template part' ),
|
|
46
46
|
getItemTitle( item )
|
|
47
47
|
),
|
|
48
48
|
{ type: 'snackbar', id: 'edit-site-patterns-success' }
|
|
@@ -55,7 +55,7 @@ const duplicateTemplatePart: Action< TemplatePart > = {
|
|
|
55
55
|
defaultArea={ item.area }
|
|
56
56
|
defaultTitle={ sprintf(
|
|
57
57
|
/* translators: %s: Existing template part title */
|
|
58
|
-
|
|
58
|
+
_x( '%s (Copy)', 'template part' ),
|
|
59
59
|
getItemTitle( item )
|
|
60
60
|
) }
|
|
61
61
|
onCreate={ onTemplatePartSuccess }
|
package/src/store/actions.js
CHANGED
|
@@ -841,8 +841,8 @@ export const toggleDistractionFree =
|
|
|
841
841
|
.dispatch( noticesStore )
|
|
842
842
|
.createInfoNotice(
|
|
843
843
|
isDistractionFree
|
|
844
|
-
? __( 'Distraction free
|
|
845
|
-
: __( 'Distraction free
|
|
844
|
+
? __( 'Distraction free mode deactivated.' )
|
|
845
|
+
: __( 'Distraction free mode activated.' ),
|
|
846
846
|
{
|
|
847
847
|
id: 'core/editor/distraction-free-mode/notice',
|
|
848
848
|
type: 'snackbar',
|
|
@@ -883,9 +883,11 @@ export const switchEditorMode =
|
|
|
883
883
|
( { dispatch, registry } ) => {
|
|
884
884
|
registry.dispatch( preferencesStore ).set( 'core', 'editorMode', mode );
|
|
885
885
|
|
|
886
|
-
// Unselect blocks when we switch to a non visual mode.
|
|
887
886
|
if ( mode !== 'visual' ) {
|
|
887
|
+
// Unselect blocks when we switch to a non visual mode.
|
|
888
888
|
registry.dispatch( blockEditorStore ).clearSelectedBlock();
|
|
889
|
+
// Exit zoom out state when switching to a non visual mode.
|
|
890
|
+
unlock( registry.dispatch( blockEditorStore ) ).resetZoomLevel();
|
|
889
891
|
}
|
|
890
892
|
|
|
891
893
|
if ( mode === 'visual' ) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { store as coreStore } from '@wordpress/core-data';
|
|
5
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
5
|
+
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
6
6
|
import { store as noticesStore } from '@wordpress/notices';
|
|
7
7
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
8
8
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
@@ -410,8 +410,8 @@ export const removeTemplates =
|
|
|
410
410
|
decodeEntities( title )
|
|
411
411
|
)
|
|
412
412
|
: sprintf(
|
|
413
|
-
/* translators: The template/part's name. */
|
|
414
|
-
|
|
413
|
+
/* translators: %s: The template/part's name. */
|
|
414
|
+
_x( '"%s" deleted.', 'template part' ),
|
|
415
415
|
decodeEntities( title )
|
|
416
416
|
);
|
|
417
417
|
} else {
|
package/src/store/selectors.js
CHANGED
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
} from './constants';
|
|
29
29
|
import { getPostRawValue } from './reducer';
|
|
30
30
|
import { getTemplatePartIcon } from '../utils/get-template-part-icon';
|
|
31
|
+
import { unlock } from '../lock-unlock';
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
34
|
* Shared reference to an empty object for cases where it is important to avoid
|
|
@@ -1299,8 +1300,8 @@ export function getRenderingMode( state ) {
|
|
|
1299
1300
|
*/
|
|
1300
1301
|
export const getDeviceType = createRegistrySelector(
|
|
1301
1302
|
( select ) => ( state ) => {
|
|
1302
|
-
const
|
|
1303
|
-
if (
|
|
1303
|
+
const isZoomOut = unlock( select( blockEditorStore ) ).isZoomOut();
|
|
1304
|
+
if ( isZoomOut ) {
|
|
1304
1305
|
return 'Desktop';
|
|
1305
1306
|
}
|
|
1306
1307
|
return state.deviceType;
|
package/src/style.scss
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
@import "./components/autocompleters/style.scss";
|
|
4
4
|
@import "./components/block-manager/style.scss";
|
|
5
|
+
@import "./components/collab-sidebar/style.scss";
|
|
5
6
|
@import "./components/collapsible-block-toolbar/style.scss";
|
|
6
7
|
@import "./components/create-template-part-modal/style.scss";
|
|
7
8
|
@import "./components/block-settings-menu/style.scss";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { store as editorStore } from '../store';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Custom hook to get the page type badge for the current post on edit site view.
|
|
15
|
+
*/
|
|
16
|
+
export default function usePageTypeBadge() {
|
|
17
|
+
const { isFrontPage, isPostsPage } = useSelect( ( select ) => {
|
|
18
|
+
const { getCurrentPostId } = select( editorStore );
|
|
19
|
+
const { canUser, getEditedEntityRecord } = select( coreStore );
|
|
20
|
+
const postId = getCurrentPostId();
|
|
21
|
+
const siteSettings = canUser( 'read', {
|
|
22
|
+
kind: 'root',
|
|
23
|
+
name: 'site',
|
|
24
|
+
} )
|
|
25
|
+
? getEditedEntityRecord( 'root', 'site' )
|
|
26
|
+
: undefined;
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
isFrontPage: siteSettings?.page_on_front === postId,
|
|
30
|
+
isPostsPage: siteSettings?.page_for_posts === postId,
|
|
31
|
+
};
|
|
32
|
+
} );
|
|
33
|
+
|
|
34
|
+
if ( isFrontPage ) {
|
|
35
|
+
return __( 'Homepage' );
|
|
36
|
+
} else if ( isPostsPage ) {
|
|
37
|
+
return __( 'Posts Page' );
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return false;
|
|
41
|
+
}
|
package/src/utils/terms.js
CHANGED
|
@@ -14,14 +14,16 @@ export function buildTermsTree( flatTerms ) {
|
|
|
14
14
|
const flatTermsWithParentAndChildren = flatTerms.map( ( term ) => {
|
|
15
15
|
return {
|
|
16
16
|
children: [],
|
|
17
|
-
parent:
|
|
17
|
+
parent: undefined,
|
|
18
18
|
...term,
|
|
19
19
|
};
|
|
20
20
|
} );
|
|
21
21
|
|
|
22
22
|
// All terms should have a `parent` because we're about to index them by it.
|
|
23
23
|
if (
|
|
24
|
-
flatTermsWithParentAndChildren.some(
|
|
24
|
+
flatTermsWithParentAndChildren.some(
|
|
25
|
+
( { parent } ) => parent === undefined
|
|
26
|
+
)
|
|
25
27
|
) {
|
|
26
28
|
return flatTermsWithParentAndChildren;
|
|
27
29
|
}
|
package/src/utils/test/terms.js
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
import { buildTermsTree } from '../terms';
|
|
5
5
|
|
|
6
6
|
describe( 'buildTermsTree()', () => {
|
|
7
|
-
it( 'Should return same array as input with
|
|
7
|
+
it( 'Should return same array as input with undefined parent and empty children added if parent is never specified.', () => {
|
|
8
8
|
const input = Object.freeze( [
|
|
9
9
|
{ id: 2232, dummy: true },
|
|
10
10
|
{ id: 2245, dummy: true },
|
|
11
11
|
] );
|
|
12
12
|
const output = Object.freeze( [
|
|
13
|
-
{ id: 2232, parent:
|
|
14
|
-
{ id: 2245, parent:
|
|
13
|
+
{ id: 2232, parent: undefined, children: [], dummy: true },
|
|
14
|
+
{ id: 2245, parent: undefined, children: [], dummy: true },
|
|
15
15
|
] );
|
|
16
16
|
const termsTreem = buildTermsTree( input );
|
|
17
17
|
expect( termsTreem ).toEqual( output );
|