@wordpress/block-library 8.4.0 → 8.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/archives/edit.js +3 -0
- package/build/archives/edit.js.map +1 -1
- package/build/audio/edit.js +2 -0
- package/build/audio/edit.js.map +1 -1
- package/build/avatar/edit.js +5 -9
- package/build/avatar/edit.js.map +1 -1
- package/build/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/categories/edit.js +5 -0
- package/build/categories/edit.js.map +1 -1
- package/build/columns/edit.js +11 -8
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/utils.js +2 -2
- package/build/columns/utils.js.map +1 -1
- package/build/comment-author-name/edit.js +2 -0
- package/build/comment-author-name/edit.js.map +1 -1
- package/build/comment-date/edit.js +1 -0
- package/build/comment-date/edit.js.map +1 -1
- package/build/comment-edit-link/edit.js +1 -0
- package/build/comment-edit-link/edit.js.map +1 -1
- package/build/comments/edit/placeholder.js +8 -5
- package/build/comments/edit/placeholder.js.map +1 -1
- package/build/comments-title/edit.js +2 -0
- package/build/comments-title/edit.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -0
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +13 -4
- package/build/cover/index.js.map +1 -1
- package/build/cover/variations.js +29 -0
- package/build/cover/variations.js.map +1 -0
- package/build/embed/edit.js +13 -14
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +18 -14
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/embed-controls.js +1 -0
- package/build/embed/embed-controls.js.map +1 -1
- package/build/embed/util.js +39 -12
- package/build/embed/util.js.map +1 -1
- package/build/file/inspector.js +3 -0
- package/build/file/inspector.js.map +1 -1
- package/build/freeform/modal.js +1 -1
- package/build/freeform/modal.js.map +1 -1
- package/build/gallery/edit.js +3 -0
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/shared.js +4 -8
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/use-image-sizes.js +4 -8
- package/build/gallery/use-image-sizes.js.map +1 -1
- package/build/gallery/v1/edit.js +8 -3
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.js +1 -3
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/gallery/v1/shared.js +4 -7
- package/build/gallery/v1/shared.js.map +1 -1
- package/build/image/edit.js +6 -4
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +6 -2
- package/build/image/image.js.map +1 -1
- package/build/image/utils.js +3 -1
- package/build/image/utils.js.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/latest-comments/edit.js +3 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +14 -10
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js +3 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -0
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.js +2 -2
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +2 -1
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/loginout/edit.js +2 -0
- package/build/loginout/edit.js.map +1 -1
- package/build/media-text/constants.js +17 -1
- package/build/media-text/constants.js.map +1 -1
- package/build/media-text/edit.js +9 -19
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +6 -5
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/transforms.js +32 -44
- package/build/media-text/transforms.js.map +1 -1
- package/build/more/edit.js +1 -0
- package/build/more/edit.js.map +1 -1
- package/build/navigation/edit/index.js +64 -68
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +4 -1
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -5
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +26 -22
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/overlay-menu-preview.js +1 -0
- package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +1 -1
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +3 -5
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
- package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +4 -7
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation-link/edit.js +0 -11
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -13
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +47 -0
- package/build/page-list/convert-to-links-modal.js.map +1 -0
- package/build/page-list/edit.js +62 -62
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +3 -2
- package/build/page-list-item/edit.js.map +1 -1
- package/build/paragraph/edit.js +1 -0
- package/build/paragraph/edit.js.map +1 -1
- package/build/post-author/edit.js +4 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author-name/edit.js +2 -0
- package/build/post-author-name/edit.js.map +1 -1
- package/build/post-content/edit.js +6 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-date/edit.js +2 -0
- package/build/post-date/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -0
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +0 -6
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +3 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/edit.js +2 -0
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-terms/use-post-terms.js +1 -1
- package/build/post-terms/use-post-terms.js.map +1 -1
- package/build/post-time-to-read/edit.js +104 -0
- package/build/post-time-to-read/edit.js.map +1 -0
- package/build/post-time-to-read/icon.js +25 -0
- package/build/post-time-to-read/icon.js.map +1 -0
- package/build/post-time-to-read/index.js +57 -0
- package/build/post-time-to-read/index.js.map +1 -0
- package/build/post-title/edit.js +2 -0
- package/build/post-title/edit.js.map +1 -1
- package/build/pullquote/deprecated.js +3 -3
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +1 -0
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -2
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +26 -9
- package/build/query/utils.js.map +1 -1
- package/build/query-title/edit.js +2 -0
- package/build/query-title/edit.js.map +1 -1
- package/build/read-more/edit.js +1 -0
- package/build/read-more/edit.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/site-logo/edit.js +3 -0
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-tagline/index.js +1 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-title/edit/index.js +2 -0
- package/build/site-title/edit/index.js.map +1 -1
- package/build/social-links/edit.js +4 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/spacer/controls.native.js +10 -8
- package/build/spacer/controls.native.js.map +1 -1
- package/build/spacer/edit.native.js +43 -5
- package/build/spacer/edit.native.js.map +1 -1
- package/build/spacer/save.native.js +30 -0
- package/build/spacer/save.native.js.map +1 -0
- package/build/table/edit.js +3 -0
- package/build/table/edit.js.map +1 -1
- package/build/table/state.js +12 -4
- package/build/table/state.js.map +1 -1
- package/build/table-of-contents/edit.js +1 -0
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +1 -0
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/import-controls.js +33 -30
- package/build/template-part/edit/import-controls.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +69 -19
- package/build/template-part/edit/utils/transformers.js.map +1 -1
- package/build/text-columns/edit.js +3 -7
- package/build/text-columns/edit.js.map +1 -1
- package/build/text-columns/save.js +11 -13
- package/build/text-columns/save.js.map +1 -1
- package/build/video/edit-common-settings.js +5 -0
- package/build/video/edit-common-settings.js.map +1 -1
- package/build-module/archives/edit.js +3 -0
- package/build-module/archives/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -0
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/avatar/edit.js +5 -8
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/categories/edit.js +5 -0
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/columns/edit.js +11 -7
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +1 -1
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/utils.js +3 -3
- package/build-module/columns/utils.js.map +1 -1
- package/build-module/comment-author-name/edit.js +2 -0
- package/build-module/comment-author-name/edit.js.map +1 -1
- package/build-module/comment-date/edit.js +1 -0
- package/build-module/comment-date/edit.js.map +1 -1
- package/build-module/comment-edit-link/edit.js +1 -0
- package/build-module/comment-edit-link/edit.js.map +1 -1
- package/build-module/comments/edit/placeholder.js +9 -5
- package/build-module/comments/edit/placeholder.js.map +1 -1
- package/build-module/comments-title/edit.js +2 -0
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -0
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +12 -4
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/variations.js +19 -0
- package/build-module/cover/variations.js.map +1 -0
- package/build-module/embed/edit.js +14 -15
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +19 -15
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/embed-controls.js +1 -0
- package/build-module/embed/embed-controls.js.map +1 -1
- package/build-module/embed/util.js +34 -10
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/inspector.js +3 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/freeform/modal.js +1 -1
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/gallery/edit.js +3 -0
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/shared.js +4 -7
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/use-image-sizes.js +4 -7
- package/build-module/gallery/use-image-sizes.js.map +1 -1
- package/build-module/gallery/v1/edit.js +9 -4
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js +1 -2
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/gallery/v1/shared.js +4 -6
- package/build-module/gallery/v1/shared.js.map +1 -1
- package/build-module/image/edit.js +7 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +7 -3
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/utils.js +4 -2
- package/build-module/image/utils.js.map +1 -1
- package/build-module/index.js +2 -1
- package/build-module/index.js.map +1 -1
- package/build-module/latest-comments/edit.js +3 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +14 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +3 -3
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -0
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.js +2 -2
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/loginout/edit.js +2 -0
- package/build-module/loginout/edit.js.map +1 -1
- package/build-module/media-text/constants.js +10 -0
- package/build-module/media-text/constants.js.map +1 -1
- package/build-module/media-text/edit.js +4 -14
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +4 -3
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/transforms.js +32 -44
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/more/edit.js +1 -0
- package/build-module/more/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +65 -69
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +4 -1
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
- package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +1 -1
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +3 -5
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
- package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +5 -8
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build-module/navigation-link/edit.js +0 -11
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -13
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +35 -0
- package/build-module/page-list/convert-to-links-modal.js.map +1 -0
- package/build-module/page-list/edit.js +64 -65
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -2
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/paragraph/edit.js +1 -0
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/post-author/edit.js +4 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author-name/edit.js +2 -0
- package/build-module/post-author-name/edit.js.map +1 -1
- package/build-module/post-content/edit.js +6 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-date/edit.js +2 -0
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -0
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +0 -6
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +3 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +2 -0
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-terms/use-post-terms.js +1 -1
- package/build-module/post-terms/use-post-terms.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +90 -0
- package/build-module/post-time-to-read/edit.js.map +1 -0
- package/build-module/post-time-to-read/icon.js +15 -0
- package/build-module/post-time-to-read/icon.js.map +1 -0
- package/build-module/post-time-to-read/index.js +40 -0
- package/build-module/post-time-to-read/index.js.map +1 -0
- package/build-module/post-title/edit.js +2 -0
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/pullquote/deprecated.js +3 -2
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +1 -0
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +4 -3
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +21 -6
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/edit.js +2 -0
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/read-more/edit.js +1 -0
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +3 -0
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +1 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/edit/index.js +2 -0
- package/build-module/site-title/edit/index.js.map +1 -1
- package/build-module/social-links/edit.js +4 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/spacer/controls.native.js +9 -8
- package/build-module/spacer/controls.native.js.map +1 -1
- package/build-module/spacer/edit.native.js +39 -7
- package/build-module/spacer/edit.native.js.map +1 -1
- package/build-module/spacer/save.native.js +22 -0
- package/build-module/spacer/save.native.js.map +1 -0
- package/build-module/table/edit.js +3 -0
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/state.js +13 -5
- package/build-module/table/state.js.map +1 -1
- package/build-module/table-of-contents/edit.js +1 -0
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +1 -0
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +32 -29
- package/build-module/template-part/edit/import-controls.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +69 -20
- package/build-module/template-part/edit/utils/transformers.js.map +1 -1
- package/build-module/text-columns/edit.js +3 -6
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/text-columns/save.js +11 -12
- package/build-module/text-columns/save.js.map +1 -1
- package/build-module/video/edit-common-settings.js +5 -0
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-style/cover/style-rtl.css +11 -5
- package/build-style/cover/style.css +11 -5
- package/build-style/editor-rtl.css +9 -4
- package/build-style/editor.css +9 -4
- package/build-style/navigation/editor-rtl.css +1 -1
- package/build-style/navigation/editor.css +1 -1
- package/build-style/page-list/editor-rtl.css +4 -0
- package/build-style/page-list/editor.css +4 -0
- package/build-style/post-excerpt/editor-rtl.css +1 -1
- package/build-style/post-excerpt/editor.css +1 -1
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/query/editor-rtl.css +1 -0
- package/build-style/query/editor.css +1 -0
- package/build-style/site-logo/editor-rtl.css +2 -2
- package/build-style/site-logo/editor.css +2 -2
- package/build-style/style-rtl.css +12 -5
- package/build-style/style.css +12 -5
- package/package.json +31 -30
- package/src/archives/edit.js +3 -0
- package/src/audio/edit.js +2 -0
- package/src/audio/test/__snapshots__/edit.native.js.snap +82 -42
- package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/audio/test/transforms.native.js +42 -0
- package/src/avatar/edit.js +2 -4
- package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/block/test/transforms.native.js +40 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/buttons/test/transforms.native.js +48 -0
- package/src/categories/edit.js +5 -0
- package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
- package/src/columns/edit.js +29 -17
- package/src/columns/edit.native.js +1 -1
- package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
- package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
- package/src/columns/test/transforms.native.js +91 -0
- package/src/columns/test/utils.js +54 -0
- package/src/columns/utils.js +8 -8
- package/src/comment-author-name/edit.js +2 -0
- package/src/comment-date/edit.js +1 -0
- package/src/comment-edit-link/edit.js +1 -0
- package/src/comment-template/index.php +1 -2
- package/src/comments/edit/placeholder.js +16 -4
- package/src/comments-title/edit.js +2 -0
- package/src/cover/block.json +9 -3
- package/src/cover/edit/inspector-controls.js +2 -0
- package/src/cover/index.js +2 -0
- package/src/cover/index.php +4 -6
- package/src/cover/style.scss +16 -7
- package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
- package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/cover/test/transforms.native.js +112 -0
- package/src/cover/variations.js +20 -0
- package/src/embed/edit.js +16 -12
- package/src/embed/edit.native.js +28 -18
- package/src/embed/embed-controls.js +1 -0
- package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
- package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
- package/src/embed/test/index.js +12 -0
- package/src/embed/test/transforms.native.js +44 -0
- package/src/embed/util.js +29 -8
- package/src/file/inspector.js +3 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +67 -51
- package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/file/test/transforms.native.js +42 -0
- package/src/freeform/modal.js +1 -1
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/freeform/test/transforms.native.js +39 -0
- package/src/gallery/edit.js +5 -0
- package/src/gallery/shared.js +6 -11
- package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
- package/src/gallery/test/transforms.native.js +52 -0
- package/src/gallery/use-image-sizes.js +3 -16
- package/src/gallery/v1/edit.js +8 -16
- package/src/gallery/v1/gallery-image.js +1 -2
- package/src/gallery/v1/shared.js +5 -10
- package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
- package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
- package/src/group/test/transforms.native.js +75 -0
- package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
- package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/heading/test/transforms.native.js +46 -0
- package/src/image/edit.js +4 -4
- package/src/image/image.js +4 -9
- package/src/image/index.php +4 -4
- package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
- package/src/image/test/transforms.native.js +48 -0
- package/src/image/utils.js +2 -2
- package/src/index.js +2 -0
- package/src/latest-comments/edit.js +3 -0
- package/src/latest-posts/edit.js +15 -16
- package/src/latest-posts/edit.native.js +3 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/latest-posts/test/transforms.native.js +61 -0
- package/src/list/ordered-list-settings.js +1 -0
- package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
- package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
- package/src/list/test/transforms.native.js +56 -0
- package/src/list-item/edit.js +10 -3
- package/src/list-item/hooks/use-outdent-list-item.js +2 -1
- package/src/loginout/edit.js +2 -0
- package/src/media-text/constants.js +16 -0
- package/src/media-text/edit.js +10 -18
- package/src/media-text/edit.native.js +3 -9
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/media-text/test/transforms.native.js +112 -0
- package/src/media-text/transforms.js +24 -51
- package/src/missing/test/__snapshots__/edit.native.js.snap +21 -3
- package/src/more/edit.js +1 -0
- package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/more/test/transforms.native.js +42 -0
- package/src/navigation/edit/index.js +121 -76
- package/src/navigation/edit/inner-blocks.js +3 -0
- package/src/navigation/edit/menu-inspector-controls.js +2 -7
- package/src/navigation/edit/navigation-menu-selector.js +41 -25
- package/src/navigation/edit/overlay-menu-preview.js +1 -0
- package/src/navigation/edit/placeholder/index.js +1 -1
- package/src/navigation/edit/unsaved-inner-blocks.js +46 -32
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +124 -122
- package/src/navigation/edit/use-create-navigation-menu.js +1 -1
- package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
- package/src/navigation/edit/use-navigation-notice.js +16 -13
- package/src/navigation/editor.scss +23 -20
- package/src/navigation/index.php +5 -3
- package/src/navigation-link/edit.js +0 -9
- package/src/navigation-link/index.php +5 -8
- package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
- package/src/navigation-submenu/edit.js +0 -10
- package/src/navigation-submenu/index.php +23 -6
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/nextpage/test/transforms.native.js +42 -0
- package/src/page-list/convert-to-links-modal.js +38 -0
- package/src/page-list/edit.js +82 -69
- package/src/page-list/editor.scss +6 -0
- package/src/page-list-item/edit.js +2 -3
- package/src/paragraph/edit.js +1 -0
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
- package/src/paragraph/test/transforms.native.js +50 -0
- package/src/post-author/edit.js +4 -0
- package/src/post-author-name/edit.js +2 -0
- package/src/post-content/edit.js +5 -1
- package/src/post-date/edit.js +2 -0
- package/src/post-excerpt/edit.js +1 -0
- package/src/post-excerpt/editor.scss +1 -1
- package/src/post-excerpt/index.php +1 -2
- package/src/post-featured-image/dimension-controls.js +0 -8
- package/src/post-featured-image/edit.js +3 -1
- package/src/post-featured-image/style.scss +1 -0
- package/src/post-navigation-link/edit.js +2 -0
- package/src/post-terms/index.php +1 -0
- package/src/post-terms/use-post-terms.js +1 -1
- package/src/post-time-to-read/block.json +20 -0
- package/src/post-time-to-read/edit.js +101 -0
- package/src/post-time-to-read/icon.js +15 -0
- package/src/post-time-to-read/index.js +17 -0
- package/src/post-time-to-read/index.php +62 -0
- package/src/post-title/edit.js +2 -0
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/preformatted/test/transforms.native.js +42 -0
- package/src/pullquote/deprecated.js +2 -6
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/pullquote/test/transforms.native.js +46 -0
- package/src/query/edit/inspector-controls/index.js +1 -0
- package/src/query/edit/query-placeholder.js +10 -5
- package/src/query/editor.scss +1 -0
- package/src/query/test/utils.js +33 -1
- package/src/query/utils.js +19 -6
- package/src/query-title/edit.js +2 -0
- package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
- package/src/quote/test/transforms.native.js +67 -0
- package/src/read-more/edit.js +1 -0
- package/src/rss/edit.js +3 -0
- package/src/search/test/__snapshots__/edit.native.js.snap +71 -61
- package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/search/test/transforms.native.js +40 -0
- package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/separator/test/transforms.native.js +42 -0
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/shortcode/test/transforms.native.js +42 -0
- package/src/site-logo/edit.js +3 -0
- package/src/site-logo/editor.scss +3 -3
- package/src/site-logo/index.php +7 -2
- package/src/site-tagline/block.json +1 -0
- package/src/site-title/edit/index.js +2 -0
- package/src/social-link/index.php +6 -6
- package/src/social-links/edit.js +3 -0
- package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/social-links/test/transforms.native.js +53 -0
- package/src/spacer/controls.native.js +13 -5
- package/src/spacer/edit.native.js +45 -6
- package/src/spacer/save.native.js +18 -0
- package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/spacer/test/index.native.js +81 -0
- package/src/spacer/test/transforms.native.js +42 -0
- package/src/table/edit.js +3 -0
- package/src/table/state.js +8 -17
- package/src/table-of-contents/edit.js +1 -0
- package/src/tag-cloud/edit.js +1 -0
- package/src/template-part/edit/import-controls.js +26 -34
- package/src/template-part/edit/utils/transformers.js +96 -19
- package/src/template-part/index.php +7 -6
- package/src/text-columns/edit.js +1 -6
- package/src/text-columns/save.js +1 -6
- package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
- package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/verse/test/transforms.native.js +42 -0
- package/src/video/edit-common-settings.js +5 -0
- package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
- package/src/video/test/transforms.native.js +48 -0
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -7,11 +7,11 @@ import classnames from 'classnames';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import {
|
|
10
|
+
useCallback,
|
|
10
11
|
useState,
|
|
11
12
|
useEffect,
|
|
12
13
|
useRef,
|
|
13
14
|
Platform,
|
|
14
|
-
useMemo,
|
|
15
15
|
} from '@wordpress/element';
|
|
16
16
|
import {
|
|
17
17
|
InspectorControls,
|
|
@@ -106,16 +106,20 @@ function Navigation( {
|
|
|
106
106
|
|
|
107
107
|
const ref = attributes.ref;
|
|
108
108
|
|
|
109
|
-
const setRef = (
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
const setRef = useCallback(
|
|
110
|
+
( postId ) => {
|
|
111
|
+
setAttributes( { ref: postId } );
|
|
112
|
+
},
|
|
113
|
+
[ setAttributes ]
|
|
114
|
+
);
|
|
112
115
|
|
|
113
116
|
const recursionId = `navigationMenu/${ ref }`;
|
|
114
117
|
const hasAlreadyRendered = useHasRecursion( recursionId );
|
|
115
118
|
|
|
116
119
|
// Preload classic menus, so that they don't suddenly pop-in when viewing
|
|
117
120
|
// the Select Menu dropdown.
|
|
118
|
-
const { menus: classicMenus } =
|
|
121
|
+
const { menus: classicMenus, hasResolvedMenus: hasResolvedClassicMenus } =
|
|
122
|
+
useNavigationEntities();
|
|
119
123
|
|
|
120
124
|
const [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =
|
|
121
125
|
useNavigationNotice( {
|
|
@@ -148,34 +152,6 @@ function Navigation( {
|
|
|
148
152
|
createNavigationMenu( '' );
|
|
149
153
|
};
|
|
150
154
|
|
|
151
|
-
useEffect( () => {
|
|
152
|
-
hideNavigationMenuStatusNotice();
|
|
153
|
-
|
|
154
|
-
if ( isCreatingNavigationMenu ) {
|
|
155
|
-
speak( __( `Creating Navigation Menu.` ) );
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if ( createNavigationMenuIsSuccess ) {
|
|
159
|
-
handleUpdateMenu( createNavigationMenuPost.id, {
|
|
160
|
-
focusNavigationBlock: true,
|
|
161
|
-
} );
|
|
162
|
-
|
|
163
|
-
showNavigationMenuStatusNotice(
|
|
164
|
-
__( `Navigation Menu successfully created.` )
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if ( createNavigationMenuIsError ) {
|
|
169
|
-
showNavigationMenuStatusNotice(
|
|
170
|
-
__( 'Failed to create Navigation Menu.' )
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
}, [
|
|
174
|
-
createNavigationMenuStatus,
|
|
175
|
-
createNavigationMenuError,
|
|
176
|
-
createNavigationMenuPost,
|
|
177
|
-
] );
|
|
178
|
-
|
|
179
155
|
const {
|
|
180
156
|
hasUncontrolledInnerBlocks,
|
|
181
157
|
uncontrolledInnerBlocks,
|
|
@@ -224,17 +200,21 @@ function Navigation( {
|
|
|
224
200
|
const isConvertingClassicMenu =
|
|
225
201
|
classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
|
|
226
202
|
|
|
227
|
-
// Only
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
203
|
+
// Only auto-fallback to the latest published menu.
|
|
204
|
+
// The REST API already returns items sorted by publishing date.
|
|
205
|
+
const fallbackNavigationMenuId = navigationMenus?.find(
|
|
206
|
+
( menu ) => menu.status === 'publish'
|
|
207
|
+
)?.id;
|
|
208
|
+
|
|
209
|
+
const handleUpdateMenu = useCallback(
|
|
210
|
+
( menuId, options = { focusNavigationBlock: false } ) => {
|
|
211
|
+
const { focusNavigationBlock } = options;
|
|
212
|
+
setRef( menuId );
|
|
213
|
+
if ( focusNavigationBlock ) {
|
|
214
|
+
selectBlock( clientId );
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
[ selectBlock, clientId, setRef ]
|
|
238
218
|
);
|
|
239
219
|
|
|
240
220
|
// Attempt to retrieve and prioritize any existing navigation menu unless:
|
|
@@ -249,7 +229,7 @@ function Navigation( {
|
|
|
249
229
|
hasUncontrolledInnerBlocks ||
|
|
250
230
|
isCreatingNavigationMenu ||
|
|
251
231
|
ref ||
|
|
252
|
-
!
|
|
232
|
+
! fallbackNavigationMenuId
|
|
253
233
|
) {
|
|
254
234
|
return;
|
|
255
235
|
}
|
|
@@ -262,19 +242,35 @@ function Navigation( {
|
|
|
262
242
|
* nor to be undoable, hence why it is marked as non persistent
|
|
263
243
|
*/
|
|
264
244
|
__unstableMarkNextChangeAsNotPersistent();
|
|
265
|
-
setRef(
|
|
245
|
+
setRef( fallbackNavigationMenuId );
|
|
266
246
|
}, [
|
|
267
247
|
ref,
|
|
248
|
+
setRef,
|
|
268
249
|
isCreatingNavigationMenu,
|
|
269
|
-
|
|
250
|
+
fallbackNavigationMenuId,
|
|
270
251
|
hasUncontrolledInnerBlocks,
|
|
252
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
271
253
|
] );
|
|
272
254
|
|
|
255
|
+
const isEntityAvailable =
|
|
256
|
+
! isNavigationMenuMissing && isNavigationMenuResolved;
|
|
257
|
+
|
|
258
|
+
// If the block has inner blocks, but no menu id, then these blocks are either:
|
|
259
|
+
// - inserted via a pattern.
|
|
260
|
+
// - inserted directly via Code View (or otherwise).
|
|
261
|
+
// - from an older version of navigation block added before the block used a wp_navigation entity.
|
|
262
|
+
// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
|
|
263
|
+
// that automatically saves the menu as an entity when changes are made to the inner blocks.
|
|
264
|
+
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;
|
|
265
|
+
|
|
273
266
|
useEffect( () => {
|
|
274
267
|
if (
|
|
268
|
+
ref ||
|
|
269
|
+
! hasResolvedClassicMenus ||
|
|
275
270
|
! hasResolvedNavigationMenus ||
|
|
276
271
|
isConvertingClassicMenu ||
|
|
277
|
-
|
|
272
|
+
fallbackNavigationMenuId ||
|
|
273
|
+
hasUnsavedBlocks ||
|
|
278
274
|
! classicMenus?.length
|
|
279
275
|
) {
|
|
280
276
|
return;
|
|
@@ -306,7 +302,17 @@ function Navigation( {
|
|
|
306
302
|
'publish'
|
|
307
303
|
);
|
|
308
304
|
}
|
|
309
|
-
}, [
|
|
305
|
+
}, [
|
|
306
|
+
hasResolvedClassicMenus,
|
|
307
|
+
hasResolvedNavigationMenus,
|
|
308
|
+
hasUnsavedBlocks,
|
|
309
|
+
classicMenus,
|
|
310
|
+
convertClassicMenu,
|
|
311
|
+
createNavigationMenu,
|
|
312
|
+
fallbackNavigationMenuId,
|
|
313
|
+
isConvertingClassicMenu,
|
|
314
|
+
ref,
|
|
315
|
+
] );
|
|
310
316
|
|
|
311
317
|
const navRef = useRef();
|
|
312
318
|
|
|
@@ -337,10 +343,13 @@ function Navigation( {
|
|
|
337
343
|
__unstableMarkNextChangeAsNotPersistent();
|
|
338
344
|
replaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );
|
|
339
345
|
}
|
|
340
|
-
}, [
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
346
|
+
}, [
|
|
347
|
+
clientId,
|
|
348
|
+
isPlaceholder,
|
|
349
|
+
ref,
|
|
350
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
351
|
+
replaceInnerBlocks,
|
|
352
|
+
] );
|
|
344
353
|
|
|
345
354
|
// "loading" state:
|
|
346
355
|
// - there is a menu creation process in progress.
|
|
@@ -393,17 +402,6 @@ function Navigation( {
|
|
|
393
402
|
] = useState();
|
|
394
403
|
const [ detectedOverlayColor, setDetectedOverlayColor ] = useState();
|
|
395
404
|
|
|
396
|
-
const handleUpdateMenu = (
|
|
397
|
-
menuId,
|
|
398
|
-
options = { focusNavigationBlock: false }
|
|
399
|
-
) => {
|
|
400
|
-
const { focusNavigationBlock } = options;
|
|
401
|
-
setRef( menuId );
|
|
402
|
-
if ( focusNavigationBlock ) {
|
|
403
|
-
selectBlock( clientId );
|
|
404
|
-
}
|
|
405
|
-
};
|
|
406
|
-
|
|
407
405
|
const onSelectClassicMenu = async ( classicMenu ) => {
|
|
408
406
|
const navMenu = await convertClassicMenu(
|
|
409
407
|
classicMenu.id,
|
|
@@ -421,6 +419,40 @@ function Navigation( {
|
|
|
421
419
|
handleUpdateMenu( menuId );
|
|
422
420
|
};
|
|
423
421
|
|
|
422
|
+
useEffect( () => {
|
|
423
|
+
hideNavigationMenuStatusNotice();
|
|
424
|
+
|
|
425
|
+
if ( isCreatingNavigationMenu ) {
|
|
426
|
+
speak( __( `Creating Navigation Menu.` ) );
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
if ( createNavigationMenuIsSuccess ) {
|
|
430
|
+
handleUpdateMenu( createNavigationMenuPost?.id, {
|
|
431
|
+
focusNavigationBlock: true,
|
|
432
|
+
} );
|
|
433
|
+
|
|
434
|
+
showNavigationMenuStatusNotice(
|
|
435
|
+
__( `Navigation Menu successfully created.` )
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
if ( createNavigationMenuIsError ) {
|
|
440
|
+
showNavigationMenuStatusNotice(
|
|
441
|
+
__( 'Failed to create Navigation Menu.' )
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
}, [
|
|
445
|
+
createNavigationMenuStatus,
|
|
446
|
+
createNavigationMenuError,
|
|
447
|
+
createNavigationMenuPost?.id,
|
|
448
|
+
createNavigationMenuIsError,
|
|
449
|
+
createNavigationMenuIsSuccess,
|
|
450
|
+
isCreatingNavigationMenu,
|
|
451
|
+
handleUpdateMenu,
|
|
452
|
+
hideNavigationMenuStatusNotice,
|
|
453
|
+
showNavigationMenuStatusNotice,
|
|
454
|
+
] );
|
|
455
|
+
|
|
424
456
|
useEffect( () => {
|
|
425
457
|
hideClassicMenuConversionNotice();
|
|
426
458
|
if ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {
|
|
@@ -438,7 +470,12 @@ function Navigation( {
|
|
|
438
470
|
__( 'Classic menu import failed.' )
|
|
439
471
|
);
|
|
440
472
|
}
|
|
441
|
-
}, [
|
|
473
|
+
}, [
|
|
474
|
+
classicMenuConversionStatus,
|
|
475
|
+
classicMenuConversionError,
|
|
476
|
+
hideClassicMenuConversionNotice,
|
|
477
|
+
showClassicMenuConversionNotice,
|
|
478
|
+
] );
|
|
442
479
|
|
|
443
480
|
// Spacer block needs orientation from context. This is a patch until
|
|
444
481
|
// https://github.com/WordPress/gutenberg/issues/36197 is addressed.
|
|
@@ -447,7 +484,11 @@ function Navigation( {
|
|
|
447
484
|
__unstableMarkNextChangeAsNotPersistent();
|
|
448
485
|
setAttributes( { orientation } );
|
|
449
486
|
}
|
|
450
|
-
}, [
|
|
487
|
+
}, [
|
|
488
|
+
orientation,
|
|
489
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
490
|
+
setAttributes,
|
|
491
|
+
] );
|
|
451
492
|
|
|
452
493
|
useEffect( () => {
|
|
453
494
|
if ( ! enableContrastChecking ) {
|
|
@@ -477,7 +518,11 @@ function Navigation( {
|
|
|
477
518
|
setDetectedOverlayBackgroundColor
|
|
478
519
|
);
|
|
479
520
|
}
|
|
480
|
-
}
|
|
521
|
+
}, [
|
|
522
|
+
enableContrastChecking,
|
|
523
|
+
overlayTextColor.color,
|
|
524
|
+
overlayBackgroundColor.color,
|
|
525
|
+
] );
|
|
481
526
|
|
|
482
527
|
useEffect( () => {
|
|
483
528
|
if ( ! isSelected && ! isInnerBlockSelected ) {
|
|
@@ -518,6 +563,9 @@ function Navigation( {
|
|
|
518
563
|
canUserCreateNavigationMenu,
|
|
519
564
|
hasResolvedCanUserCreateNavigationMenu,
|
|
520
565
|
ref,
|
|
566
|
+
hideNavigationMenuPermissionsNotice,
|
|
567
|
+
showNavigationMenuPermissionsNotice,
|
|
568
|
+
navMenuResolvedButMissing,
|
|
521
569
|
] );
|
|
522
570
|
|
|
523
571
|
const hasManagePermissions =
|
|
@@ -598,6 +646,7 @@ function Navigation( {
|
|
|
598
646
|
<>
|
|
599
647
|
<h3>{ __( 'Submenus' ) }</h3>
|
|
600
648
|
<ToggleControl
|
|
649
|
+
__nextHasNoMarginBottom
|
|
601
650
|
checked={ openSubmenusOnClick }
|
|
602
651
|
onChange={ ( value ) => {
|
|
603
652
|
setAttributes( {
|
|
@@ -611,6 +660,7 @@ function Navigation( {
|
|
|
611
660
|
/>
|
|
612
661
|
|
|
613
662
|
<ToggleControl
|
|
663
|
+
__nextHasNoMarginBottom
|
|
614
664
|
checked={ showSubmenuIcon }
|
|
615
665
|
onChange={ ( value ) => {
|
|
616
666
|
setAttributes( {
|
|
@@ -682,14 +732,6 @@ function Navigation( {
|
|
|
682
732
|
</>
|
|
683
733
|
);
|
|
684
734
|
|
|
685
|
-
// If the block has inner blocks, but no menu id, then these blocks are either:
|
|
686
|
-
// - inserted via a pattern.
|
|
687
|
-
// - inserted directly via Code View (or otherwise).
|
|
688
|
-
// - from an older version of navigation block added before the block used a wp_navigation entity.
|
|
689
|
-
// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
|
|
690
|
-
// that automatically saves the menu as an entity when changes are made to the inner blocks.
|
|
691
|
-
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;
|
|
692
|
-
|
|
693
735
|
const isManageMenusButtonDisabled =
|
|
694
736
|
! hasManagePermissions || ! hasResolvedNavigationMenus;
|
|
695
737
|
|
|
@@ -743,6 +785,7 @@ function Navigation( {
|
|
|
743
785
|
createNavigationMenuIsSuccess
|
|
744
786
|
}
|
|
745
787
|
createNavigationMenuIsError={ createNavigationMenuIsError }
|
|
788
|
+
currentMenuId={ ref }
|
|
746
789
|
isNavigationMenuMissing={ isNavigationMenuMissing }
|
|
747
790
|
isManageMenusButtonDisabled={ isManageMenusButtonDisabled }
|
|
748
791
|
onCreateNew={ createUntitledEmptyNavigationMenu }
|
|
@@ -850,7 +893,9 @@ function Navigation( {
|
|
|
850
893
|
|
|
851
894
|
{ isLoading && (
|
|
852
895
|
<TagName { ...blockProps }>
|
|
853
|
-
<
|
|
896
|
+
<div className="wp-block-navigation__loading-indicator-container">
|
|
897
|
+
<Spinner className="wp-block-navigation__loading-indicator" />
|
|
898
|
+
</div>
|
|
854
899
|
</TagName>
|
|
855
900
|
) }
|
|
856
901
|
|
|
@@ -45,10 +45,6 @@ const MainContent = ( {
|
|
|
45
45
|
);
|
|
46
46
|
const { navigationMenu } = useNavigationMenu( currentMenuId );
|
|
47
47
|
|
|
48
|
-
if ( currentMenuId && isNavigationMenuMissing ) {
|
|
49
|
-
return <p>{ __( 'Select or create a menu' ) }</p>;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
48
|
if ( currentMenuId && isNavigationMenuMissing ) {
|
|
53
49
|
return <DeletedNavigationWarning onCreateNew={ onCreateNew } />;
|
|
54
50
|
}
|
|
@@ -69,6 +65,7 @@ const MainContent = ( {
|
|
|
69
65
|
return (
|
|
70
66
|
<OffCanvasEditor
|
|
71
67
|
blocks={ clientIdsTree }
|
|
68
|
+
parentClientId={ clientId }
|
|
72
69
|
isExpanded={ true }
|
|
73
70
|
LeafMoreMenu={ LeafMoreMenu }
|
|
74
71
|
description={ description }
|
|
@@ -89,9 +86,7 @@ const MenuInspectorControls = ( props ) => {
|
|
|
89
86
|
|
|
90
87
|
return (
|
|
91
88
|
<InspectorControls group="list">
|
|
92
|
-
<PanelBody
|
|
93
|
-
title={ process.env.IS_GUTENBERG_PLUGIN ? null : __( 'Menu' ) }
|
|
94
|
-
>
|
|
89
|
+
<PanelBody title={ null }>
|
|
95
90
|
<HStack className="wp-block-navigation-off-canvas-editor__header">
|
|
96
91
|
<Heading
|
|
97
92
|
className="wp-block-navigation-off-canvas-editor__title"
|
|
@@ -11,6 +11,7 @@ import { moreVertical } from '@wordpress/icons';
|
|
|
11
11
|
import { __, sprintf } from '@wordpress/i18n';
|
|
12
12
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
13
13
|
import { useEffect, useMemo, useState } from '@wordpress/element';
|
|
14
|
+
import { useEntityProp } from '@wordpress/core-data';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Internal dependencies
|
|
@@ -18,6 +19,14 @@ import { useEffect, useMemo, useState } from '@wordpress/element';
|
|
|
18
19
|
import useNavigationMenu from '../use-navigation-menu';
|
|
19
20
|
import useNavigationEntities from '../use-navigation-entities';
|
|
20
21
|
|
|
22
|
+
function buildMenuLabel( title, id ) {
|
|
23
|
+
const label =
|
|
24
|
+
decodeEntities( title?.rendered ) ||
|
|
25
|
+
/* translators: %s is the index of the menu in the list of menus. */
|
|
26
|
+
sprintf( __( '(no title %s)' ), id );
|
|
27
|
+
return label;
|
|
28
|
+
}
|
|
29
|
+
|
|
21
30
|
function NavigationMenuSelector( {
|
|
22
31
|
currentMenuId,
|
|
23
32
|
onSelectNavigationMenu,
|
|
@@ -30,7 +39,6 @@ function NavigationMenuSelector( {
|
|
|
30
39
|
/* translators: %s: The name of a menu. */
|
|
31
40
|
const createActionLabel = __( "Create from '%s'" );
|
|
32
41
|
|
|
33
|
-
const [ selectorLabel, setSelectorLabel ] = useState( '' );
|
|
34
42
|
const [ isCreatingMenu, setIsCreatingMenu ] = useState( false );
|
|
35
43
|
|
|
36
44
|
actionLabel = actionLabel || createActionLabel;
|
|
@@ -39,25 +47,23 @@ function NavigationMenuSelector( {
|
|
|
39
47
|
|
|
40
48
|
const {
|
|
41
49
|
navigationMenus,
|
|
50
|
+
isResolvingNavigationMenus,
|
|
42
51
|
hasResolvedNavigationMenus,
|
|
43
52
|
canUserCreateNavigationMenu,
|
|
44
53
|
canSwitchNavigationMenu,
|
|
45
54
|
} = useNavigationMenu();
|
|
46
55
|
|
|
56
|
+
const [ currentTitle ] = useEntityProp(
|
|
57
|
+
'postType',
|
|
58
|
+
'wp_navigation',
|
|
59
|
+
'title'
|
|
60
|
+
);
|
|
61
|
+
|
|
47
62
|
const menuChoices = useMemo( () => {
|
|
48
63
|
return (
|
|
49
64
|
navigationMenus?.map( ( { id, title }, index ) => {
|
|
50
|
-
const label =
|
|
51
|
-
|
|
52
|
-
/* translators: %s is the index of the menu in the list of menus. */
|
|
53
|
-
sprintf( __( '(no title %s)' ), index + 1 );
|
|
54
|
-
|
|
55
|
-
if ( id === currentMenuId && ! isCreatingMenu ) {
|
|
56
|
-
setSelectorLabel(
|
|
57
|
-
/* translators: %s is the name of a navigation menu. */
|
|
58
|
-
sprintf( __( 'You are currently editing %s' ), label )
|
|
59
|
-
);
|
|
60
|
-
}
|
|
65
|
+
const label = buildMenuLabel( title, index + 1 );
|
|
66
|
+
|
|
61
67
|
return {
|
|
62
68
|
value: id,
|
|
63
69
|
label,
|
|
@@ -65,7 +71,7 @@ function NavigationMenuSelector( {
|
|
|
65
71
|
};
|
|
66
72
|
} ) || []
|
|
67
73
|
);
|
|
68
|
-
}, [
|
|
74
|
+
}, [ navigationMenus, actionLabel ] );
|
|
69
75
|
|
|
70
76
|
const hasNavigationMenus = !! navigationMenus?.length;
|
|
71
77
|
const hasClassicMenus = !! classicMenus?.length;
|
|
@@ -77,20 +83,35 @@ function NavigationMenuSelector( {
|
|
|
77
83
|
const menuUnavailable =
|
|
78
84
|
hasResolvedNavigationMenus && currentMenuId === null;
|
|
79
85
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
let selectorLabel = '';
|
|
87
|
+
|
|
88
|
+
if ( isCreatingMenu || isResolvingNavigationMenus ) {
|
|
89
|
+
selectorLabel = __( 'Loading …' );
|
|
90
|
+
} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {
|
|
91
|
+
// Note: classic Menus may be available.
|
|
92
|
+
selectorLabel = __( 'Choose or create a Navigation menu' );
|
|
93
|
+
} else {
|
|
94
|
+
// Current Menu's title.
|
|
95
|
+
selectorLabel = currentTitle;
|
|
96
|
+
}
|
|
86
97
|
|
|
98
|
+
useEffect( () => {
|
|
87
99
|
if (
|
|
88
100
|
isCreatingMenu &&
|
|
89
101
|
( createNavigationMenuIsSuccess || createNavigationMenuIsError )
|
|
90
102
|
) {
|
|
91
103
|
setIsCreatingMenu( false );
|
|
92
104
|
}
|
|
93
|
-
}, [
|
|
105
|
+
}, [
|
|
106
|
+
hasResolvedNavigationMenus,
|
|
107
|
+
createNavigationMenuIsSuccess,
|
|
108
|
+
canUserCreateNavigationMenu,
|
|
109
|
+
createNavigationMenuIsError,
|
|
110
|
+
isCreatingMenu,
|
|
111
|
+
menuUnavailable,
|
|
112
|
+
noBlockMenus,
|
|
113
|
+
noMenuSelected,
|
|
114
|
+
] );
|
|
94
115
|
|
|
95
116
|
const NavigationMenuSelectorDropdown = (
|
|
96
117
|
<DropdownMenu
|
|
@@ -105,7 +126,6 @@ function NavigationMenuSelector( {
|
|
|
105
126
|
<MenuItemsChoice
|
|
106
127
|
value={ currentMenuId }
|
|
107
128
|
onSelect={ ( menuId ) => {
|
|
108
|
-
setSelectorLabel( __( 'Loading …' ) );
|
|
109
129
|
setIsCreatingMenu( true );
|
|
110
130
|
onSelectNavigationMenu( menuId );
|
|
111
131
|
onClose();
|
|
@@ -122,9 +142,6 @@ function NavigationMenuSelector( {
|
|
|
122
142
|
return (
|
|
123
143
|
<MenuItem
|
|
124
144
|
onClick={ () => {
|
|
125
|
-
setSelectorLabel(
|
|
126
|
-
__( 'Loading …' )
|
|
127
|
-
);
|
|
128
145
|
setIsCreatingMenu( true );
|
|
129
146
|
onSelectClassicMenu( menu );
|
|
130
147
|
onClose();
|
|
@@ -151,7 +168,6 @@ function NavigationMenuSelector( {
|
|
|
151
168
|
onClose();
|
|
152
169
|
onCreateNew();
|
|
153
170
|
setIsCreatingMenu( true );
|
|
154
|
-
setSelectorLabel( __( 'Loading …' ) );
|
|
155
171
|
} }
|
|
156
172
|
>
|
|
157
173
|
{ __( 'Create new menu' ) }
|
|
@@ -17,6 +17,7 @@ export default function OverlayMenuPreview( { setAttributes, hasIcon, icon } ) {
|
|
|
17
17
|
return (
|
|
18
18
|
<>
|
|
19
19
|
<ToggleControl
|
|
20
|
+
__nextHasNoMarginBottom
|
|
20
21
|
label={ __( 'Show icon button' ) }
|
|
21
22
|
help={ __(
|
|
22
23
|
'Configure the visual appearance of the button opening the overlay menu.'
|
|
@@ -38,7 +38,7 @@ export default function NavigationPlaceholder( {
|
|
|
38
38
|
if ( hasResolvedMenus ) {
|
|
39
39
|
speak( __( 'Navigation block setup options ready.' ) );
|
|
40
40
|
}
|
|
41
|
-
}, [ isResolvingMenus, isSelected ] );
|
|
41
|
+
}, [ hasResolvedMenus, isResolvingMenus, isSelected ] );
|
|
42
42
|
|
|
43
43
|
const isResolvingActions =
|
|
44
44
|
isResolvingMenus && isResolvingCanUserCreateNavigationMenu;
|
|
@@ -120,39 +120,53 @@ export default function UnsavedInnerBlocks( {
|
|
|
120
120
|
const { hasResolvedNavigationMenus } = useNavigationMenu();
|
|
121
121
|
|
|
122
122
|
// Automatically save the uncontrolled blocks.
|
|
123
|
-
useEffect(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
123
|
+
useEffect(
|
|
124
|
+
() => {
|
|
125
|
+
// The block will be disabled when used in a BlockPreview.
|
|
126
|
+
// In this case avoid automatic creation of a wp_navigation post.
|
|
127
|
+
// Otherwise the user will be spammed with lots of menus!
|
|
128
|
+
//
|
|
129
|
+
// Also ensure other navigation menus have loaded so an
|
|
130
|
+
// accurate name can be created.
|
|
131
|
+
//
|
|
132
|
+
// Don't try saving when another save is already
|
|
133
|
+
// in progress.
|
|
134
|
+
//
|
|
135
|
+
// And finally only create the menu when the block is selected,
|
|
136
|
+
// which is an indication they want to start editing.
|
|
137
|
+
if (
|
|
138
|
+
isDisabled ||
|
|
139
|
+
isSaving ||
|
|
140
|
+
! hasResolvedDraftNavigationMenus ||
|
|
141
|
+
! hasResolvedNavigationMenus ||
|
|
142
|
+
! hasSelection ||
|
|
143
|
+
! innerBlocksAreDirty
|
|
144
|
+
) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
146
147
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
148
|
+
createNavigationMenu( null, blocks );
|
|
149
|
+
},
|
|
150
|
+
/* The dependency "blocks" is intentionally omitted here.
|
|
151
|
+
* This is because making blocks a dependency would cause
|
|
152
|
+
* createNavigationMenu to run on every block change whereas
|
|
153
|
+
* we only want it to run when the blocks are first detected
|
|
154
|
+
* as dirty.
|
|
155
|
+
* A better solution might be to add a hard saving lock using
|
|
156
|
+
* a ref to avoid having to disbale theses eslint rules.
|
|
157
|
+
*/
|
|
158
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
159
|
+
[
|
|
160
|
+
createNavigationMenu,
|
|
161
|
+
isDisabled,
|
|
162
|
+
isSaving,
|
|
163
|
+
hasResolvedDraftNavigationMenus,
|
|
164
|
+
hasResolvedNavigationMenus,
|
|
165
|
+
innerBlocksAreDirty,
|
|
166
|
+
hasSelection,
|
|
167
|
+
]
|
|
168
|
+
/* eslint-enable react-hooks/exhaustive-deps */
|
|
169
|
+
);
|
|
156
170
|
|
|
157
171
|
const Wrapper = isSaving ? Disabled : 'div';
|
|
158
172
|
|