@wordpress/block-library 7.0.1 → 7.1.0-next.e230fbab09.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/README.md +16 -0
- package/build/audio/edit.js +4 -4
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js +4 -4
- package/build/audio/edit.native.js.map +1 -1
- package/build/audio/transforms.js +1 -1
- package/build/audio/transforms.js.map +1 -1
- package/build/block/edit.js +3 -9
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +3 -2
- package/build/button/edit.js.map +1 -1
- package/build/button/edit.native.js +4 -4
- package/build/button/edit.native.js.map +1 -1
- package/build/buttons/transforms.js +8 -8
- package/build/buttons/transforms.js.map +1 -1
- package/build/categories/edit.js +15 -26
- package/build/categories/edit.js.map +1 -1
- package/build/code/index.js +0 -1
- package/build/code/index.js.map +1 -1
- package/build/columns/columnCalculations.native.js +1 -1
- package/build/columns/columnCalculations.native.js.map +1 -1
- package/build/columns/edit.js +1 -1
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +3 -3
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +12 -0
- package/build/columns/index.js.map +1 -1
- package/build/comment-author-avatar/edit.js +17 -4
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/comment-template/edit.js +94 -36
- package/build/comment-template/edit.js.map +1 -1
- package/build/comment-template/hooks.js +175 -0
- package/build/comment-template/hooks.js.map +1 -0
- package/build/comment-template/index.js +1 -1
- package/build/comment-template/util.js.map +1 -1
- package/build/comments-pagination-next/index.js +1 -1
- package/build/comments-pagination-numbers/index.js +1 -1
- package/build/comments-query-loop/edit/comments-inspector-controls.js +20 -9
- package/build/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
- package/build/comments-query-loop/edit.js +1 -19
- package/build/comments-query-loop/edit.js.map +1 -1
- package/build/comments-query-loop/index.js +5 -0
- package/build/comments-query-loop/index.js.map +1 -1
- package/build/cover/controls.native.js +5 -5
- package/build/cover/controls.native.js.map +1 -1
- package/build/cover/deprecated.js +188 -17
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit.js +29 -33
- package/build/cover/edit.js.map +1 -1
- package/build/cover/edit.native.js +15 -13
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/overlay-color-settings.native.js +7 -6
- package/build/cover/overlay-color-settings.native.js.map +1 -1
- package/build/cover/save.js +1 -1
- package/build/cover/save.js.map +1 -1
- package/build/cover/shared.js +2 -2
- package/build/cover/shared.js.map +1 -1
- package/build/cover/transforms.js +4 -2
- package/build/cover/transforms.js.map +1 -1
- package/build/embed/edit.js +1 -1
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +1 -1
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/util.js +2 -2
- package/build/embed/util.js.map +1 -1
- package/build/embed/variations.js +1 -1
- package/build/embed/variations.js.map +1 -1
- package/build/file/edit.js +20 -17
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js +1 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/save.js +7 -3
- package/build/file/save.js.map +1 -1
- package/build/freeform/edit.js +2 -2
- package/build/freeform/edit.js.map +1 -1
- package/build/gallery/edit.js +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/v1/edit.js +3 -3
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js +3 -3
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/gallery/v1/gallery.native.js +2 -2
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/group/index.js +4 -37
- package/build/group/index.js.map +1 -1
- package/build/group/transforms.js +45 -0
- package/build/group/transforms.js.map +1 -0
- package/build/heading/edit.js +14 -2
- package/build/heading/edit.js.map +1 -1
- package/build/home-link/edit.js +1 -1
- package/build/home-link/edit.js.map +1 -1
- package/build/image/deprecated.js +89 -5
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +7 -6
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +25 -10
- package/build/image/edit.native.js.map +1 -1
- package/build/image/save.js +0 -7
- package/build/image/save.js.map +1 -1
- package/build/image/transforms.js +1 -1
- package/build/image/transforms.js.map +1 -1
- package/build/index.js +3 -4
- package/build/index.js.map +1 -1
- package/build/index.native.js +2 -2
- package/build/index.native.js.map +1 -1
- package/build/latest-posts/edit.js +1 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/media-text/edit.js +21 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +2 -2
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/missing/edit.native.js +1 -1
- package/build/missing/edit.native.js.map +1 -1
- package/build/more/transforms.js +2 -2
- package/build/more/transforms.js.map +1 -1
- package/build/navigation/edit/index.js +144 -68
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +8 -3
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +82 -52
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +32 -61
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/edit/placeholder/placeholder-preview.js +3 -12
- package/build/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +3 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +120 -0
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -0
- package/build/navigation/edit/use-create-navigation-menu.js +53 -4
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +3 -3
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation/menu-items-to-blocks.js +1 -1
- package/build/navigation/menu-items-to-blocks.js.map +1 -1
- package/build/navigation/use-navigation-entities.js +25 -49
- package/build/navigation/use-navigation-entities.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +8 -6
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-link/fallback-variations.js +1 -1
- package/build/navigation-link/fallback-variations.js.map +1 -1
- package/build/navigation-link/hooks.js +2 -2
- package/build/navigation-link/hooks.js.map +1 -1
- package/build/navigation-submenu/edit.js +43 -11
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +13 -23
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +19 -39
- package/build/page-list/edit.js.map +1 -1
- package/build/post-author-name/edit.js +2 -1
- package/build/post-author-name/edit.js.map +1 -1
- package/build/post-comments-form/edit.js +3 -1
- package/build/post-comments-form/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +7 -4
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-terms/edit.js +3 -1
- package/build/post-terms/edit.js.map +1 -1
- package/build/query-title/edit.js +0 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/search/edit.js +4 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/separator/save.js +4 -4
- package/build/separator/save.js.map +1 -1
- package/build/separator/separator-settings.native.js +1 -1
- package/build/separator/separator-settings.native.js.map +1 -1
- package/build/site-logo/edit.js +1 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/social-link/edit.native.js +11 -3
- package/build/social-link/edit.native.js.map +1 -1
- package/build/social-links/deprecated.js +1 -62
- package/build/social-links/deprecated.js.map +1 -1
- package/build/spacer/controls.js +5 -5
- package/build/spacer/controls.js.map +1 -1
- package/build/spacer/controls.native.js +5 -5
- package/build/spacer/controls.native.js.map +1 -1
- package/build/table/edit.js +2 -2
- package/build/table/edit.js.map +1 -1
- package/build/template-part/edit/index.js +36 -64
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/placeholder.js +64 -0
- package/build/template-part/edit/placeholder.js.map +1 -0
- package/build/template-part/edit/selection-modal.js +103 -0
- package/build/template-part/edit/selection-modal.js.map +1 -0
- package/build/template-part/edit/title-modal.js +54 -0
- package/build/template-part/edit/title-modal.js.map +1 -0
- package/build/template-part/edit/utils/hooks.js +156 -0
- package/build/template-part/edit/utils/hooks.js.map +1 -0
- package/build/template-part/index.js +3 -1
- package/build/template-part/index.js.map +1 -1
- package/build/video/edit.js +4 -4
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +3 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.js +4 -4
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/edit.native.js +4 -4
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/audio/transforms.js +1 -1
- package/build-module/audio/transforms.js.map +1 -1
- package/build-module/block/edit.js +5 -11
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +3 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/edit.native.js +6 -6
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/buttons/transforms.js +8 -8
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/categories/edit.js +15 -25
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/code/index.js +0 -1
- package/build-module/code/index.js.map +1 -1
- package/build-module/columns/columnCalculations.native.js +1 -1
- package/build-module/columns/columnCalculations.native.js.map +1 -1
- package/build-module/columns/edit.js +1 -1
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +3 -3
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +12 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +18 -6
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/comment-template/edit.js +95 -37
- package/build-module/comment-template/edit.js.map +1 -1
- package/build-module/comment-template/hooks.js +156 -0
- package/build-module/comment-template/hooks.js.map +1 -0
- package/build-module/comment-template/index.js +1 -1
- package/build-module/comment-template/util.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +1 -1
- package/build-module/comments-pagination-numbers/index.js +1 -1
- package/build-module/comments-query-loop/edit/comments-inspector-controls.js +20 -9
- package/build-module/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
- package/build-module/comments-query-loop/edit.js +2 -19
- package/build-module/comments-query-loop/edit.js.map +1 -1
- package/build-module/comments-query-loop/index.js +5 -0
- package/build-module/comments-query-loop/index.js.map +1 -1
- package/build-module/cover/controls.native.js +5 -5
- package/build-module/cover/controls.native.js.map +1 -1
- package/build-module/cover/deprecated.js +190 -17
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit.js +31 -35
- package/build-module/cover/edit.js.map +1 -1
- package/build-module/cover/edit.native.js +18 -16
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/overlay-color-settings.native.js +7 -7
- package/build-module/cover/overlay-color-settings.native.js.map +1 -1
- package/build-module/cover/save.js +1 -1
- package/build-module/cover/save.js.map +1 -1
- package/build-module/cover/shared.js +2 -2
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/cover/transforms.js +4 -2
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/embed/edit.js +1 -1
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +1 -1
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/util.js +2 -2
- package/build-module/embed/util.js.map +1 -1
- package/build-module/embed/variations.js +1 -1
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/file/edit.js +21 -18
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js +1 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/save.js +7 -3
- package/build-module/file/save.js.map +1 -1
- package/build-module/freeform/edit.js +2 -2
- package/build-module/freeform/edit.js.map +1 -1
- package/build-module/gallery/edit.js +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js +3 -3
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.native.js +3 -3
- package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js +2 -2
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/group/index.js +3 -36
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/transforms.js +36 -0
- package/build-module/group/transforms.js.map +1 -0
- package/build-module/heading/edit.js +15 -3
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/home-link/edit.js +1 -1
- package/build-module/home-link/edit.js.map +1 -1
- package/build-module/image/deprecated.js +90 -7
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +7 -6
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +25 -10
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/save.js +0 -7
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/transforms.js +1 -1
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/index.js +4 -5
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +2 -2
- package/build-module/index.native.js.map +1 -1
- package/build-module/latest-posts/edit.js +1 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/media-text/edit.js +20 -2
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +2 -2
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/missing/edit.native.js +1 -1
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/more/transforms.js +2 -2
- package/build-module/more/transforms.js.map +1 -1
- package/build-module/navigation/edit/index.js +138 -68
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +8 -3
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +82 -48
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +33 -59
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/placeholder/placeholder-preview.js +3 -9
- package/build-module/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +3 -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 +100 -0
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -0
- package/build-module/navigation/edit/use-create-navigation-menu.js +48 -5
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +3 -3
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build-module/navigation/menu-items-to-blocks.js +1 -1
- package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
- package/build-module/navigation/use-navigation-entities.js +26 -50
- package/build-module/navigation/use-navigation-entities.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +8 -6
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-link/fallback-variations.js +1 -1
- package/build-module/navigation-link/fallback-variations.js.map +1 -1
- package/build-module/navigation-link/hooks.js +2 -2
- package/build-module/navigation-link/hooks.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +43 -12
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +15 -25
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +21 -41
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/post-author-name/edit.js +2 -1
- package/build-module/post-author-name/edit.js.map +1 -1
- package/build-module/post-comments-form/edit.js +4 -2
- package/build-module/post-comments-form/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +9 -6
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +2 -1
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/query-title/edit.js +0 -1
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/search/edit.js +3 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/separator/save.js +4 -4
- package/build-module/separator/save.js.map +1 -1
- package/build-module/separator/separator-settings.native.js +1 -1
- package/build-module/separator/separator-settings.native.js.map +1 -1
- package/build-module/site-logo/edit.js +1 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/social-link/edit.native.js +11 -3
- package/build-module/social-link/edit.native.js.map +1 -1
- package/build-module/social-links/deprecated.js +1 -62
- package/build-module/social-links/deprecated.js.map +1 -1
- package/build-module/spacer/controls.js +5 -5
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/spacer/controls.native.js +5 -5
- package/build-module/spacer/controls.native.js.map +1 -1
- package/build-module/table/edit.js +2 -2
- package/build-module/table/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +37 -65
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +52 -0
- package/build-module/template-part/edit/placeholder.js.map +1 -0
- package/build-module/template-part/edit/selection-modal.js +89 -0
- package/build-module/template-part/edit/selection-modal.js.map +1 -0
- package/build-module/template-part/edit/title-modal.js +46 -0
- package/build-module/template-part/edit/title-modal.js.map +1 -0
- package/build-module/template-part/edit/utils/hooks.js +135 -0
- package/build-module/template-part/edit/utils/hooks.js.map +1 -0
- package/build-module/template-part/index.js +2 -1
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/video/edit.js +4 -4
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +3 -3
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/button/editor-rtl.css +0 -3
- package/build-style/button/editor.css +0 -3
- package/build-style/code/style-rtl.css +2 -1
- package/build-style/code/style.css +2 -1
- package/build-style/code/theme-rtl.css +0 -3
- package/build-style/code/theme.css +0 -3
- package/build-style/comment-author-avatar/editor-rtl.css +83 -0
- package/build-style/comment-author-avatar/editor.css +83 -0
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/style-rtl.css +5 -5
- package/build-style/cover/style.css +5 -5
- package/build-style/editor-rtl.css +43 -84
- package/build-style/editor.css +43 -84
- package/build-style/image/editor-rtl.css +0 -16
- package/build-style/image/editor.css +0 -16
- package/build-style/image/style-rtl.css +4 -1
- package/build-style/image/style.css +4 -1
- package/build-style/navigation/editor-rtl.css +16 -0
- package/build-style/navigation/editor.css +16 -0
- package/build-style/navigation/style-rtl.css +14 -3
- package/build-style/navigation/style.css +14 -3
- package/build-style/page-list/editor-rtl.css +0 -9
- package/build-style/page-list/editor.css +0 -9
- package/build-style/style-rtl.css +32 -13
- package/build-style/style.css +32 -13
- package/build-style/tag-cloud/style-rtl.css +6 -2
- package/build-style/tag-cloud/style.css +6 -2
- package/build-style/template-part/editor-rtl.css +19 -56
- package/build-style/template-part/editor.css +19 -56
- package/build-style/theme-rtl.css +0 -3
- package/build-style/theme.css +0 -3
- package/package.json +32 -28
- package/src/archives/index.php +1 -1
- package/src/audio/edit.js +4 -4
- package/src/audio/edit.native.js +4 -4
- package/src/audio/transforms.js +1 -1
- package/src/block/edit.js +7 -22
- package/src/block/test/edit.native.js +9 -9
- package/src/button/edit.js +2 -1
- package/src/button/edit.native.js +5 -5
- package/src/button/editor.scss +0 -5
- package/src/buttons/test/edit.native.js +3 -3
- package/src/buttons/transforms.js +8 -8
- package/src/categories/edit.js +12 -22
- package/src/code/block.json +0 -1
- package/src/code/style.scss +4 -2
- package/src/code/theme.scss +0 -3
- package/src/columns/block.json +12 -0
- package/src/columns/columnCalculations.native.js +1 -1
- package/src/columns/edit.js +1 -1
- package/src/columns/edit.native.js +3 -3
- package/src/comment-author-avatar/edit.js +13 -8
- package/src/comment-author-avatar/editor.scss +7 -0
- package/src/comment-template/block.json +7 -1
- package/src/comment-template/edit.js +102 -40
- package/src/comment-template/hooks.js +151 -0
- package/src/comment-template/index.php +8 -0
- package/src/comment-template/util.js +1 -0
- package/src/comments-pagination-next/block.json +8 -1
- package/src/comments-pagination-next/index.php +6 -8
- package/src/comments-pagination-numbers/block.json +7 -1
- package/src/comments-pagination-numbers/index.php +3 -10
- package/src/comments-query-loop/block.json +5 -0
- package/src/comments-query-loop/edit/comments-inspector-controls.js +22 -4
- package/src/comments-query-loop/edit.js +1 -16
- package/src/common.scss +1 -1
- package/src/cover/controls.native.js +1 -1
- package/src/cover/deprecated.js +214 -1
- package/src/cover/edit.js +21 -36
- package/src/cover/edit.native.js +23 -15
- package/src/cover/overlay-color-settings.native.js +6 -7
- package/src/cover/save.js +4 -3
- package/src/cover/shared.js +2 -2
- package/src/cover/style.scss +5 -3
- package/src/cover/test/edit.native.js +39 -39
- package/src/cover/transforms.js +2 -0
- package/src/editor.scss +1 -0
- package/src/embed/edit.js +1 -1
- package/src/embed/edit.native.js +1 -1
- package/src/embed/test/index.native.js +105 -105
- package/src/embed/util.js +2 -2
- package/src/embed/variations.js +1 -1
- package/src/file/edit.js +19 -17
- package/src/file/edit.native.js +1 -1
- package/src/file/save.js +9 -3
- package/src/file/style.native.scss +1 -0
- package/src/freeform/edit.js +2 -2
- package/src/gallery/edit.js +1 -1
- package/src/gallery/gallery.native.js +1 -1
- package/src/gallery/index.php +1 -8
- package/src/gallery/test/__snapshots__/index.native.js.snap +164 -0
- package/src/gallery/test/helpers.native.js +293 -0
- package/src/gallery/test/index.native.js +583 -65
- package/src/gallery/v1/edit.js +3 -4
- package/src/gallery/v1/gallery-image.native.js +3 -3
- package/src/gallery/v1/gallery.native.js +2 -2
- package/src/group/block.json +1 -0
- package/src/group/index.js +2 -54
- package/src/group/transforms.js +52 -0
- package/src/heading/edit.js +18 -5
- package/src/home-link/edit.js +1 -1
- package/src/home-link/index.php +1 -19
- package/src/image/deprecated.js +105 -1
- package/src/image/edit.js +7 -6
- package/src/image/edit.native.js +25 -8
- package/src/image/editor.scss +0 -18
- package/src/image/save.js +0 -8
- package/src/image/style.scss +5 -1
- package/src/image/test/edit.native.js +1 -11
- package/src/image/transforms.js +1 -1
- package/src/index.js +2 -3
- package/src/index.native.js +2 -2
- package/src/latest-posts/edit.js +1 -0
- package/src/latest-posts/index.php +1 -1
- package/src/media-text/edit.js +20 -2
- package/src/media-text/edit.native.js +2 -2
- package/src/media-text/media-container.native.js +1 -1
- package/src/media-text/style.native.scss +1 -0
- package/src/missing/edit.native.js +1 -1
- package/src/missing/test/edit-integration.native.js +4 -4
- package/src/missing/test/edit.native.js +2 -2
- package/src/more/transforms.js +2 -2
- package/src/navigation/edit/index.js +212 -88
- package/src/navigation/edit/inner-blocks.js +11 -4
- package/src/navigation/edit/navigation-menu-selector.js +121 -58
- package/src/navigation/edit/placeholder/index.js +64 -111
- package/src/navigation/edit/placeholder/placeholder-preview.js +3 -10
- package/src/navigation/edit/unsaved-inner-blocks.js +3 -1
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +137 -0
- package/src/navigation/edit/use-create-navigation-menu.js +59 -8
- package/src/navigation/edit/use-navigation-notice.js +3 -3
- package/src/navigation/editor.scss +23 -1
- package/src/navigation/index.php +4 -4
- package/src/navigation/menu-items-to-blocks.js +1 -1
- package/src/navigation/style.scss +22 -3
- package/src/navigation/test/menu-items-to-blocks.js +1 -1
- package/src/navigation/use-navigation-entities.js +26 -60
- package/src/navigation/use-navigation-menu.js +11 -6
- package/src/navigation-link/fallback-variations.js +1 -1
- package/src/navigation-link/hooks.js +2 -2
- package/src/navigation-link/index.php +3 -22
- package/src/navigation-link/test/edit.js +5 -5
- package/src/navigation-submenu/edit.js +52 -14
- package/src/navigation-submenu/index.php +3 -21
- package/src/page-list/convert-to-links-modal.js +17 -31
- package/src/page-list/edit.js +35 -48
- package/src/page-list/editor.scss +0 -10
- package/src/page-list/index.php +4 -4
- package/src/post-author-name/edit.js +1 -0
- package/src/post-author-name/index.php +1 -1
- package/src/post-comments-form/edit.js +7 -3
- package/src/post-excerpt/edit.js +9 -12
- package/src/post-navigation-link/index.php +3 -3
- package/src/post-terms/edit.js +2 -1
- package/src/query-title/edit.js +0 -1
- package/src/search/edit.js +6 -0
- package/src/search/edit.native.js +1 -1
- package/src/search/index.php +8 -4
- package/src/search/test/edit.native.js +0 -1
- package/src/separator/save.js +4 -4
- package/src/separator/separator-settings.native.js +1 -1
- package/src/site-logo/edit.js +1 -1
- package/src/site-logo/index.php +1 -1
- package/src/social-link/edit.native.js +17 -8
- package/src/social-link/test/index.native.js +138 -0
- package/src/social-links/deprecated.js +0 -59
- package/src/spacer/controls.js +1 -1
- package/src/spacer/controls.native.js +1 -1
- package/src/table/edit.js +2 -2
- package/src/tag-cloud/style.scss +12 -7
- package/src/template-part/edit/index.js +61 -71
- package/src/template-part/edit/placeholder.js +78 -0
- package/src/template-part/edit/selection-modal.js +115 -0
- package/src/template-part/edit/title-modal.js +59 -0
- package/src/template-part/edit/utils/hooks.js +158 -0
- package/src/template-part/editor.scss +16 -74
- package/src/template-part/index.js +4 -1
- package/src/video/edit.js +4 -4
- package/src/video/edit.native.js +3 -3
- package/src/video/style.native.scss +1 -0
- package/build/navigation/edit/existing-menus-options.js +0 -62
- package/build/navigation/edit/existing-menus-options.js.map +0 -1
- package/build/navigation/use-convert-classic-menu.js +0 -59
- package/build/navigation/use-convert-classic-menu.js.map +0 -1
- package/build/template-part/edit/placeholder/index.js +0 -141
- package/build/template-part/edit/placeholder/index.js.map +0 -1
- package/build/template-part/edit/placeholder/patterns-setup.js +0 -100
- package/build/template-part/edit/placeholder/patterns-setup.js.map +0 -1
- package/build/template-part/edit/selection/index.js +0 -45
- package/build/template-part/edit/selection/index.js.map +0 -1
- package/build/template-part/edit/selection/template-part-previews.js +0 -317
- package/build/template-part/edit/selection/template-part-previews.js.map +0 -1
- package/build-module/navigation/edit/existing-menus-options.js +0 -53
- package/build-module/navigation/edit/existing-menus-options.js.map +0 -1
- package/build-module/navigation/use-convert-classic-menu.js +0 -47
- package/build-module/navigation/use-convert-classic-menu.js.map +0 -1
- package/build-module/template-part/edit/placeholder/index.js +0 -124
- package/build-module/template-part/edit/placeholder/index.js.map +0 -1
- package/build-module/template-part/edit/placeholder/patterns-setup.js +0 -91
- package/build-module/template-part/edit/placeholder/patterns-setup.js.map +0 -1
- package/build-module/template-part/edit/selection/index.js +0 -35
- package/build-module/template-part/edit/selection/index.js.map +0 -1
- package/build-module/template-part/edit/selection/template-part-previews.js +0 -298
- package/build-module/template-part/edit/selection/template-part-previews.js.map +0 -1
- package/src/navigation/edit/existing-menus-options.js +0 -70
- package/src/navigation/use-convert-classic-menu.js +0 -58
- package/src/template-part/edit/placeholder/index.js +0 -172
- package/src/template-part/edit/placeholder/patterns-setup.js +0 -124
- package/src/template-part/edit/selection/index.js +0 -37
- package/src/template-part/edit/selection/template-part-previews.js +0 -372
|
@@ -38,7 +38,6 @@ const LAYOUT = {
|
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
export default function NavigationInnerBlocks( {
|
|
41
|
-
isVisible,
|
|
42
41
|
clientId,
|
|
43
42
|
hasCustomPlaceholder,
|
|
44
43
|
orientation,
|
|
@@ -66,7 +65,7 @@ export default function NavigationInnerBlocks( {
|
|
|
66
65
|
] )?.length,
|
|
67
66
|
|
|
68
67
|
// This prop is already available but computing it here ensures it's
|
|
69
|
-
// fresh compared to isImmediateParentOfSelectedBlock
|
|
68
|
+
// fresh compared to isImmediateParentOfSelectedBlock.
|
|
70
69
|
isSelected: selectedBlockId === clientId,
|
|
71
70
|
};
|
|
72
71
|
},
|
|
@@ -98,6 +97,15 @@ export default function NavigationInnerBlocks( {
|
|
|
98
97
|
|
|
99
98
|
const placeholder = useMemo( () => <PlaceholderPreview />, [] );
|
|
100
99
|
|
|
100
|
+
const hasMenuItems = !! blocks?.length;
|
|
101
|
+
|
|
102
|
+
// If there is a `ref` attribute pointing to a `wp_navigation` but
|
|
103
|
+
// that menu has no **items** (i.e. empty) then show a placeholder.
|
|
104
|
+
// The block must also be selected else the placeholder will display
|
|
105
|
+
// alongside the appender.
|
|
106
|
+
const showPlaceholder =
|
|
107
|
+
! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;
|
|
108
|
+
|
|
101
109
|
const innerBlocksProps = useInnerBlocksProps(
|
|
102
110
|
{
|
|
103
111
|
className: 'wp-block-navigation__container',
|
|
@@ -130,8 +138,7 @@ export default function NavigationInnerBlocks( {
|
|
|
130
138
|
// inherit templateLock={ 'all' }.
|
|
131
139
|
templateLock: false,
|
|
132
140
|
__experimentalLayout: LAYOUT,
|
|
133
|
-
placeholder:
|
|
134
|
-
! isVisible || hasCustomPlaceholder ? undefined : placeholder,
|
|
141
|
+
placeholder: showPlaceholder ? placeholder : undefined,
|
|
135
142
|
}
|
|
136
143
|
);
|
|
137
144
|
|
|
@@ -1,91 +1,154 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import {
|
|
5
|
+
MenuGroup,
|
|
6
|
+
MenuItem,
|
|
7
|
+
MenuItemsChoice,
|
|
8
|
+
ToolbarDropdownMenu,
|
|
9
|
+
} from '@wordpress/components';
|
|
10
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
11
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
7
12
|
import { addQueryArgs } from '@wordpress/url';
|
|
13
|
+
import { useCallback, useMemo } from '@wordpress/element';
|
|
8
14
|
|
|
9
15
|
/**
|
|
10
16
|
* Internal dependencies
|
|
11
17
|
*/
|
|
12
18
|
import useNavigationMenu from '../use-navigation-menu';
|
|
13
19
|
import useNavigationEntities from '../use-navigation-entities';
|
|
14
|
-
import useConvertClassicMenu from '../use-convert-classic-menu';
|
|
15
|
-
import useCreateNavigationMenu from './use-create-navigation-menu';
|
|
16
|
-
import ExistingMenusOptions from './existing-menus-options';
|
|
17
20
|
|
|
18
21
|
export default function NavigationMenuSelector( {
|
|
19
|
-
|
|
22
|
+
currentMenuId,
|
|
20
23
|
onSelect,
|
|
21
24
|
onCreateNew,
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
showManageActions = false,
|
|
26
|
+
actionLabel,
|
|
27
|
+
toggleProps = {},
|
|
24
28
|
} ) {
|
|
29
|
+
/* translators: %s: The name of a menu. */
|
|
30
|
+
const createActionLabel = __( "Create from '%s'" );
|
|
31
|
+
|
|
32
|
+
actionLabel = actionLabel || createActionLabel;
|
|
33
|
+
|
|
34
|
+
const { menus: classicMenus } = useNavigationEntities();
|
|
35
|
+
|
|
25
36
|
const {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
navigationMenus,
|
|
38
|
+
canUserCreateNavigationMenu,
|
|
39
|
+
canUserUpdateNavigationMenu,
|
|
40
|
+
canSwitchNavigationMenu,
|
|
41
|
+
} = useNavigationMenu();
|
|
30
42
|
|
|
31
|
-
const
|
|
43
|
+
const handleSelect = useCallback(
|
|
44
|
+
( _onClose ) => ( selectedId ) => {
|
|
45
|
+
_onClose();
|
|
46
|
+
onSelect(
|
|
47
|
+
navigationMenus?.find( ( post ) => post.id === selectedId )
|
|
48
|
+
);
|
|
49
|
+
},
|
|
50
|
+
[ navigationMenus ]
|
|
51
|
+
);
|
|
32
52
|
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
const handleSelectClassic = useCallback(
|
|
54
|
+
( _onClose, menu ) => () => {
|
|
55
|
+
_onClose();
|
|
56
|
+
onSelect( menu );
|
|
57
|
+
},
|
|
58
|
+
[]
|
|
59
|
+
);
|
|
40
60
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
61
|
+
const menuChoices = useMemo( () => {
|
|
62
|
+
return (
|
|
63
|
+
navigationMenus?.map( ( { id, title } ) => {
|
|
64
|
+
const label = decodeEntities( title.rendered );
|
|
65
|
+
return {
|
|
66
|
+
value: id,
|
|
67
|
+
label,
|
|
68
|
+
ariaLabel: sprintf( actionLabel, label ),
|
|
69
|
+
};
|
|
70
|
+
} ) || []
|
|
44
71
|
);
|
|
45
|
-
|
|
46
|
-
};
|
|
72
|
+
}, [ navigationMenus ] );
|
|
47
73
|
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
74
|
+
const hasNavigationMenus = !! navigationMenus?.length;
|
|
75
|
+
const hasClassicMenus = !! classicMenus?.length;
|
|
76
|
+
const showNavigationMenus = !! canSwitchNavigationMenu;
|
|
77
|
+
const showClassicMenus = !! canUserCreateNavigationMenu;
|
|
78
|
+
const hasManagePermissions =
|
|
79
|
+
canUserCreateNavigationMenu || canUserUpdateNavigationMenu;
|
|
51
80
|
|
|
81
|
+
// Show the selector if:
|
|
82
|
+
// - has switch or create permissions and there are block or classic menus.
|
|
83
|
+
// - user has create or update permisisons and component should show the menu actions.
|
|
52
84
|
const showSelectMenus =
|
|
53
|
-
(
|
|
54
|
-
|
|
85
|
+
( ( canSwitchNavigationMenu || canUserCreateNavigationMenu ) &&
|
|
86
|
+
( hasNavigationMenus || hasClassicMenus ) ) ||
|
|
87
|
+
( hasManagePermissions && showManageActions );
|
|
55
88
|
|
|
56
89
|
if ( ! showSelectMenus ) {
|
|
57
90
|
return null;
|
|
58
91
|
}
|
|
59
92
|
|
|
60
93
|
return (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
94
|
+
<ToolbarDropdownMenu
|
|
95
|
+
label={ __( 'Select Menu' ) }
|
|
96
|
+
text={ __( 'Select Menu' ) }
|
|
97
|
+
icon={ null }
|
|
98
|
+
toggleProps={ toggleProps }
|
|
99
|
+
>
|
|
100
|
+
{ ( { onClose } ) => (
|
|
101
|
+
<>
|
|
102
|
+
{ showNavigationMenus && hasNavigationMenus && (
|
|
103
|
+
<MenuGroup label={ __( 'Menus' ) }>
|
|
104
|
+
<MenuItemsChoice
|
|
105
|
+
value={ currentMenuId }
|
|
106
|
+
onSelect={ handleSelect( onClose ) }
|
|
107
|
+
choices={ menuChoices }
|
|
108
|
+
/>
|
|
109
|
+
</MenuGroup>
|
|
110
|
+
) }
|
|
111
|
+
{ showClassicMenus && hasClassicMenus && (
|
|
112
|
+
<MenuGroup label={ __( 'Classic Menus' ) }>
|
|
113
|
+
{ classicMenus?.map( ( menu ) => {
|
|
114
|
+
const label = decodeEntities( menu.name );
|
|
115
|
+
return (
|
|
116
|
+
<MenuItem
|
|
117
|
+
onClick={ handleSelectClassic(
|
|
118
|
+
onClose,
|
|
119
|
+
menu
|
|
120
|
+
) }
|
|
121
|
+
key={ menu.id }
|
|
122
|
+
aria-label={ sprintf(
|
|
123
|
+
createActionLabel,
|
|
124
|
+
label
|
|
125
|
+
) }
|
|
126
|
+
>
|
|
127
|
+
{ label }
|
|
128
|
+
</MenuItem>
|
|
129
|
+
);
|
|
130
|
+
} ) }
|
|
131
|
+
</MenuGroup>
|
|
132
|
+
) }
|
|
74
133
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
134
|
+
{ showManageActions && hasManagePermissions && (
|
|
135
|
+
<MenuGroup label={ __( 'Tools' ) }>
|
|
136
|
+
{ canUserCreateNavigationMenu && (
|
|
137
|
+
<MenuItem onClick={ onCreateNew }>
|
|
138
|
+
{ __( 'Create new menu' ) }
|
|
139
|
+
</MenuItem>
|
|
140
|
+
) }
|
|
141
|
+
<MenuItem
|
|
142
|
+
href={ addQueryArgs( 'edit.php', {
|
|
143
|
+
post_type: 'wp_navigation',
|
|
144
|
+
} ) }
|
|
145
|
+
>
|
|
146
|
+
{ __( 'Manage menus' ) }
|
|
147
|
+
</MenuItem>
|
|
148
|
+
</MenuGroup>
|
|
149
|
+
) }
|
|
150
|
+
</>
|
|
88
151
|
) }
|
|
89
|
-
|
|
152
|
+
</ToolbarDropdownMenu>
|
|
90
153
|
);
|
|
91
154
|
}
|
|
@@ -1,141 +1,94 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { Placeholder, Button,
|
|
4
|
+
import { Placeholder, Button, Spinner } from '@wordpress/components';
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
6
|
import { navigation, Icon } from '@wordpress/icons';
|
|
7
|
+
import { speak } from '@wordpress/a11y';
|
|
8
|
+
import { useEffect } from '@wordpress/element';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Internal dependencies
|
|
10
12
|
*/
|
|
11
|
-
|
|
12
13
|
import useNavigationEntities from '../../use-navigation-entities';
|
|
13
14
|
import PlaceholderPreview from './placeholder-preview';
|
|
14
|
-
import
|
|
15
|
-
import useCreateNavigationMenu from '../use-create-navigation-menu';
|
|
16
|
-
import useConvertClassicMenu from '../../use-convert-classic-menu';
|
|
17
|
-
import ExistingMenusOptions from '../existing-menus-options';
|
|
15
|
+
import NavigationMenuSelector from '../navigation-menu-selector';
|
|
18
16
|
|
|
19
17
|
export default function NavigationPlaceholder( {
|
|
18
|
+
isSelected,
|
|
19
|
+
currentMenuId,
|
|
20
20
|
clientId,
|
|
21
|
+
canUserCreateNavigationMenu = false,
|
|
22
|
+
isResolvingCanUserCreateNavigationMenu,
|
|
21
23
|
onFinish,
|
|
22
|
-
|
|
23
|
-
hasResolvedNavigationMenus,
|
|
24
|
-
canUserCreateNavigation = false,
|
|
24
|
+
onCreateEmpty,
|
|
25
25
|
} ) {
|
|
26
|
-
const
|
|
26
|
+
const { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
navigationMenuTitle = null
|
|
31
|
-
) => {
|
|
32
|
-
if ( ! canUserCreateNavigation ) {
|
|
28
|
+
useEffect( () => {
|
|
29
|
+
if ( ! isSelected ) {
|
|
33
30
|
return;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
);
|
|
40
|
-
onFinish( navigationMenu, blocks );
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const convertClassicMenu = useConvertClassicMenu( onFinishMenuCreation );
|
|
44
|
-
|
|
45
|
-
const {
|
|
46
|
-
isResolvingPages,
|
|
47
|
-
menus,
|
|
48
|
-
isResolvingMenus,
|
|
49
|
-
hasMenus,
|
|
50
|
-
} = useNavigationEntities();
|
|
51
|
-
|
|
52
|
-
const isStillLoading = isResolvingPages || isResolvingMenus;
|
|
53
|
-
|
|
54
|
-
const onCreateEmptyMenu = () => {
|
|
55
|
-
onFinishMenuCreation( [] );
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const { navigationMenus } = useNavigationMenu();
|
|
33
|
+
if ( isResolvingMenus ) {
|
|
34
|
+
speak( __( 'Loading Navigation block setup options.' ) );
|
|
35
|
+
}
|
|
59
36
|
|
|
60
|
-
|
|
37
|
+
if ( hasResolvedMenus ) {
|
|
38
|
+
speak( __( 'Navigation block setup options ready.' ) );
|
|
39
|
+
}
|
|
40
|
+
}, [ isResolvingMenus, isSelected ] );
|
|
61
41
|
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
( hasNavigationMenus || hasMenus );
|
|
42
|
+
const isResolvingActions =
|
|
43
|
+
isResolvingMenus && isResolvingCanUserCreateNavigationMenu;
|
|
65
44
|
|
|
66
45
|
return (
|
|
67
46
|
<>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
{ showSelectMenus ? (
|
|
84
|
-
<>
|
|
85
|
-
<DropdownMenu
|
|
86
|
-
text={ __( 'Select menu' ) }
|
|
87
|
-
icon={ null }
|
|
88
|
-
toggleProps={ {
|
|
89
|
-
variant: 'tertiary',
|
|
90
|
-
iconPosition: 'right',
|
|
91
|
-
className:
|
|
92
|
-
'wp-block-navigation-placeholder__actions__dropdown',
|
|
93
|
-
} }
|
|
94
|
-
popoverProps={ { isAlternate: true } }
|
|
95
|
-
>
|
|
96
|
-
{ () => (
|
|
97
|
-
<ExistingMenusOptions
|
|
98
|
-
showNavigationMenus={
|
|
99
|
-
canSwitchNavigationMenu
|
|
100
|
-
}
|
|
101
|
-
navigationMenus={
|
|
102
|
-
navigationMenus
|
|
103
|
-
}
|
|
104
|
-
onSelectNavigationMenu={
|
|
105
|
-
onFinish
|
|
106
|
-
}
|
|
107
|
-
classicMenus={ menus }
|
|
108
|
-
onSelectClassicMenu={ ( {
|
|
109
|
-
id,
|
|
110
|
-
name,
|
|
111
|
-
} ) =>
|
|
112
|
-
convertClassicMenu(
|
|
113
|
-
id,
|
|
114
|
-
name
|
|
115
|
-
)
|
|
116
|
-
}
|
|
117
|
-
showClassicMenus={
|
|
118
|
-
canUserCreateNavigation
|
|
119
|
-
}
|
|
120
|
-
/>
|
|
121
|
-
) }
|
|
122
|
-
</DropdownMenu>
|
|
123
|
-
<hr />
|
|
124
|
-
</>
|
|
125
|
-
) : undefined }
|
|
126
|
-
|
|
127
|
-
{ canUserCreateNavigation && (
|
|
128
|
-
<Button
|
|
129
|
-
variant="tertiary"
|
|
130
|
-
onClick={ onCreateEmptyMenu }
|
|
131
|
-
>
|
|
132
|
-
{ __( 'Start empty' ) }
|
|
133
|
-
</Button>
|
|
134
|
-
) }
|
|
47
|
+
<Placeholder className="wp-block-navigation-placeholder">
|
|
48
|
+
{
|
|
49
|
+
// The <PlaceholderPreview> component is displayed conditionally via CSS depending on
|
|
50
|
+
// whether the block is selected or not. This is achieved via CSS to avoid
|
|
51
|
+
// component re-renders
|
|
52
|
+
}
|
|
53
|
+
<PlaceholderPreview isVisible={ ! isSelected } />
|
|
54
|
+
<div
|
|
55
|
+
aria-hidden={ ! isSelected ? true : undefined }
|
|
56
|
+
className="wp-block-navigation-placeholder__controls"
|
|
57
|
+
>
|
|
58
|
+
<div className="wp-block-navigation-placeholder__actions">
|
|
59
|
+
<div className="wp-block-navigation-placeholder__actions__indicator">
|
|
60
|
+
<Icon icon={ navigation } /> { __( 'Navigation' ) }
|
|
135
61
|
</div>
|
|
62
|
+
|
|
63
|
+
<hr />
|
|
64
|
+
|
|
65
|
+
{ isResolvingActions && <Spinner /> }
|
|
66
|
+
|
|
67
|
+
<NavigationMenuSelector
|
|
68
|
+
currentMenuId={ currentMenuId }
|
|
69
|
+
clientId={ clientId }
|
|
70
|
+
onSelect={ onFinish }
|
|
71
|
+
toggleProps={ {
|
|
72
|
+
variant: 'tertiary',
|
|
73
|
+
iconPosition: 'right',
|
|
74
|
+
className:
|
|
75
|
+
'wp-block-navigation-placeholder__actions__dropdown',
|
|
76
|
+
} }
|
|
77
|
+
/>
|
|
78
|
+
|
|
79
|
+
<hr />
|
|
80
|
+
|
|
81
|
+
{ canUserCreateNavigationMenu && (
|
|
82
|
+
<Button
|
|
83
|
+
variant="tertiary"
|
|
84
|
+
onClick={ onCreateEmpty }
|
|
85
|
+
>
|
|
86
|
+
{ __( 'Start empty' ) }
|
|
87
|
+
</Button>
|
|
88
|
+
) }
|
|
136
89
|
</div>
|
|
137
|
-
</
|
|
138
|
-
|
|
90
|
+
</div>
|
|
91
|
+
</Placeholder>
|
|
139
92
|
</>
|
|
140
93
|
);
|
|
141
94
|
}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import classnames from 'classnames';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
9
4
|
import { Icon, navigation } from '@wordpress/icons';
|
|
10
5
|
import { __ } from '@wordpress/i18n';
|
|
11
6
|
|
|
12
|
-
const PlaceholderPreview = ( {
|
|
7
|
+
const PlaceholderPreview = ( { isVisible = true } ) => {
|
|
13
8
|
return (
|
|
14
9
|
<div
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{ 'is-loading': isLoading }
|
|
18
|
-
) }
|
|
10
|
+
aria-hidden={ ! isVisible ? true : undefined }
|
|
11
|
+
className="wp-block-navigation-placeholder__preview"
|
|
19
12
|
>
|
|
20
13
|
<div className="wp-block-navigation-placeholder__actions__indicator">
|
|
21
14
|
<Icon icon={ navigation } />
|
|
@@ -72,7 +72,9 @@ export default function UnsavedInnerBlocks( {
|
|
|
72
72
|
|
|
73
73
|
const { hasResolvedNavigationMenus, navigationMenus } = useNavigationMenu();
|
|
74
74
|
|
|
75
|
-
const createNavigationMenu = useCreateNavigationMenu(
|
|
75
|
+
const { create: createNavigationMenu } = useCreateNavigationMenu(
|
|
76
|
+
clientId
|
|
77
|
+
);
|
|
76
78
|
|
|
77
79
|
// Automatically save the uncontrolled blocks.
|
|
78
80
|
useEffect( async () => {
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useRegistry } from '@wordpress/data';
|
|
5
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
6
|
+
import { useState, useCallback } from '@wordpress/element';
|
|
7
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Internal dependencies
|
|
11
|
+
*/
|
|
12
|
+
import useCreateNavigationMenu from './use-create-navigation-menu';
|
|
13
|
+
import menuItemsToBlocks from '../menu-items-to-blocks';
|
|
14
|
+
|
|
15
|
+
export const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
|
|
16
|
+
export const CLASSIC_MENU_CONVERSION_ERROR = 'error';
|
|
17
|
+
export const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
|
|
18
|
+
export const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
|
|
19
|
+
|
|
20
|
+
function useConvertClassicToBlockMenu( clientId ) {
|
|
21
|
+
const { create: createNavigationMenu } = useCreateNavigationMenu(
|
|
22
|
+
clientId
|
|
23
|
+
);
|
|
24
|
+
const registry = useRegistry();
|
|
25
|
+
|
|
26
|
+
const [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );
|
|
27
|
+
const [ value, setValue ] = useState( null );
|
|
28
|
+
const [ error, setError ] = useState( null );
|
|
29
|
+
|
|
30
|
+
async function convertClassicMenuToBlockMenu( menuId, menuName ) {
|
|
31
|
+
let navigationMenu;
|
|
32
|
+
let classicMenuItems;
|
|
33
|
+
|
|
34
|
+
// 1. Fetch the classic Menu items.
|
|
35
|
+
try {
|
|
36
|
+
classicMenuItems = await registry
|
|
37
|
+
.resolveSelect( coreStore )
|
|
38
|
+
.getMenuItems( {
|
|
39
|
+
menus: menuId,
|
|
40
|
+
per_page: -1,
|
|
41
|
+
context: 'view',
|
|
42
|
+
} );
|
|
43
|
+
} catch ( err ) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
sprintf(
|
|
46
|
+
// translators: %s: the name of a menu (e.g. Header navigation).
|
|
47
|
+
__( `Unable to fetch classic menu "%s" from API.` ),
|
|
48
|
+
menuName
|
|
49
|
+
),
|
|
50
|
+
{
|
|
51
|
+
cause: err,
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Handle offline response which resolves to `null`.
|
|
57
|
+
if ( classicMenuItems === null ) {
|
|
58
|
+
throw new Error(
|
|
59
|
+
sprintf(
|
|
60
|
+
// translators: %s: the name of a menu (e.g. Header navigation).
|
|
61
|
+
__( `Unable to fetch classic menu "%s" from API.` ),
|
|
62
|
+
menuName
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// 2. Convert the classic items into blocks.
|
|
68
|
+
const { innerBlocks } = menuItemsToBlocks( classicMenuItems );
|
|
69
|
+
|
|
70
|
+
// 3. Create the `wp_navigation` Post with the blocks.
|
|
71
|
+
try {
|
|
72
|
+
navigationMenu = await createNavigationMenu(
|
|
73
|
+
menuName,
|
|
74
|
+
innerBlocks
|
|
75
|
+
);
|
|
76
|
+
} catch ( err ) {
|
|
77
|
+
throw new Error(
|
|
78
|
+
sprintf(
|
|
79
|
+
// translators: %s: the name of a menu (e.g. Header navigation).
|
|
80
|
+
__( `Unable to create Navigation Menu "%s".` ),
|
|
81
|
+
menuName
|
|
82
|
+
),
|
|
83
|
+
{
|
|
84
|
+
cause: err,
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return navigationMenu;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const convert = useCallback(
|
|
93
|
+
( menuId, menuName ) => {
|
|
94
|
+
if ( ! menuId || ! menuName ) {
|
|
95
|
+
setError( 'Unable to convert menu. Missing menu details.' );
|
|
96
|
+
setStatus( CLASSIC_MENU_CONVERSION_ERROR );
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
setStatus( CLASSIC_MENU_CONVERSION_PENDING );
|
|
101
|
+
setValue( null );
|
|
102
|
+
setError( null );
|
|
103
|
+
|
|
104
|
+
convertClassicMenuToBlockMenu( menuId, menuName )
|
|
105
|
+
.then( ( navMenu ) => {
|
|
106
|
+
setValue( navMenu );
|
|
107
|
+
setStatus( CLASSIC_MENU_CONVERSION_SUCCESS );
|
|
108
|
+
} )
|
|
109
|
+
.catch( ( err ) => {
|
|
110
|
+
setError( err?.message );
|
|
111
|
+
setStatus( CLASSIC_MENU_CONVERSION_ERROR );
|
|
112
|
+
|
|
113
|
+
// Rethrow error for debugging.
|
|
114
|
+
throw new Error(
|
|
115
|
+
sprintf(
|
|
116
|
+
// translators: %s: the name of a menu (e.g. Header navigation).
|
|
117
|
+
__( `Unable to create Navigation Menu "%s".` ),
|
|
118
|
+
menuName
|
|
119
|
+
),
|
|
120
|
+
{
|
|
121
|
+
cause: err,
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
} );
|
|
125
|
+
},
|
|
126
|
+
[ clientId ]
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
return {
|
|
130
|
+
convert,
|
|
131
|
+
status,
|
|
132
|
+
value,
|
|
133
|
+
error,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export default useConvertClassicToBlockMenu;
|