@wordpress/editor 14.45.0 → 14.45.2-next.v.202605131032.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 +12 -0
- package/build/components/collab-sidebar/index.cjs +42 -25
- package/build/components/collab-sidebar/index.cjs.map +2 -2
- package/build/components/collab-sidebar/note-thread.cjs +19 -9
- package/build/components/collab-sidebar/note-thread.cjs.map +2 -2
- package/build/components/collab-sidebar/notes.cjs +8 -6
- package/build/components/collab-sidebar/notes.cjs.map +2 -2
- package/build/components/collab-sidebar/utils.cjs +24 -9
- package/build/components/collab-sidebar/utils.cjs.map +2 -2
- package/build/components/collaborators-presence/index.cjs +0 -10
- package/build/components/collaborators-presence/index.cjs.map +3 -3
- package/build/components/collaborators-presence/list.cjs +0 -10
- package/build/components/collaborators-presence/list.cjs.map +3 -3
- package/build/components/post-last-revision/index.cjs +5 -0
- package/build/components/post-last-revision/index.cjs.map +2 -2
- package/build/components/post-publish-panel/index.cjs +112 -124
- package/build/components/post-publish-panel/index.cjs.map +3 -3
- package/build/components/post-revisions-preview/block-diff.cjs +91 -23
- package/build/components/post-revisions-preview/block-diff.cjs.map +2 -2
- package/build/components/post-revisions-preview/diff-markers.cjs +3 -2
- package/build/components/post-revisions-preview/diff-markers.cjs.map +2 -2
- package/build/components/post-revisions-preview/revisions-slider.cjs +98 -50
- package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
- package/build/store/private-actions.cjs +21 -0
- package/build/store/private-actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +93 -42
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +15 -0
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs.map +2 -2
- package/build-module/components/collab-sidebar/index.mjs +42 -25
- package/build-module/components/collab-sidebar/index.mjs.map +2 -2
- package/build-module/components/collab-sidebar/note-thread.mjs +24 -10
- package/build-module/components/collab-sidebar/note-thread.mjs.map +2 -2
- package/build-module/components/collab-sidebar/notes.mjs +8 -6
- package/build-module/components/collab-sidebar/notes.mjs.map +2 -2
- package/build-module/components/collab-sidebar/utils.mjs +22 -8
- package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
- package/build-module/components/collaborators-presence/index.mjs +0 -10
- package/build-module/components/collaborators-presence/index.mjs.map +3 -3
- package/build-module/components/collaborators-presence/list.mjs +0 -10
- package/build-module/components/collaborators-presence/list.mjs.map +3 -3
- package/build-module/components/post-last-revision/index.mjs +5 -0
- package/build-module/components/post-last-revision/index.mjs.map +2 -2
- package/build-module/components/post-publish-panel/index.mjs +120 -129
- package/build-module/components/post-publish-panel/index.mjs.map +2 -2
- package/build-module/components/post-revisions-preview/block-diff.mjs +91 -23
- package/build-module/components/post-revisions-preview/block-diff.mjs.map +2 -2
- package/build-module/components/post-revisions-preview/diff-markers.mjs +3 -2
- package/build-module/components/post-revisions-preview/diff-markers.mjs.map +2 -2
- package/build-module/components/post-revisions-preview/revisions-slider.mjs +101 -53
- package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
- package/build-module/store/private-actions.mjs +20 -0
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +95 -43
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +14 -0
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-style/style-rtl.css +398 -33
- package/build-style/style.css +398 -33
- package/build-types/bindings/api.d.ts +1 -1
- package/build-types/bindings/api.d.ts.map +1 -1
- package/build-types/bindings/pattern-overrides.d.ts +8 -5
- package/build-types/bindings/pattern-overrides.d.ts.map +1 -1
- package/build-types/bindings/post-data.d.ts +8 -5
- package/build-types/bindings/post-data.d.ts.map +1 -1
- package/build-types/bindings/post-meta.d.ts +10 -7
- package/build-types/bindings/post-meta.d.ts.map +1 -1
- package/build-types/bindings/term-data.d.ts +9 -6
- package/build-types/bindings/term-data.d.ts.map +1 -1
- package/build-types/components/autocompleters/index.d.ts +2 -2
- package/build-types/components/autocompleters/index.d.ts.map +1 -1
- package/build-types/components/autocompleters/link.d.ts +6 -10
- package/build-types/components/autocompleters/link.d.ts.map +1 -1
- package/build-types/components/autocompleters/user.d.ts +7 -12
- package/build-types/components/autocompleters/user.d.ts.map +1 -1
- package/build-types/components/autosave-monitor/index.d.ts +28 -4
- package/build-types/components/autosave-monitor/index.d.ts.map +1 -1
- package/build-types/components/block-removal-warnings/index.d.ts +3 -0
- package/build-types/components/block-removal-warnings/index.d.ts.map +1 -1
- package/build-types/components/block-settings-menu/plugin-block-settings-menu-item.d.ts +7 -7
- package/build-types/components/block-settings-menu/plugin-block-settings-menu-item.d.ts.map +1 -1
- package/build-types/components/block-visibility/index.d.ts.map +1 -1
- package/build-types/components/blog-title/index.d.ts.map +1 -1
- package/build-types/components/character-count/index.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/add-note-menu-item.d.ts +2 -2
- package/build-types/components/collab-sidebar/add-note-menu-item.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/add-note.d.ts +2 -2
- package/build-types/components/collab-sidebar/add-note.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/board-store.d.ts +1 -1
- package/build-types/components/collab-sidebar/board-store.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/constants.d.ts +3 -3
- package/build-types/components/collab-sidebar/constants.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/floating-container.d.ts +3 -3
- package/build-types/components/collab-sidebar/floating-container.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/hooks.d.ts +7 -7
- package/build-types/components/collab-sidebar/hooks.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-byline.d.ts +2 -2
- package/build-types/components/collab-sidebar/note-byline.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-card.d.ts +3 -3
- package/build-types/components/collab-sidebar/note-card.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-form.d.ts +4 -4
- package/build-types/components/collab-sidebar/note-form.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts +2 -2
- package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-thread.d.ts +5 -5
- package/build-types/components/collab-sidebar/note-thread.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note.d.ts +4 -4
- package/build-types/components/collab-sidebar/note.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/notes.d.ts +2 -2
- package/build-types/components/collab-sidebar/notes.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/utils.d.ts +17 -24
- package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
- package/build-types/components/collaborators-overlay/cursor-dom-utils.d.ts.map +1 -1
- package/build-types/components/collaborators-overlay/cursor-registry.d.ts.map +1 -1
- package/build-types/components/collaborators-overlay/index.d.ts +4 -1
- package/build-types/components/collaborators-overlay/index.d.ts.map +1 -1
- package/build-types/components/collaborators-overlay/overlay.d.ts +1 -1
- package/build-types/components/collaborators-overlay/overlay.d.ts.map +1 -1
- package/build-types/components/collaborators-presence/avatar/component.d.ts.map +1 -1
- package/build-types/components/collaborators-presence/avatar-group/component.d.ts.map +1 -1
- package/build-types/components/collaborators-presence/index.d.ts +1 -2
- package/build-types/components/collaborators-presence/index.d.ts.map +1 -1
- package/build-types/components/collaborators-presence/list.d.ts +1 -2
- package/build-types/components/collaborators-presence/list.d.ts.map +1 -1
- package/build-types/components/collapsible-block-toolbar/index.d.ts.map +1 -1
- package/build-types/components/commands/index.d.ts.map +1 -1
- package/build-types/components/deprecated.d.ts +82 -53
- package/build-types/components/deprecated.d.ts.map +1 -1
- package/build-types/components/document-bar/index.d.ts +3 -3
- package/build-types/components/document-bar/index.d.ts.map +1 -1
- package/build-types/components/document-bar/useEditedSectionDetails.d.ts.map +1 -1
- package/build-types/components/document-outline/check.d.ts +2 -2
- package/build-types/components/document-outline/check.d.ts.map +1 -1
- package/build-types/components/document-outline/index.d.ts +2 -2
- package/build-types/components/document-outline/index.d.ts.map +1 -1
- package/build-types/components/document-outline/item.d.ts +5 -5
- package/build-types/components/document-outline/item.d.ts.map +1 -1
- package/build-types/components/document-tools/index.d.ts +1 -1
- package/build-types/components/document-tools/index.d.ts.map +1 -1
- package/build-types/components/editor/index.d.ts +7 -7
- package/build-types/components/editor/index.d.ts.map +1 -1
- package/build-types/components/editor-history/redo.d.ts +11 -2
- package/build-types/components/editor-history/redo.d.ts.map +1 -1
- package/build-types/components/editor-history/undo.d.ts +11 -2
- package/build-types/components/editor-history/undo.d.ts.map +1 -1
- package/build-types/components/editor-interface/index.d.ts +5 -5
- package/build-types/components/editor-interface/index.d.ts.map +1 -1
- package/build-types/components/editor-notices/index.d.ts +1 -1
- package/build-types/components/editor-notices/index.d.ts.map +1 -1
- package/build-types/components/editor-snackbars/index.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/entity-record-item.d.ts +1 -1
- package/build-types/components/entities-saved-states/entity-record-item.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/entity-type-list.d.ts +2 -2
- package/build-types/components/entities-saved-states/entity-type-list.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/hooks/use-is-dirty.d.ts +10 -1
- package/build-types/components/entities-saved-states/hooks/use-is-dirty.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/index.d.ts +4 -4
- package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
- package/build-types/components/error-boundary/index.d.ts +18 -8
- package/build-types/components/error-boundary/index.d.ts.map +1 -1
- package/build-types/components/global-keyboard-shortcuts/index.d.ts.map +1 -1
- package/build-types/components/global-keyboard-shortcuts/register-shortcuts.d.ts +1 -1
- package/build-types/components/global-keyboard-shortcuts/register-shortcuts.d.ts.map +1 -1
- package/build-types/components/global-styles/block-link.d.ts +1 -1
- package/build-types/components/global-styles/block-link.d.ts.map +1 -1
- package/build-types/components/global-styles/header.d.ts +2 -2
- package/build-types/components/global-styles/header.d.ts.map +1 -1
- package/build-types/components/global-styles/hooks.d.ts +3 -3
- package/build-types/components/global-styles/hooks.d.ts.map +1 -1
- package/build-types/components/global-styles/index.d.ts +3 -3
- package/build-types/components/global-styles/index.d.ts.map +1 -1
- package/build-types/components/global-styles/menu.d.ts +2 -2
- package/build-types/components/global-styles/menu.d.ts.map +1 -1
- package/build-types/components/global-styles-provider/index.d.ts +1 -1
- package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
- package/build-types/components/global-styles-renderer/index.d.ts +1 -1
- package/build-types/components/global-styles-renderer/index.d.ts.map +1 -1
- package/build-types/components/global-styles-sidebar/default-sidebar.d.ts +6 -6
- package/build-types/components/global-styles-sidebar/default-sidebar.d.ts.map +1 -1
- package/build-types/components/global-styles-sidebar/index.d.ts.map +1 -1
- package/build-types/components/global-styles-sidebar/welcome-guide-image.d.ts +1 -1
- package/build-types/components/global-styles-sidebar/welcome-guide-image.d.ts.map +1 -1
- package/build-types/components/global-styles-sidebar/welcome-guide.d.ts.map +1 -1
- package/build-types/components/header/back-button.d.ts +3 -3
- package/build-types/components/header/back-button.d.ts.map +1 -1
- package/build-types/components/header/header-skeleton.d.ts +5 -5
- package/build-types/components/header/header-skeleton.d.ts.map +1 -1
- package/build-types/components/header/index.d.ts +2 -2
- package/build-types/components/header/index.d.ts.map +1 -1
- package/build-types/components/index.d.ts +94 -91
- package/build-types/components/index.d.ts.map +1 -1
- package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
- package/build-types/components/keyboard-shortcut-help-modal/config.d.ts +3 -3
- package/build-types/components/keyboard-shortcut-help-modal/config.d.ts.map +1 -1
- package/build-types/components/keyboard-shortcut-help-modal/dynamic-shortcut.d.ts +1 -1
- package/build-types/components/keyboard-shortcut-help-modal/dynamic-shortcut.d.ts.map +1 -1
- package/build-types/components/keyboard-shortcut-help-modal/index.d.ts +1 -1
- package/build-types/components/keyboard-shortcut-help-modal/index.d.ts.map +1 -1
- package/build-types/components/keyboard-shortcut-help-modal/shortcut.d.ts +3 -3
- package/build-types/components/keyboard-shortcut-help-modal/shortcut.d.ts.map +1 -1
- package/build-types/components/list-view-sidebar/index.d.ts.map +1 -1
- package/build-types/components/list-view-sidebar/list-view-outline.d.ts.map +1 -1
- package/build-types/components/local-autosave-monitor/index.d.ts +12 -0
- package/build-types/components/local-autosave-monitor/index.d.ts.map +1 -1
- package/build-types/components/media/index.d.ts +2 -2
- package/build-types/components/media/index.d.ts.map +1 -1
- package/build-types/components/media/media-editor-modal.d.ts.map +1 -1
- package/build-types/components/media/metadata-panel.d.ts.map +1 -1
- package/build-types/components/media/preview.d.ts.map +1 -1
- package/build-types/components/media-categories/index.d.ts +11 -4
- package/build-types/components/media-categories/index.d.ts.map +1 -1
- package/build-types/components/mode-switcher/index.d.ts +1 -1
- package/build-types/components/mode-switcher/index.d.ts.map +1 -1
- package/build-types/components/more-menu/copy-content-menu-item.d.ts.map +1 -1
- package/build-types/components/more-menu/index.d.ts.map +1 -1
- package/build-types/components/more-menu/tools-more-menu-group.d.ts +2 -2
- package/build-types/components/more-menu/tools-more-menu-group.d.ts.map +1 -1
- package/build-types/components/more-menu/view-more-menu-group.d.ts +2 -2
- package/build-types/components/more-menu/view-more-menu-group.d.ts.map +1 -1
- package/build-types/components/page-attributes/check.d.ts +3 -3
- package/build-types/components/page-attributes/check.d.ts.map +1 -1
- package/build-types/components/page-attributes/order.d.ts +1 -1
- package/build-types/components/page-attributes/order.d.ts.map +1 -1
- package/build-types/components/page-attributes/panel.d.ts +1 -1
- package/build-types/components/page-attributes/panel.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts +3 -3
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/pattern-duplicate-modal/index.d.ts +1 -1
- package/build-types/components/pattern-duplicate-modal/index.d.ts.map +1 -1
- package/build-types/components/pattern-overrides-panel/index.d.ts.map +1 -1
- package/build-types/components/pattern-rename-modal/index.d.ts +1 -1
- package/build-types/components/pattern-rename-modal/index.d.ts.map +1 -1
- package/build-types/components/plugin-document-setting-panel/index.d.ts +8 -61
- package/build-types/components/plugin-document-setting-panel/index.d.ts.map +1 -1
- package/build-types/components/plugin-more-menu-item/index.d.ts +5 -5
- package/build-types/components/plugin-more-menu-item/index.d.ts.map +1 -1
- package/build-types/components/plugin-post-publish-panel/index.d.ts +9 -40
- package/build-types/components/plugin-post-publish-panel/index.d.ts.map +1 -1
- package/build-types/components/plugin-post-status-info/index.d.ts +6 -47
- package/build-types/components/plugin-post-status-info/index.d.ts.map +1 -1
- package/build-types/components/plugin-pre-publish-panel/index.d.ts +9 -43
- package/build-types/components/plugin-pre-publish-panel/index.d.ts.map +1 -1
- package/build-types/components/plugin-preview-menu-item/index.d.ts +5 -5
- package/build-types/components/plugin-preview-menu-item/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar/index.d.ts +4 -4
- package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar-more-menu-item/index.d.ts +3 -3
- package/build-types/components/plugin-sidebar-more-menu-item/index.d.ts.map +1 -1
- package/build-types/components/post-actions/actions.d.ts +3 -3
- package/build-types/components/post-actions/actions.d.ts.map +1 -1
- package/build-types/components/post-actions/index.d.ts +4 -4
- package/build-types/components/post-actions/index.d.ts.map +1 -1
- package/build-types/components/post-actions/set-as-homepage.d.ts +2 -2
- package/build-types/components/post-actions/set-as-homepage.d.ts.map +1 -1
- package/build-types/components/post-actions/set-as-posts-page.d.ts +2 -2
- package/build-types/components/post-actions/set-as-posts-page.d.ts.map +1 -1
- package/build-types/components/post-author/check.d.ts +2 -2
- package/build-types/components/post-author/check.d.ts.map +1 -1
- package/build-types/components/post-author/combobox.d.ts.map +1 -1
- package/build-types/components/post-author/constants.d.ts +10 -8
- package/build-types/components/post-author/constants.d.ts.map +1 -1
- package/build-types/components/post-author/hook.d.ts +1 -1
- package/build-types/components/post-author/hook.d.ts.map +1 -1
- package/build-types/components/post-author/index.d.ts +2 -2
- package/build-types/components/post-author/index.d.ts.map +1 -1
- package/build-types/components/post-author/panel.d.ts +1 -1
- package/build-types/components/post-author/panel.d.ts.map +1 -1
- package/build-types/components/post-author/select.d.ts.map +1 -1
- package/build-types/components/post-card-panel/index.d.ts +7 -7
- package/build-types/components/post-card-panel/index.d.ts.map +1 -1
- package/build-types/components/post-comments/index.d.ts +6 -1
- package/build-types/components/post-comments/index.d.ts.map +1 -1
- package/build-types/components/post-content-information/index.d.ts +1 -1
- package/build-types/components/post-content-information/index.d.ts.map +1 -1
- package/build-types/components/post-discussion/panel.d.ts +1 -1
- package/build-types/components/post-discussion/panel.d.ts.map +1 -1
- package/build-types/components/post-excerpt/check.d.ts +3 -3
- package/build-types/components/post-excerpt/check.d.ts.map +1 -1
- package/build-types/components/post-excerpt/index.d.ts +3 -3
- package/build-types/components/post-excerpt/index.d.ts.map +1 -1
- package/build-types/components/post-excerpt/panel.d.ts +2 -2
- package/build-types/components/post-excerpt/panel.d.ts.map +1 -1
- package/build-types/components/post-excerpt/plugin.d.ts +6 -43
- package/build-types/components/post-excerpt/plugin.d.ts.map +1 -1
- package/build-types/components/post-featured-image/check.d.ts +3 -3
- package/build-types/components/post-featured-image/check.d.ts.map +1 -1
- package/build-types/components/post-featured-image/index.d.ts +15 -0
- package/build-types/components/post-featured-image/index.d.ts.map +1 -1
- package/build-types/components/post-featured-image/panel.d.ts +1 -1
- package/build-types/components/post-featured-image/panel.d.ts.map +1 -1
- package/build-types/components/post-fields/index.d.ts +1 -1
- package/build-types/components/post-fields/index.d.ts.map +1 -1
- package/build-types/components/post-format/check.d.ts +2 -2
- package/build-types/components/post-format/check.d.ts.map +1 -1
- package/build-types/components/post-format/index.d.ts +12 -12
- package/build-types/components/post-format/index.d.ts.map +1 -1
- package/build-types/components/post-format/panel.d.ts +2 -2
- package/build-types/components/post-format/panel.d.ts.map +1 -1
- package/build-types/components/post-last-edited-panel/index.d.ts.map +1 -1
- package/build-types/components/post-last-revision/check.d.ts +3 -3
- package/build-types/components/post-last-revision/check.d.ts.map +1 -1
- package/build-types/components/post-last-revision/index.d.ts +3 -3
- package/build-types/components/post-last-revision/index.d.ts.map +1 -1
- package/build-types/components/post-last-revision/panel.d.ts +2 -2
- package/build-types/components/post-last-revision/panel.d.ts.map +1 -1
- package/build-types/components/post-locked-modal/index.d.ts +11 -5
- package/build-types/components/post-locked-modal/index.d.ts.map +1 -1
- package/build-types/components/post-panel-row/index.d.ts +1 -1
- package/build-types/components/post-panel-row/index.d.ts.map +1 -1
- package/build-types/components/post-panel-section/index.d.ts +2 -2
- package/build-types/components/post-panel-section/index.d.ts.map +1 -1
- package/build-types/components/post-pending-status/check.d.ts +3 -3
- package/build-types/components/post-pending-status/check.d.ts.map +1 -1
- package/build-types/components/post-pending-status/index.d.ts +1 -1
- package/build-types/components/post-pending-status/index.d.ts.map +1 -1
- package/build-types/components/post-pingbacks/index.d.ts +7 -1
- package/build-types/components/post-pingbacks/index.d.ts.map +1 -1
- package/build-types/components/post-preview-button/index.d.ts +2 -2
- package/build-types/components/post-preview-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-button/index.d.ts +5 -5
- package/build-types/components/post-publish-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-button/label.d.ts.map +1 -1
- package/build-types/components/post-publish-button/post-publish-button-or-toggle.d.ts +1 -1
- package/build-types/components/post-publish-button/post-publish-button-or-toggle.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/index.d.ts +17 -13
- package/build-types/components/post-publish-panel/index.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-category-panel.d.ts +1 -1
- package/build-types/components/post-publish-panel/maybe-category-panel.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-post-format-panel.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-tags-panel.d.ts +1 -1
- package/build-types/components/post-publish-panel/maybe-tags-panel.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-upload-media.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/media-util.d.ts +2 -2
- package/build-types/components/post-publish-panel/media-util.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/postpublish.d.ts +2 -2
- package/build-types/components/post-publish-panel/postpublish.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/prepublish.d.ts +1 -1
- package/build-types/components/post-publish-panel/prepublish.d.ts.map +1 -1
- package/build-types/components/post-revisions-panel/index.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/block-diff.d.ts +1 -1
- package/build-types/components/post-revisions-preview/block-diff.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/diff-format-types.d.ts +2 -2
- package/build-types/components/post-revisions-preview/diff-format-types.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/diff-markers.d.ts +1 -1
- package/build-types/components/post-revisions-preview/diff-markers.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/index.d.ts +2 -2
- package/build-types/components/post-revisions-preview/index.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/preserve-client-ids.d.ts +1 -1
- package/build-types/components/post-revisions-preview/preserve-client-ids.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/revisions-canvas.d.ts +1 -1
- package/build-types/components/post-revisions-preview/revisions-canvas.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/revisions-header.d.ts +2 -2
- package/build-types/components/post-revisions-preview/revisions-header.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/revisions-slider.d.ts +3 -3
- package/build-types/components/post-revisions-preview/revisions-slider.d.ts.map +1 -1
- package/build-types/components/post-saved-state/index.d.ts +1 -1
- package/build-types/components/post-saved-state/index.d.ts.map +1 -1
- package/build-types/components/post-schedule/check.d.ts +2 -2
- package/build-types/components/post-schedule/check.d.ts.map +1 -1
- package/build-types/components/post-schedule/index.d.ts +3 -3
- package/build-types/components/post-schedule/index.d.ts.map +1 -1
- package/build-types/components/post-schedule/label.d.ts +4 -4
- package/build-types/components/post-schedule/label.d.ts.map +1 -1
- package/build-types/components/post-schedule/panel.d.ts +1 -1
- package/build-types/components/post-schedule/panel.d.ts.map +1 -1
- package/build-types/components/post-status/index.d.ts +2 -2
- package/build-types/components/post-status/index.d.ts.map +1 -1
- package/build-types/components/post-sticky/check.d.ts +2 -2
- package/build-types/components/post-sticky/check.d.ts.map +1 -1
- package/build-types/components/post-sticky/index.d.ts +1 -1
- package/build-types/components/post-sticky/index.d.ts.map +1 -1
- package/build-types/components/post-sticky/panel.d.ts +1 -1
- package/build-types/components/post-sticky/panel.d.ts.map +1 -1
- package/build-types/components/post-switch-to-draft-button/index.d.ts +1 -1
- package/build-types/components/post-switch-to-draft-button/index.d.ts.map +1 -1
- package/build-types/components/post-sync-status/index.d.ts +1 -1
- package/build-types/components/post-sync-status/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/check.d.ts +2 -2
- package/build-types/components/post-taxonomies/check.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts +4 -4
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts +6 -6
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/index.d.ts +9 -1
- package/build-types/components/post-taxonomies/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/most-used-terms.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/panel.d.ts +1 -1
- package/build-types/components/post-taxonomies/panel.d.ts.map +1 -1
- package/build-types/components/post-template/block-theme.d.ts.map +1 -1
- package/build-types/components/post-template/classic-theme.d.ts +8 -1
- package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
- package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
- package/build-types/components/post-template/create-new-template.d.ts.map +1 -1
- package/build-types/components/post-template/hooks.d.ts +5 -5
- package/build-types/components/post-template/hooks.d.ts.map +1 -1
- package/build-types/components/post-template/panel.d.ts +1 -1
- package/build-types/components/post-template/panel.d.ts.map +1 -1
- package/build-types/components/post-template/reset-default-template.d.ts.map +1 -1
- package/build-types/components/post-template/swap-template-button.d.ts +1 -1
- package/build-types/components/post-template/swap-template-button.d.ts.map +1 -1
- package/build-types/components/post-text-editor/index.d.ts +1 -1
- package/build-types/components/post-text-editor/index.d.ts.map +1 -1
- package/build-types/components/post-title/constants.d.ts +2 -2
- package/build-types/components/post-title/constants.d.ts.map +1 -1
- package/build-types/components/post-title/index.d.ts +9 -1
- package/build-types/components/post-title/index.d.ts.map +1 -1
- package/build-types/components/post-title/post-title-raw.d.ts +1 -1
- package/build-types/components/post-title/use-post-title-focus.d.ts.map +1 -1
- package/build-types/components/post-title/use-post-title.d.ts.map +1 -1
- package/build-types/components/post-transform-panel/hooks.d.ts +1 -1
- package/build-types/components/post-transform-panel/hooks.d.ts.map +1 -1
- package/build-types/components/post-transform-panel/index.d.ts.map +1 -1
- package/build-types/components/post-trash/check.d.ts +2 -2
- package/build-types/components/post-trash/check.d.ts.map +1 -1
- package/build-types/components/post-trash/index.d.ts +1 -1
- package/build-types/components/post-trash/index.d.ts.map +1 -1
- package/build-types/components/post-type-support-check/index.d.ts +3 -3
- package/build-types/components/post-type-support-check/index.d.ts.map +1 -1
- package/build-types/components/post-url/check.d.ts +2 -2
- package/build-types/components/post-url/check.d.ts.map +1 -1
- package/build-types/components/post-url/index.d.ts +1 -1
- package/build-types/components/post-url/index.d.ts.map +1 -1
- package/build-types/components/post-url/label.d.ts +2 -2
- package/build-types/components/post-url/label.d.ts.map +1 -1
- package/build-types/components/post-url/panel.d.ts +1 -1
- package/build-types/components/post-url/panel.d.ts.map +1 -1
- package/build-types/components/post-view-link/index.d.ts.map +1 -1
- package/build-types/components/post-visibility/check.d.ts +1 -1
- package/build-types/components/post-visibility/check.d.ts.map +1 -1
- package/build-types/components/post-visibility/index.d.ts +1 -1
- package/build-types/components/post-visibility/index.d.ts.map +1 -1
- package/build-types/components/post-visibility/label.d.ts +1 -1
- package/build-types/components/post-visibility/label.d.ts.map +1 -1
- package/build-types/components/post-visibility/utils.d.ts +1 -1
- package/build-types/components/post-visibility/utils.d.ts.map +1 -1
- package/build-types/components/posts-per-page/index.d.ts.map +1 -1
- package/build-types/components/preferences-modal/enable-panel.d.ts.map +1 -1
- package/build-types/components/preferences-modal/enable-plugin-document-setting-panel.d.ts +4 -5
- package/build-types/components/preferences-modal/enable-plugin-document-setting-panel.d.ts.map +1 -1
- package/build-types/components/preferences-modal/enable-publish-sidebar.d.ts.map +1 -1
- package/build-types/components/preferences-modal/index.d.ts +3 -0
- package/build-types/components/preferences-modal/index.d.ts.map +1 -1
- package/build-types/components/preview-dropdown/index.d.ts +1 -1
- package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
- package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
- package/build-types/components/provider/index.d.ts +33 -33
- package/build-types/components/provider/index.d.ts.map +1 -1
- package/build-types/components/provider/navigation-block-editing-mode.d.ts.map +1 -1
- package/build-types/components/provider/use-auto-switch-editor-sidebars.d.ts +1 -1
- package/build-types/components/provider/use-auto-switch-editor-sidebars.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/build-types/components/provider/use-hide-blocks-from-inserter.d.ts +1 -1
- package/build-types/components/provider/use-hide-blocks-from-inserter.d.ts.map +1 -1
- package/build-types/components/provider/use-post-content-block-types.d.ts.map +1 -1
- package/build-types/components/provider/use-revision-blocks.d.ts +1 -1
- package/build-types/components/provider/use-revision-blocks.d.ts.map +1 -1
- package/build-types/components/provider/use-upload-save-lock.d.ts.map +1 -1
- package/build-types/components/provider/with-registry-provider.d.ts +1 -1
- package/build-types/components/provider/with-registry-provider.d.ts.map +1 -1
- package/build-types/components/resizable-editor/index.d.ts +2 -2
- package/build-types/components/resizable-editor/index.d.ts.map +1 -1
- package/build-types/components/resizable-editor/resize-handle.d.ts.map +1 -1
- package/build-types/components/revision-author-panel/index.d.ts.map +1 -1
- package/build-types/components/revision-block-diff/index.d.ts.map +1 -1
- package/build-types/components/revision-created-panel/index.d.ts.map +1 -1
- package/build-types/components/revision-diff-panel/index.d.ts.map +1 -1
- package/build-types/components/revision-fields-diff/index.d.ts.map +1 -1
- package/build-types/components/save-publish-panels/index.d.ts +7 -7
- package/build-types/components/save-publish-panels/index.d.ts.map +1 -1
- package/build-types/components/sidebar/constants.d.ts +4 -4
- package/build-types/components/sidebar/constants.d.ts.map +1 -1
- package/build-types/components/sidebar/dataform-post-summary.d.ts.map +1 -1
- package/build-types/components/sidebar/header.d.ts +1 -1
- package/build-types/components/sidebar/index.d.ts +3 -3
- package/build-types/components/sidebar/index.d.ts.map +1 -1
- package/build-types/components/sidebar/post-revision-summary.d.ts.map +1 -1
- package/build-types/components/sidebar/post-summary.d.ts.map +1 -1
- package/build-types/components/site-discussion/index.d.ts.map +1 -1
- package/build-types/components/start-page-options/index.d.ts +1 -1
- package/build-types/components/start-page-options/index.d.ts.map +1 -1
- package/build-types/components/start-template-options/index.d.ts.map +1 -1
- package/build-types/components/style-book/categories.d.ts +3 -0
- package/build-types/components/style-book/categories.d.ts.map +1 -1
- package/build-types/components/style-book/color-examples.d.ts.map +1 -1
- package/build-types/components/style-book/duotone-examples.d.ts.map +1 -1
- package/build-types/components/style-book/index.d.ts +19 -8
- package/build-types/components/style-book/index.d.ts.map +1 -1
- package/build-types/components/styles-canvas/index.d.ts +2 -2
- package/build-types/components/styles-canvas/index.d.ts.map +1 -1
- package/build-types/components/styles-canvas/revisions.d.ts +1 -1
- package/build-types/components/styles-canvas/style-book.d.ts +1 -1
- package/build-types/components/table-of-contents/index.d.ts +11 -1
- package/build-types/components/table-of-contents/index.d.ts.map +1 -1
- package/build-types/components/table-of-contents/panel.d.ts +1 -1
- package/build-types/components/table-of-contents/panel.d.ts.map +1 -1
- package/build-types/components/template-actions-panel/block-theme-content.d.ts.map +1 -1
- package/build-types/components/template-actions-panel/classic-theme-content.d.ts.map +1 -1
- package/build-types/components/template-actions-panel/index.d.ts.map +1 -1
- package/build-types/components/template-content-panel/index.d.ts.map +1 -1
- package/build-types/components/template-part-content-panel/index.d.ts.map +1 -1
- package/build-types/components/template-part-menu-items/convert-to-regular.d.ts.map +1 -1
- package/build-types/components/template-part-menu-items/convert-to-template-part.d.ts +1 -1
- package/build-types/components/template-part-menu-items/convert-to-template-part.d.ts.map +1 -1
- package/build-types/components/template-part-menu-items/index.d.ts.map +1 -1
- package/build-types/components/template-validation-notice/index.d.ts.map +1 -1
- package/build-types/components/text-editor/index.d.ts.map +1 -1
- package/build-types/components/theme-support-check/index.d.ts +2 -2
- package/build-types/components/theme-support-check/index.d.ts.map +1 -1
- package/build-types/components/time-to-read/index.d.ts +1 -1
- package/build-types/components/time-to-read/index.d.ts.map +1 -1
- package/build-types/components/unsaved-changes-warning/index.d.ts +1 -1
- package/build-types/components/unsaved-changes-warning/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts +1 -1
- package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts +4 -4
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-edit-content-only-section-exit.d.ts +1 -1
- package/build-types/components/visual-editor/use-edit-content-only-section-exit.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-padding-appender.d.ts +1 -1
- package/build-types/components/visual-editor/use-padding-appender.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-select-nearest-editable-block.d.ts +1 -1
- package/build-types/components/visual-editor/use-select-nearest-editable-block.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts +1 -1
- package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts.map +1 -1
- package/build-types/components/word-count/index.d.ts +1 -1
- package/build-types/components/word-count/index.d.ts.map +1 -1
- package/build-types/components/zoom-out-toggle/index.d.ts +3 -3
- package/build-types/components/zoom-out-toggle/index.d.ts.map +1 -1
- package/build-types/dataviews/api.d.ts +6 -6
- package/build-types/dataviews/api.d.ts.map +1 -1
- package/build-types/dataviews/fields/content-preview/index.d.ts.map +1 -1
- package/build-types/dataviews/store/private-actions.d.ts +5 -5
- package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
- package/build-types/dataviews/store/reducer.d.ts +2 -2
- package/build-types/dataviews/store/reducer.d.ts.map +1 -1
- package/build-types/hooks/custom-sources-backwards-compatibility.d.ts +3 -9
- package/build-types/hooks/custom-sources-backwards-compatibility.d.ts.map +1 -1
- package/build-types/hooks/index.d.ts +10 -1
- package/build-types/hooks/index.d.ts.map +1 -1
- package/build-types/hooks/pattern-overrides.d.ts +1 -1
- package/build-types/hooks/pattern-overrides.d.ts.map +1 -1
- package/build-types/hooks/use-global-styles-output.d.ts +2 -2
- package/build-types/hooks/use-global-styles-output.d.ts.map +1 -1
- package/build-types/index.d.ts +10 -5
- package/build-types/index.d.ts.map +1 -1
- package/build-types/lock-unlock.d.ts +1 -2
- package/build-types/lock-unlock.d.ts.map +1 -1
- package/build-types/private-apis.d.ts +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/store/actions.d.ts +330 -116
- package/build-types/store/actions.d.ts.map +1 -1
- package/build-types/store/constants.d.ts.map +1 -1
- package/build-types/store/defaults.d.ts +1 -1
- package/build-types/store/defaults.d.ts.map +1 -1
- package/build-types/store/index.d.ts +77 -9
- package/build-types/store/index.d.ts.map +1 -1
- package/build-types/store/local-autosave.d.ts +3 -3
- package/build-types/store/local-autosave.d.ts.map +1 -1
- package/build-types/store/private-actions.d.ts +106 -46
- package/build-types/store/private-actions.d.ts.map +1 -1
- package/build-types/store/private-selectors.d.ts +96 -68
- package/build-types/store/private-selectors.d.ts.map +1 -1
- package/build-types/store/reducer.d.ts +47 -52
- package/build-types/store/reducer.d.ts.map +1 -1
- package/build-types/store/selectors.d.ts +422 -429
- package/build-types/store/selectors.d.ts.map +1 -1
- package/build-types/store/utils/is-template-revertable.d.ts.map +1 -1
- package/build-types/store/utils/notice-builder.d.ts +3 -3
- package/build-types/store/utils/notice-builder.d.ts.map +1 -1
- package/build-types/utils/get-item-title.d.ts +1 -1
- package/build-types/utils/get-item-title.d.ts.map +1 -1
- package/build-types/utils/get-template-info.d.ts +11 -4
- package/build-types/utils/get-template-info.d.ts.map +1 -1
- package/build-types/utils/get-template-part-icon.d.ts +1 -1
- package/build-types/utils/get-template-part-icon.d.ts.map +1 -1
- package/build-types/utils/index.d.ts +6 -3
- package/build-types/utils/index.d.ts.map +1 -1
- package/build-types/utils/media-finalize/index.d.ts.map +1 -1
- package/build-types/utils/media-sideload/index.d.ts +1 -1
- package/build-types/utils/media-sideload/index.d.ts.map +1 -1
- package/build-types/utils/media-upload/index.d.ts +1 -1
- package/build-types/utils/media-upload/index.d.ts.map +1 -1
- package/build-types/utils/media-upload/on-success.d.ts.map +1 -1
- package/build-types/utils/pageTypeBadge.d.ts.map +1 -1
- package/build-types/utils/search-templates.d.ts +1 -1
- package/build-types/utils/search-templates.d.ts.map +1 -1
- package/build-types/utils/set-nested-value.d.ts.map +1 -1
- package/build-types/utils/terms.d.ts +19 -4
- package/build-types/utils/terms.d.ts.map +1 -1
- package/build-types/utils/url.d.ts +1 -1
- package/build-types/utils/url.d.ts.map +1 -1
- package/package.json +48 -48
- package/src/components/block-visibility/style.scss +2 -2
- package/src/components/collab-sidebar/index.js +48 -36
- package/src/components/collab-sidebar/note-thread.js +28 -10
- package/src/components/collab-sidebar/notes.js +9 -6
- package/src/components/collab-sidebar/style.scss +4 -0
- package/src/components/collab-sidebar/utils.js +41 -14
- package/src/components/collaborators-presence/index.tsx +0 -2
- package/src/components/collaborators-presence/list.tsx +0 -2
- package/src/components/post-last-revision/index.js +5 -0
- package/src/components/post-publish-panel/index.js +149 -156
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +11 -26
- package/src/components/post-publish-panel/test/index.js +41 -23
- package/src/components/post-revisions-preview/block-diff.js +165 -41
- package/src/components/post-revisions-preview/diff-markers.js +12 -9
- package/src/components/post-revisions-preview/revisions-slider.js +130 -71
- package/src/components/post-revisions-preview/style.scss +3 -3
- package/src/components/post-revisions-preview/test/block-diff.js +133 -4
- package/src/components/post-template/style.scss +1 -1
- package/src/components/start-page-options/style.scss +2 -2
- package/src/components/start-template-options/style.scss +2 -2
- package/src/store/private-actions.js +34 -0
- package/src/store/private-selectors.js +127 -51
- package/src/store/reducer.js +21 -0
- package/src/store/selectors.js +6 -0
- package/src/store/test/private-selectors.js +107 -1
- package/src/style.scss +2 -0
|
@@ -206,7 +206,9 @@ describe( 'diffRevisionContent', () => {
|
|
|
206
206
|
const normalized = normalizeBlockTree( blocks );
|
|
207
207
|
|
|
208
208
|
// Post-LCS pairing detects similar blocks and marks them as modified.
|
|
209
|
-
//
|
|
209
|
+
// Added blocks between the removed and added positions mean the
|
|
210
|
+
// modified block stays at the added position to preserve the
|
|
211
|
+
// current revision's layout.
|
|
210
212
|
expect( normalized ).toHaveLength( 3 );
|
|
211
213
|
expect( normalized ).toMatchObject( [
|
|
212
214
|
{
|
|
@@ -674,7 +676,8 @@ describe( 'diffRevisionContent', () => {
|
|
|
674
676
|
const blocks = diffRevisionContent( current, previous );
|
|
675
677
|
|
|
676
678
|
// Post-LCS pairing matches B with D (same block type, high HTML similarity).
|
|
677
|
-
//
|
|
679
|
+
// Post-LCS pairing matches B with D. Modified block appears at
|
|
680
|
+
// B's position (earlier than D), C removed after.
|
|
678
681
|
expect( normalizeBlockTree( blocks ) ).toMatchObject( [
|
|
679
682
|
{
|
|
680
683
|
name: 'core/group',
|
|
@@ -689,6 +692,17 @@ describe( 'diffRevisionContent', () => {
|
|
|
689
692
|
__revisionDiffStatus: undefined,
|
|
690
693
|
},
|
|
691
694
|
},
|
|
695
|
+
{
|
|
696
|
+
name: 'core/paragraph',
|
|
697
|
+
attributes: {
|
|
698
|
+
// B→D modification with inline diff
|
|
699
|
+
content:
|
|
700
|
+
'<del title="Removed" class="revision-diff-removed">B</del><ins title="Added" class="revision-diff-added">D</ins>',
|
|
701
|
+
__revisionDiffStatus: {
|
|
702
|
+
status: 'modified',
|
|
703
|
+
},
|
|
704
|
+
},
|
|
705
|
+
},
|
|
692
706
|
{
|
|
693
707
|
name: 'core/paragraph',
|
|
694
708
|
attributes: {
|
|
@@ -696,22 +710,137 @@ describe( 'diffRevisionContent', () => {
|
|
|
696
710
|
__revisionDiffStatus: { status: 'removed' },
|
|
697
711
|
},
|
|
698
712
|
},
|
|
713
|
+
],
|
|
714
|
+
},
|
|
715
|
+
] );
|
|
716
|
+
} );
|
|
717
|
+
|
|
718
|
+
it( 'handles multiple inner block changes at once (similar content)', () => {
|
|
719
|
+
const previous = serialize( [
|
|
720
|
+
createBlock( 'core/group', {}, [
|
|
721
|
+
createBlock( 'core/paragraph', { content: 'A' } ),
|
|
722
|
+
createBlock( 'core/paragraph', {
|
|
723
|
+
content: 'The quick brown fox jumps over the lazy dog',
|
|
724
|
+
} ),
|
|
725
|
+
createBlock( 'core/paragraph', { content: 'C' } ),
|
|
726
|
+
] ),
|
|
727
|
+
] );
|
|
728
|
+
const current = serialize( [
|
|
729
|
+
createBlock( 'core/group', {}, [
|
|
730
|
+
createBlock( 'core/paragraph', { content: 'A' } ),
|
|
731
|
+
createBlock( 'core/paragraph', {
|
|
732
|
+
content: 'The quick brown fox leaps over the lazy dog',
|
|
733
|
+
} ),
|
|
734
|
+
] ),
|
|
735
|
+
] );
|
|
736
|
+
const blocks = diffRevisionContent( current, previous );
|
|
737
|
+
|
|
738
|
+
// Post-LCS pairing matches the fox sentences (high word overlap).
|
|
739
|
+
// Modified block at fox's original position, C removed after.
|
|
740
|
+
expect( normalizeBlockTree( blocks ) ).toMatchObject( [
|
|
741
|
+
{
|
|
742
|
+
name: 'core/group',
|
|
743
|
+
attributes: {
|
|
744
|
+
__revisionDiffStatus: undefined,
|
|
745
|
+
},
|
|
746
|
+
innerBlocks: [
|
|
699
747
|
{
|
|
700
748
|
name: 'core/paragraph',
|
|
701
749
|
attributes: {
|
|
702
|
-
|
|
750
|
+
content: 'A',
|
|
751
|
+
__revisionDiffStatus: undefined,
|
|
752
|
+
},
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
name: 'core/paragraph',
|
|
756
|
+
attributes: {
|
|
757
|
+
// jumps→leaps modification with inline diff
|
|
703
758
|
content:
|
|
704
|
-
'<del title="Removed" class="revision-diff-removed">
|
|
759
|
+
'The quick brown fox <del title="Removed" class="revision-diff-removed">jumps</del><ins title="Added" class="revision-diff-added">leaps</ins> over the lazy dog',
|
|
705
760
|
__revisionDiffStatus: {
|
|
706
761
|
status: 'modified',
|
|
707
762
|
},
|
|
708
763
|
},
|
|
709
764
|
},
|
|
765
|
+
{
|
|
766
|
+
name: 'core/paragraph',
|
|
767
|
+
attributes: {
|
|
768
|
+
content: 'C',
|
|
769
|
+
__revisionDiffStatus: { status: 'removed' },
|
|
770
|
+
},
|
|
771
|
+
},
|
|
710
772
|
],
|
|
711
773
|
},
|
|
712
774
|
] );
|
|
713
775
|
} );
|
|
714
776
|
|
|
777
|
+
it( 'pairs paragraphs in order when section is condensed', () => {
|
|
778
|
+
// Four paragraphs condensed into two. The first paragraph
|
|
779
|
+
// should pair and appear first, not after the removed blocks.
|
|
780
|
+
const previous = serialize( [
|
|
781
|
+
createBlock( 'core/paragraph', {
|
|
782
|
+
content:
|
|
783
|
+
'The International Space Station is the largest structure ever built in space. Assembled over more than a decade from modules launched by the United States, Russia, Europe, Japan, and Canada, it spans the area of a football field and weighs nearly a million pounds. It orbits Earth every ninety minutes at an altitude of roughly 250 miles, traveling at 17,500 miles per hour.',
|
|
784
|
+
} ),
|
|
785
|
+
createBlock( 'core/paragraph', {
|
|
786
|
+
content:
|
|
787
|
+
'The station has been continuously occupied since November 2, 2000 — the longest unbroken human presence in space. More than 270 people from twenty-one countries have visited. Its laboratories have hosted thousands of experiments in biology, physics, materials science, and medicine. Research on the ISS has advanced our understanding of protein crystallization, combustion, fluid dynamics, and the long-term effects of microgravity on the human body.',
|
|
788
|
+
} ),
|
|
789
|
+
createBlock( 'core/paragraph', {
|
|
790
|
+
content:
|
|
791
|
+
'But the ISS is also a lesson in the costs of international cooperation. Originally estimated at $8 billion, the total cost has exceeded $150 billion, making it by far the most expensive single object ever constructed. Its scientific output, while significant, has been modest relative to that investment. Critics argue that the same money spent on robotic missions and ground-based research would have yielded far greater scientific returns.',
|
|
792
|
+
} ),
|
|
793
|
+
createBlock( 'core/paragraph', {
|
|
794
|
+
content:
|
|
795
|
+
"The station's supporters counter that its value lies beyond pure science. The ISS demonstrated that former Cold War adversaries could work together on a project of extraordinary complexity. It kept human spaceflight alive during a period when no alternative destination existed. And it served as a testbed for the technologies and operational experience needed for future deep-space missions — life support systems, spacewalk procedures, crew psychology, and the logistics of sustaining humans far from Earth.",
|
|
796
|
+
} ),
|
|
797
|
+
] );
|
|
798
|
+
const current = serialize( [
|
|
799
|
+
createBlock( 'core/paragraph', {
|
|
800
|
+
content:
|
|
801
|
+
'The International Space Station is the largest structure ever built in space. Assembled over more than a decade from modules launched by the United States, Russia, Europe, Japan, and Canada, it spans the area of a football field. It has been continuously occupied since November 2000.',
|
|
802
|
+
} ),
|
|
803
|
+
createBlock( 'core/paragraph', {
|
|
804
|
+
content:
|
|
805
|
+
'More than 270 people from twenty-one countries have visited. Its laboratories have hosted thousands of experiments. The total cost has exceeded $150 billion, making it the most expensive single object ever constructed.',
|
|
806
|
+
} ),
|
|
807
|
+
] );
|
|
808
|
+
const blocks = diffRevisionContent( current, previous );
|
|
809
|
+
const normalized = normalizeBlockTree( blocks );
|
|
810
|
+
|
|
811
|
+
const statuses = normalized.map(
|
|
812
|
+
( b ) =>
|
|
813
|
+
b.attributes.__revisionDiffStatus?.status || 'unchanged'
|
|
814
|
+
);
|
|
815
|
+
|
|
816
|
+
// Pairings must not cross: if prev P1 pairs with curr P1,
|
|
817
|
+
// then prev P2 can only pair with curr P2 (not curr P1).
|
|
818
|
+
// Verify no crossing by checking modified blocks appear
|
|
819
|
+
// in a consistent order.
|
|
820
|
+
const modifiedIndices = [];
|
|
821
|
+
const removedIndices = [];
|
|
822
|
+
statuses.forEach( ( s, i ) => {
|
|
823
|
+
if ( s === 'modified' ) {
|
|
824
|
+
modifiedIndices.push( i );
|
|
825
|
+
}
|
|
826
|
+
if ( s === 'removed' ) {
|
|
827
|
+
removedIndices.push( i );
|
|
828
|
+
}
|
|
829
|
+
} );
|
|
830
|
+
|
|
831
|
+
// Prev P1 pairs with Curr P1 (high overlap — same opening,
|
|
832
|
+
// condensed ending). Prev P2-P4 are too different from
|
|
833
|
+
// Curr P2 to pair (score below 0.5 threshold), so they
|
|
834
|
+
// appear as separate removed + added blocks.
|
|
835
|
+
expect( statuses ).toEqual( [
|
|
836
|
+
'modified',
|
|
837
|
+
'removed',
|
|
838
|
+
'removed',
|
|
839
|
+
'removed',
|
|
840
|
+
'added',
|
|
841
|
+
] );
|
|
842
|
+
} );
|
|
843
|
+
|
|
715
844
|
it( 'does not pair blocks with completely different content', () => {
|
|
716
845
|
const previous = serialize( [
|
|
717
846
|
createBlock( 'core/group', {}, [
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
padding: $grid-unit-20 0;
|
|
14
14
|
transform: translateY(- $grid-unit-05); // Offsets the top padding on the modal content container
|
|
15
15
|
margin-bottom: - $grid-unit-05;
|
|
16
|
-
z-index: z-index
|
|
16
|
+
z-index: 2; // Above the BlockPreview z-index: 1 overlay in the scrolling list.
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
@use "@wordpress/base-styles/colors" as *;
|
|
2
2
|
@use "@wordpress/base-styles/mixins" as *;
|
|
3
3
|
@use "@wordpress/base-styles/variables" as *;
|
|
4
|
-
@use "@wordpress/base-styles/z-index" as *;
|
|
5
4
|
|
|
6
5
|
$actions-height: 72px;
|
|
7
6
|
|
|
@@ -17,7 +16,8 @@ $actions-height: 72px;
|
|
|
17
16
|
padding-left: $grid-unit-40;
|
|
18
17
|
padding-right: $grid-unit-40;
|
|
19
18
|
border-top: 1px solid $gray-300;
|
|
20
|
-
|
|
19
|
+
// Ensure modal footer actions appear above the modal's scrolling content.
|
|
20
|
+
z-index: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
.block-editor-block-patterns-list {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
@use "@wordpress/base-styles/colors" as *;
|
|
2
2
|
@use "@wordpress/base-styles/mixins" as *;
|
|
3
3
|
@use "@wordpress/base-styles/variables" as *;
|
|
4
|
-
@use "@wordpress/base-styles/z-index" as *;
|
|
5
4
|
|
|
6
5
|
$actions-height: 92px;
|
|
7
6
|
|
|
@@ -17,7 +16,8 @@ $actions-height: 92px;
|
|
|
17
16
|
padding-left: $grid-unit-40;
|
|
18
17
|
padding-right: $grid-unit-40;
|
|
19
18
|
border-top: 1px solid $gray-300;
|
|
20
|
-
|
|
19
|
+
// Ensure modal footer actions appear above the modal's scrolling content.
|
|
20
|
+
z-index: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
.block-editor-block-patterns-list {
|
|
@@ -16,6 +16,7 @@ import { dateI18n, getSettings as getDateSettings } from '@wordpress/date';
|
|
|
16
16
|
* Internal dependencies
|
|
17
17
|
*/
|
|
18
18
|
import isTemplateRevertable from './utils/is-template-revertable';
|
|
19
|
+
import { buildRevisionsPageQuery } from './private-selectors';
|
|
19
20
|
export * from '../dataviews/store/private-actions';
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -589,6 +590,39 @@ export function setCurrentRevisionId( revisionId ) {
|
|
|
589
590
|
};
|
|
590
591
|
}
|
|
591
592
|
|
|
593
|
+
/**
|
|
594
|
+
* Set the current revisions page number and select the newest
|
|
595
|
+
* revision on that page once it loads.
|
|
596
|
+
*
|
|
597
|
+
* @param {number} page The page number.
|
|
598
|
+
*/
|
|
599
|
+
export const setRevisionPage =
|
|
600
|
+
( page ) =>
|
|
601
|
+
async ( { dispatch, select, registry } ) => {
|
|
602
|
+
const postType = select.getCurrentPostType();
|
|
603
|
+
const postId = select.getCurrentPostId();
|
|
604
|
+
const entityConfig = registry
|
|
605
|
+
.select( coreStore )
|
|
606
|
+
.getEntityConfig( 'postType', postType );
|
|
607
|
+
const revisionKey = entityConfig?.revisionKey || 'id';
|
|
608
|
+
|
|
609
|
+
const revisions = await registry
|
|
610
|
+
.resolveSelect( coreStore )
|
|
611
|
+
.getRevisions(
|
|
612
|
+
'postType',
|
|
613
|
+
postType,
|
|
614
|
+
postId,
|
|
615
|
+
buildRevisionsPageQuery( revisionKey, page )
|
|
616
|
+
);
|
|
617
|
+
|
|
618
|
+
registry.batch( () => {
|
|
619
|
+
dispatch( { type: 'SET_REVISION_PAGE', page } );
|
|
620
|
+
if ( revisions?.length ) {
|
|
621
|
+
dispatch.setCurrentRevisionId( revisions[ 0 ][ revisionKey ] );
|
|
622
|
+
}
|
|
623
|
+
} );
|
|
624
|
+
};
|
|
625
|
+
|
|
592
626
|
/**
|
|
593
627
|
* Set whether the revision diff highlighting is shown.
|
|
594
628
|
*
|
|
@@ -21,7 +21,12 @@ import { store as preferencesStore } from '@wordpress/preferences';
|
|
|
21
21
|
/**
|
|
22
22
|
* Internal dependencies
|
|
23
23
|
*/
|
|
24
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
getRenderingMode,
|
|
26
|
+
getCurrentPost,
|
|
27
|
+
getEditorSettings,
|
|
28
|
+
getCurrentPostRevisionsCount,
|
|
29
|
+
} from './selectors';
|
|
25
30
|
import {
|
|
26
31
|
getEntityActions as _getEntityActions,
|
|
27
32
|
getEntityFields as _getEntityFields,
|
|
@@ -297,6 +302,11 @@ export const getDefaultRenderingMode = createRegistrySelector(
|
|
|
297
302
|
'core',
|
|
298
303
|
'renderingModes'
|
|
299
304
|
)?.[ theme ]?.[ postType ];
|
|
305
|
+
|
|
306
|
+
if ( RENDERING_MODES.includes( defaultModePreference ) ) {
|
|
307
|
+
return defaultModePreference;
|
|
308
|
+
}
|
|
309
|
+
|
|
300
310
|
const postTypeDefaultMode = Array.isArray(
|
|
301
311
|
postTypeEntity?.supports?.editor
|
|
302
312
|
)
|
|
@@ -305,14 +315,18 @@ export const getDefaultRenderingMode = createRegistrySelector(
|
|
|
305
315
|
)?.[ 'default-mode' ]
|
|
306
316
|
: undefined;
|
|
307
317
|
|
|
308
|
-
|
|
318
|
+
if ( RENDERING_MODES.includes( postTypeDefaultMode ) ) {
|
|
319
|
+
return postTypeDefaultMode;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const settingsDefaultMode =
|
|
323
|
+
getEditorSettings( state ).defaultRenderingMode;
|
|
309
324
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
return 'post-only';
|
|
325
|
+
if ( RENDERING_MODES.includes( settingsDefaultMode ) ) {
|
|
326
|
+
return settingsDefaultMode;
|
|
313
327
|
}
|
|
314
328
|
|
|
315
|
-
return
|
|
329
|
+
return 'post-only';
|
|
316
330
|
}
|
|
317
331
|
);
|
|
318
332
|
|
|
@@ -336,6 +350,85 @@ export function getShowStylebook( state ) {
|
|
|
336
350
|
return state.showStylebook ?? false;
|
|
337
351
|
}
|
|
338
352
|
|
|
353
|
+
/**
|
|
354
|
+
* Returns the current revisions page number.
|
|
355
|
+
*
|
|
356
|
+
* @param {Object} state Global application state.
|
|
357
|
+
* @return {number} The page number.
|
|
358
|
+
*/
|
|
359
|
+
export function getRevisionPage( state ) {
|
|
360
|
+
return state.revisionPage;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Builds the query object for fetching a page of revisions.
|
|
365
|
+
*
|
|
366
|
+
* @param {string} revisionKey The entity's revision key.
|
|
367
|
+
* @param {number} page The 1-based page number (page 1 = newest).
|
|
368
|
+
* @return {Object} Query object for getRevisions.
|
|
369
|
+
*/
|
|
370
|
+
export function buildRevisionsPageQuery( revisionKey, page ) {
|
|
371
|
+
return {
|
|
372
|
+
per_page: REVISIONS_PER_PAGE,
|
|
373
|
+
page,
|
|
374
|
+
context: 'edit',
|
|
375
|
+
orderby: 'date',
|
|
376
|
+
order: 'desc',
|
|
377
|
+
_fields: [
|
|
378
|
+
...new Set( [
|
|
379
|
+
'id',
|
|
380
|
+
'date',
|
|
381
|
+
'modified',
|
|
382
|
+
'author',
|
|
383
|
+
'meta',
|
|
384
|
+
'title.raw',
|
|
385
|
+
'excerpt.raw',
|
|
386
|
+
'content.raw',
|
|
387
|
+
revisionKey,
|
|
388
|
+
] ),
|
|
389
|
+
].join(),
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
const REVISIONS_PER_PAGE = 100;
|
|
394
|
+
|
|
395
|
+
export function getRevisionsPerPage() {
|
|
396
|
+
return REVISIONS_PER_PAGE;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Returns revisions for the given page number.
|
|
401
|
+
*
|
|
402
|
+
* @param {Object} state Global application state.
|
|
403
|
+
* @param {number} page The 1-based page number (page 1 = newest).
|
|
404
|
+
* @return {Array|null} The revisions array, or null if not yet loaded.
|
|
405
|
+
*/
|
|
406
|
+
export const getPageRevisions = createRegistrySelector(
|
|
407
|
+
( select ) => ( state, page ) => {
|
|
408
|
+
if ( ! page ) {
|
|
409
|
+
return null;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
const { type: postType, id: postId } = getCurrentPost( state );
|
|
413
|
+
if ( ! postType || ! postId ) {
|
|
414
|
+
return null;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
const entityConfig = select( coreStore ).getEntityConfig(
|
|
418
|
+
'postType',
|
|
419
|
+
postType
|
|
420
|
+
);
|
|
421
|
+
const revisionKey = entityConfig?.revisionKey || 'id';
|
|
422
|
+
|
|
423
|
+
return select( coreStore ).getRevisions(
|
|
424
|
+
'postType',
|
|
425
|
+
postType,
|
|
426
|
+
postId,
|
|
427
|
+
buildRevisionsPageQuery( revisionKey, page )
|
|
428
|
+
);
|
|
429
|
+
}
|
|
430
|
+
);
|
|
431
|
+
|
|
339
432
|
/**
|
|
340
433
|
* Returns whether the editor is in revisions preview mode.
|
|
341
434
|
*
|
|
@@ -379,40 +472,22 @@ export const getCurrentRevision = createRegistrySelector(
|
|
|
379
472
|
return undefined;
|
|
380
473
|
}
|
|
381
474
|
|
|
475
|
+
const page = getRevisionPage( state );
|
|
476
|
+
if ( ! page ) {
|
|
477
|
+
return null;
|
|
478
|
+
}
|
|
479
|
+
|
|
382
480
|
const { type: postType, id: postId } = getCurrentPost( state );
|
|
383
481
|
const entityConfig = select( coreStore ).getEntityConfig(
|
|
384
482
|
'postType',
|
|
385
483
|
postType
|
|
386
484
|
);
|
|
387
485
|
const revisionKey = entityConfig?.revisionKey || 'id';
|
|
388
|
-
// - Use getRevisions (plural) instead of getRevision (singular) to
|
|
389
|
-
// avoid a race condition where both API calls complete around the
|
|
390
|
-
// same time and the single revision fetch overwrites the list in the
|
|
391
|
-
// store.
|
|
392
|
-
// - getRevision also needs to be updated to check if there's any
|
|
393
|
-
// received revisions from the collection API call to avoid unnecessary
|
|
394
|
-
// API calls.
|
|
395
486
|
const revisions = select( coreStore ).getRevisions(
|
|
396
487
|
'postType',
|
|
397
488
|
postType,
|
|
398
489
|
postId,
|
|
399
|
-
|
|
400
|
-
per_page: -1,
|
|
401
|
-
context: 'edit',
|
|
402
|
-
_fields: [
|
|
403
|
-
...new Set( [
|
|
404
|
-
'id',
|
|
405
|
-
'date',
|
|
406
|
-
'modified',
|
|
407
|
-
'author',
|
|
408
|
-
'meta',
|
|
409
|
-
'title.raw',
|
|
410
|
-
'excerpt.raw',
|
|
411
|
-
'content.raw',
|
|
412
|
-
revisionKey,
|
|
413
|
-
] ),
|
|
414
|
-
].join(),
|
|
415
|
-
}
|
|
490
|
+
buildRevisionsPageQuery( revisionKey, page )
|
|
416
491
|
);
|
|
417
492
|
if ( ! revisions ) {
|
|
418
493
|
return null;
|
|
@@ -459,35 +534,23 @@ export const getPreviousRevision = createRegistrySelector(
|
|
|
459
534
|
return undefined;
|
|
460
535
|
}
|
|
461
536
|
|
|
537
|
+
const page = getRevisionPage( state );
|
|
538
|
+
if ( ! page ) {
|
|
539
|
+
return null;
|
|
540
|
+
}
|
|
541
|
+
|
|
462
542
|
const { type: postType, id: postId } = getCurrentPost( state );
|
|
463
543
|
const entityConfig = select( coreStore ).getEntityConfig(
|
|
464
544
|
'postType',
|
|
465
545
|
postType
|
|
466
546
|
);
|
|
467
547
|
const revisionKey = entityConfig?.revisionKey || 'id';
|
|
548
|
+
const query = buildRevisionsPageQuery( revisionKey, page );
|
|
468
549
|
const revisions = select( coreStore ).getRevisions(
|
|
469
550
|
'postType',
|
|
470
551
|
postType,
|
|
471
552
|
postId,
|
|
472
|
-
|
|
473
|
-
per_page: -1,
|
|
474
|
-
context: 'edit',
|
|
475
|
-
orderby: 'date',
|
|
476
|
-
order: 'asc',
|
|
477
|
-
_fields: [
|
|
478
|
-
...new Set( [
|
|
479
|
-
'id',
|
|
480
|
-
'date',
|
|
481
|
-
'modified',
|
|
482
|
-
'author',
|
|
483
|
-
'meta',
|
|
484
|
-
'title.raw',
|
|
485
|
-
'excerpt.raw',
|
|
486
|
-
'content.raw',
|
|
487
|
-
revisionKey,
|
|
488
|
-
] ),
|
|
489
|
-
].join(),
|
|
490
|
-
}
|
|
553
|
+
query
|
|
491
554
|
);
|
|
492
555
|
if ( ! revisions ) {
|
|
493
556
|
return null;
|
|
@@ -499,8 +562,21 @@ export const getPreviousRevision = createRegistrySelector(
|
|
|
499
562
|
);
|
|
500
563
|
|
|
501
564
|
// Return the previous revision (older one) if it exists.
|
|
502
|
-
if ( currentIndex
|
|
503
|
-
return revisions[ currentIndex
|
|
565
|
+
if ( currentIndex >= 0 && currentIndex < revisions.length - 1 ) {
|
|
566
|
+
return revisions[ currentIndex + 1 ];
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
// At page boundary: fetch the first revision from the next page.
|
|
570
|
+
const totalRevisions = getCurrentPostRevisionsCount( state );
|
|
571
|
+
const totalPages = Math.ceil( totalRevisions / query.per_page ) || 1;
|
|
572
|
+
if ( currentIndex === revisions.length - 1 && page < totalPages ) {
|
|
573
|
+
const nextPageRevisions = select( coreStore ).getRevisions(
|
|
574
|
+
'postType',
|
|
575
|
+
postType,
|
|
576
|
+
postId,
|
|
577
|
+
buildRevisionsPageQuery( revisionKey, page + 1 )
|
|
578
|
+
);
|
|
579
|
+
return nextPageRevisions?.[ 0 ] ?? null;
|
|
504
580
|
}
|
|
505
581
|
|
|
506
582
|
return null;
|
package/src/store/reducer.js
CHANGED
|
@@ -434,6 +434,26 @@ export function revisionId( state = null, action ) {
|
|
|
434
434
|
return state;
|
|
435
435
|
}
|
|
436
436
|
|
|
437
|
+
/**
|
|
438
|
+
* Reducer for the current revisions page number.
|
|
439
|
+
*
|
|
440
|
+
* @param {number} state Current page number.
|
|
441
|
+
* @param {Object} action Dispatched action.
|
|
442
|
+
* @return {number} Updated state.
|
|
443
|
+
*/
|
|
444
|
+
export function revisionPage( state = 1, action ) {
|
|
445
|
+
switch ( action.type ) {
|
|
446
|
+
case 'SET_REVISION_PAGE':
|
|
447
|
+
return action.page;
|
|
448
|
+
case 'SET_CURRENT_REVISION_ID':
|
|
449
|
+
if ( ! action.revisionId ) {
|
|
450
|
+
return 1;
|
|
451
|
+
}
|
|
452
|
+
return state;
|
|
453
|
+
}
|
|
454
|
+
return state;
|
|
455
|
+
}
|
|
456
|
+
|
|
437
457
|
/**
|
|
438
458
|
* Reducer for whether the revision diff is shown.
|
|
439
459
|
* Resets to true when entering/exiting revisions mode.
|
|
@@ -490,6 +510,7 @@ export default combineReducers( {
|
|
|
490
510
|
stylesPath,
|
|
491
511
|
showStylebook,
|
|
492
512
|
revisionId,
|
|
513
|
+
revisionPage,
|
|
493
514
|
showRevisionDiff,
|
|
494
515
|
selectedNote,
|
|
495
516
|
dataviews: dataviewsReducer,
|
package/src/store/selectors.js
CHANGED
|
@@ -1253,6 +1253,12 @@ export const isEditorPanelOpened = createRegistrySelector(
|
|
|
1253
1253
|
/**
|
|
1254
1254
|
* A block selection object.
|
|
1255
1255
|
*
|
|
1256
|
+
* This type is duplicated to avoid creating circular dependencies.
|
|
1257
|
+
*
|
|
1258
|
+
* @see {import("@wordpress/block-editor/src/store/actions").WPBlockSelection}
|
|
1259
|
+
* @see {import("@wordpress/block-editor/src/store/selectors").WPBlockSelection}
|
|
1260
|
+
* @see {import("@wordpress/core-data/src/types").WPBlockSelection}
|
|
1261
|
+
*
|
|
1256
1262
|
* @typedef {Object} WPBlockSelection
|
|
1257
1263
|
*
|
|
1258
1264
|
* @property {string} clientId A block client ID.
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
5
|
+
import { store as preferencesStore } from '@wordpress/preferences';
|
|
6
|
+
|
|
1
7
|
/**
|
|
2
8
|
* Internal dependencies
|
|
3
9
|
*/
|
|
4
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
getDefaultRenderingMode,
|
|
12
|
+
getPostBlocksByName,
|
|
13
|
+
} from '../private-selectors';
|
|
5
14
|
|
|
6
15
|
describe( 'getPostBlocksByName', () => {
|
|
7
16
|
const state = {
|
|
@@ -76,3 +85,100 @@ describe( 'getPostBlocksByName', () => {
|
|
|
76
85
|
expect( result ).toEqual( [ 'block1', 'block2', 'block3' ] );
|
|
77
86
|
} );
|
|
78
87
|
} );
|
|
88
|
+
|
|
89
|
+
describe( 'getDefaultRenderingMode', () => {
|
|
90
|
+
function setupRegistry( {
|
|
91
|
+
supportsEditor = true,
|
|
92
|
+
theme = 'twentytwentyfive',
|
|
93
|
+
renderingModes = null,
|
|
94
|
+
} = {} ) {
|
|
95
|
+
getDefaultRenderingMode.registry = {
|
|
96
|
+
select: ( store ) => {
|
|
97
|
+
if ( store === coreStore ) {
|
|
98
|
+
return {
|
|
99
|
+
getPostType: () => ( {
|
|
100
|
+
supports: { editor: supportsEditor },
|
|
101
|
+
} ),
|
|
102
|
+
getCurrentTheme: () => ( { stylesheet: theme } ),
|
|
103
|
+
hasFinishedResolution: () => true,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if ( store === preferencesStore ) {
|
|
107
|
+
return {
|
|
108
|
+
get: () => renderingModes,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
describe( 'editor.default-mode post type support', () => {
|
|
116
|
+
it( 'default-mode from post type support should be respected when no user preference is saved', () => {
|
|
117
|
+
setupRegistry( {
|
|
118
|
+
supportsEditor: [ { 'default-mode': 'template-locked' } ],
|
|
119
|
+
} );
|
|
120
|
+
const state = {
|
|
121
|
+
editorSettings: { defaultRenderingMode: 'post-only' },
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
expect( getDefaultRenderingMode( state, 'post' ) ).toBe(
|
|
125
|
+
'template-locked'
|
|
126
|
+
);
|
|
127
|
+
} );
|
|
128
|
+
|
|
129
|
+
it( 'user preference should take priority over post type supports registered default-mode support', () => {
|
|
130
|
+
setupRegistry( {
|
|
131
|
+
theme: 'twentytwentyfive',
|
|
132
|
+
supportsEditor: [ { 'default-mode': 'template-locked' } ],
|
|
133
|
+
renderingModes: { twentytwentyfive: { post: 'post-only' } },
|
|
134
|
+
} );
|
|
135
|
+
const state = {
|
|
136
|
+
editorSettings: { defaultRenderingMode: 'post-only' },
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
expect( getDefaultRenderingMode( state, 'post' ) ).toBe(
|
|
140
|
+
'post-only'
|
|
141
|
+
);
|
|
142
|
+
} );
|
|
143
|
+
} );
|
|
144
|
+
|
|
145
|
+
describe( 'defaultRenderingMode from editor settings', () => {
|
|
146
|
+
it( 'uses defaultRenderingMode from editor settings when no user preference is saved', () => {
|
|
147
|
+
setupRegistry( { renderingModes: null } );
|
|
148
|
+
const state = {
|
|
149
|
+
editorSettings: { defaultRenderingMode: 'template-locked' },
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
expect( getDefaultRenderingMode( state, 'post' ) ).toBe(
|
|
153
|
+
'template-locked'
|
|
154
|
+
);
|
|
155
|
+
} );
|
|
156
|
+
|
|
157
|
+
it( 'user preference takes priority over defaultRenderingMode from editor settings', () => {
|
|
158
|
+
setupRegistry( {
|
|
159
|
+
theme: 'twentytwentyfive',
|
|
160
|
+
renderingModes: {
|
|
161
|
+
twentytwentyfive: { post: 'template-locked' },
|
|
162
|
+
},
|
|
163
|
+
} );
|
|
164
|
+
const state = {
|
|
165
|
+
editorSettings: { defaultRenderingMode: 'post-only' },
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
expect( getDefaultRenderingMode( state, 'post' ) ).toBe(
|
|
169
|
+
'template-locked'
|
|
170
|
+
);
|
|
171
|
+
} );
|
|
172
|
+
|
|
173
|
+
it( 'falls back to post-only when defaultRenderingMode in settings is the default', () => {
|
|
174
|
+
setupRegistry( { renderingModes: null } );
|
|
175
|
+
const state = {
|
|
176
|
+
editorSettings: { defaultRenderingMode: 'post-only' },
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
expect( getDefaultRenderingMode( state, 'post' ) ).toBe(
|
|
180
|
+
'post-only'
|
|
181
|
+
);
|
|
182
|
+
} );
|
|
183
|
+
} );
|
|
184
|
+
} );
|