@wordpress/block-library 7.12.0 → 7.13.1-next.957ca95e4c.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 +7 -1
- package/build/archives/index.js +5 -1
- package/build/archives/index.js.map +1 -1
- package/build/audio/index.js +4 -0
- package/build/audio/index.js.map +1 -1
- package/build/button/deprecated.js +14 -5
- package/build/button/deprecated.js.map +1 -1
- package/build/button/index.js +1 -1
- package/build/categories/edit.js +3 -1
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +14 -1
- package/build/categories/index.js.map +1 -1
- package/build/code/index.js +4 -2
- package/build/code/index.js.map +1 -1
- package/build/column/index.js +13 -0
- package/build/column/index.js.map +1 -1
- package/build/columns/deprecated.js +16 -5
- package/build/columns/deprecated.js.map +1 -1
- package/build/columns/edit.js +6 -2
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +6 -2
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +13 -0
- package/build/columns/index.js.map +1 -1
- package/build/columns/transforms.js +10 -1
- package/build/columns/transforms.js.map +1 -1
- package/build/comment-author-name/index.js +5 -1
- package/build/comment-author-name/index.js.map +1 -1
- package/build/comment-content/index.js +5 -1
- package/build/comment-content/index.js.map +1 -1
- package/build/comment-date/index.js +1 -0
- package/build/comment-date/index.js.map +1 -1
- package/build/comment-edit-link/index.js +5 -1
- package/build/comment-edit-link/index.js.map +1 -1
- package/build/comment-reply-link/index.js +5 -1
- package/build/comment-reply-link/index.js.map +1 -1
- package/build/comment-template/index.js +14 -1
- package/build/comment-template/index.js.map +1 -1
- package/build/comments/index.js +13 -0
- package/build/comments/index.js.map +1 -1
- package/build/comments-pagination/index.js +13 -0
- package/build/comments-pagination/index.js.map +1 -1
- package/build/comments-pagination-next/index.js +4 -2
- package/build/comments-pagination-next/index.js.map +1 -1
- package/build/comments-pagination-numbers/edit.js +5 -1
- package/build/comments-pagination-numbers/edit.js.map +1 -1
- package/build/comments-pagination-numbers/index.js +14 -1
- package/build/comments-pagination-numbers/index.js.map +1 -1
- package/build/comments-pagination-previous/index.js +4 -2
- package/build/comments-pagination-previous/index.js.map +1 -1
- package/build/comments-title/deprecated.js +4 -2
- package/build/comments-title/deprecated.js.map +1 -1
- package/build/comments-title/index.js +4 -2
- package/build/comments-title/index.js.map +1 -1
- package/build/cover/deprecated.js +20 -5
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/block-controls.js +9 -2
- package/build/cover/edit/block-controls.js.map +1 -1
- package/build/cover/index.js +13 -0
- package/build/cover/index.js.map +1 -1
- package/build/cover/shared.js +1 -1
- package/build/cover/shared.js.map +1 -1
- package/build/embed/icons.js +1 -1
- package/build/embed/icons.js.map +1 -1
- package/build/gallery/deprecated.js +6 -1
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/edit.js +15 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gap-styles.js +5 -4
- package/build/gallery/gap-styles.js.map +1 -1
- package/build/gallery/index.js +5 -0
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/transforms.js +20 -7
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/utils.js +7 -6
- package/build/gallery/utils.js.map +1 -1
- package/build/group/deprecated.js +108 -12
- package/build/group/deprecated.js.map +1 -1
- package/build/group/edit.js +23 -1
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +10 -2
- package/build/group/index.js.map +1 -1
- package/build/group/variations.js +8 -8
- package/build/group/variations.js.map +1 -1
- package/build/heading/deprecated.js +5 -3
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/index.js +3 -1
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +3 -1
- package/build/heading/transforms.js.map +1 -1
- package/build/home-link/edit.js +8 -4
- package/build/home-link/edit.js.map +1 -1
- package/build/home-link/index.js +14 -1
- package/build/home-link/index.js.map +1 -1
- package/build/image/edit.js +16 -2
- package/build/image/edit.js.map +1 -1
- package/build/image/index.js +13 -7
- package/build/image/index.js.map +1 -1
- package/build/image/use-client-width.js +3 -1
- package/build/image/use-client-width.js.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/index.native.js +9 -18
- package/build/index.native.js.map +1 -1
- package/build/latest-posts/deprecated.js +14 -1
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/index.js +14 -1
- package/build/latest-posts/index.js.map +1 -1
- package/build/list/deprecated.js +84 -1
- package/build/list/deprecated.js.map +1 -1
- package/build/list/edit.js +153 -134
- package/build/list/edit.js.map +1 -1
- package/build/list/index.js +33 -34
- package/build/list/index.js.map +1 -1
- package/build/list/save.js +1 -5
- package/build/list/save.js.map +1 -1
- package/build/list/{v2/tag-name.js → tag-name.js} +0 -0
- package/build/list/tag-name.js.map +1 -0
- package/build/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
- package/build/list/tag-name.native.js.map +1 -0
- package/build/list/transforms.js +61 -95
- package/build/list/transforms.js.map +1 -1
- package/build/list/{v2/migrate.js → utils.js} +3 -2
- package/build/list/utils.js.map +1 -0
- package/build/list-item/edit.js +3 -1
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/edit.native.js +21 -3
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/index.js +8 -0
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/hooks/use-copy.js +44 -0
- package/build/list-item/hooks/use-copy.js.map +1 -0
- package/build/list-item/hooks/use-merge.js +0 -1
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +0 -1
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +10 -1
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/list-item/index.js +0 -1
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/list-style-type.native.js +4 -1
- package/build/list-item/list-style-type.native.js.map +1 -1
- package/build/list-item/utils.js +4 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/deprecated.js +5 -1
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/index.js +17 -0
- package/build/media-text/index.js.map +1 -1
- package/build/navigation/deprecated.js +6 -1
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +125 -41
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +6 -4
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +6 -16
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/index.js +1 -0
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/menu-items-to-blocks.js +1 -7
- package/build/navigation/menu-items-to-blocks.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +8 -7
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-link/edit.js +6 -8
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +4 -6
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +7 -3
- package/build/page-list/edit.js.map +1 -1
- package/build/paragraph/deprecated.js +18 -10
- package/build/paragraph/deprecated.js.map +1 -1
- package/build/paragraph/edit.js +1 -0
- package/build/paragraph/edit.js.map +1 -1
- package/build/paragraph/index.js +7 -0
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +7 -0
- package/build/paragraph/transforms.js.map +1 -1
- package/build/post-author/index.js +4 -2
- package/build/post-author/index.js.map +1 -1
- package/build/post-author-biography/index.js +1 -0
- package/build/post-author-biography/index.js.map +1 -1
- package/build/post-author-name/index.js +5 -1
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-comments-count/edit.js +11 -1
- package/build/post-comments-count/edit.js.map +1 -1
- package/build/post-comments-count/index.js +4 -1
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-link/index.js +4 -2
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-date/edit.js +9 -2
- package/build/post-date/edit.js.map +1 -1
- package/build/post-date/index.js +9 -0
- package/build/post-date/index.js.map +1 -1
- package/build/post-excerpt/index.js +4 -2
- package/build/post-excerpt/index.js.map +1 -1
- package/build/post-featured-image/edit.js +27 -12
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +12 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-navigation-link/index.js +3 -2
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-template/edit.js +8 -4
- package/build/post-template/edit.js.map +1 -1
- package/build/post-template/index.js +14 -1
- package/build/post-template/index.js.map +1 -1
- package/build/post-terms/edit.js +0 -1
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/index.js +5 -3
- package/build/post-terms/index.js.map +1 -1
- package/build/post-terms/use-post-terms.js +4 -24
- package/build/post-terms/use-post-terms.js.map +1 -1
- package/build/post-title/index.js +2 -1
- package/build/post-title/index.js.map +1 -1
- package/build/preformatted/index.js +4 -2
- package/build/preformatted/index.js.map +1 -1
- package/build/pullquote/deprecated.js +135 -25
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/pullquote/edit.js +1 -1
- package/build/pullquote/edit.js.map +1 -1
- package/build/pullquote/edit.native.js +0 -1
- package/build/pullquote/edit.native.js.map +1 -1
- package/build/pullquote/index.js +13 -6
- package/build/pullquote/index.js.map +1 -1
- package/build/pullquote/save.js +2 -2
- package/build/pullquote/save.js.map +1 -1
- package/build/pullquote/transforms.js +14 -33
- package/build/pullquote/transforms.js.map +1 -1
- package/build/query/deprecated.js +10 -9
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/index.js +19 -8
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +1 -0
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/edit/query-placeholder.js +6 -1
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +35 -9
- package/build/query/utils.js.map +1 -1
- package/build/query-no-results/edit.js +1 -1
- package/build/query-no-results/edit.js.map +1 -1
- package/build/query-no-results/index.js +13 -0
- package/build/query-no-results/index.js.map +1 -1
- package/build/query-pagination-numbers/index.js +4 -2
- package/build/query-pagination-numbers/index.js.map +1 -1
- package/build/query-title/edit.js +10 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/query-title/index.js +8 -2
- package/build/query-title/index.js.map +1 -1
- package/build/quote/deprecated.js +13 -6
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/index.js +4 -2
- package/build/quote/index.js.map +1 -1
- package/build/quote/transforms.js +22 -37
- package/build/quote/transforms.js.map +1 -1
- package/build/separator/deprecated.js +3 -4
- package/build/separator/deprecated.js.map +1 -1
- package/build/separator/index.js +1 -0
- package/build/separator/index.js.map +1 -1
- package/build/social-link/icons/reddit.js +1 -1
- package/build/social-link/icons/reddit.js.map +1 -1
- package/build/social-links/edit.js +43 -9
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/index.js +9 -0
- package/build/social-links/index.js.map +1 -1
- package/build/spacer/index.js +7 -1
- package/build/spacer/index.js.map +1 -1
- package/build/table/index.js +4 -0
- package/build/table/index.js.map +1 -1
- package/build/table/state.js +9 -3
- package/build/table/state.js.map +1 -1
- package/build/table-of-contents/index.js +24 -1
- package/build/table-of-contents/index.js.map +1 -1
- package/build/tag-cloud/index.js +5 -1
- package/build/tag-cloud/index.js.map +1 -1
- package/build/template-part/index.js +2 -2
- package/build/template-part/index.js.map +1 -1
- package/build/term-description/index.js +10 -0
- package/build/term-description/index.js.map +1 -1
- package/build/text-columns/edit.js +3 -1
- package/build/text-columns/edit.js.map +1 -1
- package/build/text-columns/save.js +3 -1
- package/build/text-columns/save.js.map +1 -1
- package/build/verse/index.js +2 -0
- package/build/verse/index.js.map +1 -1
- package/build/video/index.js +4 -0
- package/build/video/index.js.map +1 -1
- package/build-module/archives/index.js +5 -1
- package/build-module/archives/index.js.map +1 -1
- package/build-module/audio/index.js +4 -0
- package/build-module/audio/index.js.map +1 -1
- package/build-module/button/deprecated.js +14 -4
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/index.js +1 -1
- package/build-module/categories/edit.js +4 -2
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +14 -1
- package/build-module/categories/index.js.map +1 -1
- package/build-module/code/index.js +4 -2
- package/build-module/code/index.js.map +1 -1
- package/build-module/column/index.js +13 -0
- package/build-module/column/index.js.map +1 -1
- package/build-module/columns/deprecated.js +16 -4
- package/build-module/columns/deprecated.js.map +1 -1
- package/build-module/columns/edit.js +7 -3
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +7 -3
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +13 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/columns/transforms.js +10 -1
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/comment-author-name/index.js +5 -1
- package/build-module/comment-author-name/index.js.map +1 -1
- package/build-module/comment-content/index.js +5 -1
- package/build-module/comment-content/index.js.map +1 -1
- package/build-module/comment-date/index.js +1 -0
- package/build-module/comment-date/index.js.map +1 -1
- package/build-module/comment-edit-link/index.js +5 -1
- package/build-module/comment-edit-link/index.js.map +1 -1
- package/build-module/comment-reply-link/index.js +5 -1
- package/build-module/comment-reply-link/index.js.map +1 -1
- package/build-module/comment-template/index.js +14 -1
- package/build-module/comment-template/index.js.map +1 -1
- package/build-module/comments/index.js +13 -0
- package/build-module/comments/index.js.map +1 -1
- package/build-module/comments-pagination/index.js +13 -0
- package/build-module/comments-pagination/index.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +4 -2
- package/build-module/comments-pagination-next/index.js.map +1 -1
- package/build-module/comments-pagination-numbers/edit.js +5 -1
- package/build-module/comments-pagination-numbers/edit.js.map +1 -1
- package/build-module/comments-pagination-numbers/index.js +14 -1
- package/build-module/comments-pagination-numbers/index.js.map +1 -1
- package/build-module/comments-pagination-previous/index.js +4 -2
- package/build-module/comments-pagination-previous/index.js.map +1 -1
- package/build-module/comments-title/deprecated.js +4 -2
- package/build-module/comments-title/deprecated.js.map +1 -1
- package/build-module/comments-title/index.js +4 -2
- package/build-module/comments-title/index.js.map +1 -1
- package/build-module/cover/deprecated.js +20 -4
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +10 -3
- package/build-module/cover/edit/block-controls.js.map +1 -1
- package/build-module/cover/index.js +13 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/shared.js +1 -1
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/embed/icons.js +1 -1
- package/build-module/embed/icons.js.map +1 -1
- package/build-module/gallery/deprecated.js +7 -2
- package/build-module/gallery/deprecated.js.map +1 -1
- package/build-module/gallery/edit.js +15 -2
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gap-styles.js +6 -5
- package/build-module/gallery/gap-styles.js.map +1 -1
- package/build-module/gallery/index.js +5 -0
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/transforms.js +20 -7
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/gallery/utils.js +7 -6
- package/build-module/gallery/utils.js.map +1 -1
- package/build-module/group/deprecated.js +109 -12
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/group/edit.js +25 -2
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +10 -2
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/variations.js +8 -8
- package/build-module/group/variations.js.map +1 -1
- package/build-module/heading/deprecated.js +5 -2
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/index.js +3 -1
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +3 -1
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/home-link/edit.js +10 -6
- package/build-module/home-link/edit.js.map +1 -1
- package/build-module/home-link/index.js +14 -1
- package/build-module/home-link/index.js.map +1 -1
- package/build-module/image/edit.js +18 -4
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/index.js +13 -7
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/use-client-width.js +3 -1
- package/build-module/image/use-client-width.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +9 -17
- package/build-module/index.native.js.map +1 -1
- package/build-module/latest-posts/deprecated.js +14 -1
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/index.js +14 -1
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/list/deprecated.js +83 -1
- package/build-module/list/deprecated.js.map +1 -1
- package/build-module/list/edit.js +151 -134
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/index.js +33 -29
- package/build-module/list/index.js.map +1 -1
- package/build-module/list/save.js +2 -6
- package/build-module/list/save.js.map +1 -1
- package/build-module/list/{v2/tag-name.js → tag-name.js} +0 -0
- package/build-module/list/tag-name.js.map +1 -0
- package/build-module/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
- package/build-module/list/tag-name.native.js.map +1 -0
- package/build-module/list/transforms.js +62 -97
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/{v2/migrate.js → utils.js} +3 -2
- package/build-module/list/utils.js.map +1 -0
- package/build-module/list-item/edit.js +4 -2
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js +19 -3
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/index.js +1 -0
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/hooks/use-copy.js +34 -0
- package/build-module/list-item/hooks/use-copy.js.map +1 -0
- package/build-module/list-item/hooks/use-merge.js +0 -1
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +0 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +10 -1
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/list-item/index.js +0 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/list-style-type.native.js +3 -1
- package/build-module/list-item/list-style-type.native.js.map +1 -1
- package/build-module/list-item/utils.js +4 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/deprecated.js +6 -2
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/index.js +17 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/navigation/deprecated.js +7 -2
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +125 -43
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +6 -4
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -16
- 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 +4 -7
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/index.js +1 -0
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/menu-items-to-blocks.js +1 -6
- package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +8 -7
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-link/edit.js +7 -9
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +5 -7
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +7 -2
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/paragraph/deprecated.js +18 -9
- package/build-module/paragraph/deprecated.js.map +1 -1
- package/build-module/paragraph/edit.js +1 -0
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/paragraph/index.js +7 -0
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +7 -0
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/post-author/index.js +4 -2
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-author-biography/index.js +1 -0
- package/build-module/post-author-biography/index.js.map +1 -1
- package/build-module/post-author-name/index.js +5 -1
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-comments-count/edit.js +10 -1
- package/build-module/post-comments-count/edit.js.map +1 -1
- package/build-module/post-comments-count/index.js +4 -1
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-link/index.js +4 -2
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-date/edit.js +9 -2
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-date/index.js +9 -0
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-excerpt/index.js +4 -2
- package/build-module/post-excerpt/index.js.map +1 -1
- package/build-module/post-featured-image/edit.js +28 -13
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +12 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-navigation-link/index.js +3 -2
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-template/edit.js +8 -4
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-template/index.js +14 -1
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/post-terms/edit.js +0 -1
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/index.js +5 -3
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-terms/use-post-terms.js +5 -25
- package/build-module/post-terms/use-post-terms.js.map +1 -1
- package/build-module/post-title/index.js +2 -1
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/preformatted/index.js +4 -2
- package/build-module/preformatted/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js +134 -25
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/pullquote/edit.js +1 -1
- package/build-module/pullquote/edit.js.map +1 -1
- package/build-module/pullquote/edit.native.js +0 -1
- package/build-module/pullquote/edit.native.js.map +1 -1
- package/build-module/pullquote/index.js +13 -6
- package/build-module/pullquote/index.js.map +1 -1
- package/build-module/pullquote/save.js +2 -2
- package/build-module/pullquote/save.js.map +1 -1
- package/build-module/pullquote/transforms.js +15 -34
- package/build-module/pullquote/transforms.js.map +1 -1
- package/build-module/query/deprecated.js +10 -8
- package/build-module/query/deprecated.js.map +1 -1
- package/build-module/query/edit/index.js +23 -12
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +1 -0
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +6 -1
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +32 -7
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-no-results/edit.js +1 -1
- package/build-module/query-no-results/edit.js.map +1 -1
- package/build-module/query-no-results/index.js +13 -0
- package/build-module/query-no-results/index.js.map +1 -1
- package/build-module/query-pagination-numbers/index.js +4 -2
- package/build-module/query-pagination-numbers/index.js.map +1 -1
- package/build-module/query-title/edit.js +10 -1
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/query-title/index.js +8 -2
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/quote/deprecated.js +13 -5
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/index.js +4 -2
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/transforms.js +23 -38
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/separator/deprecated.js +3 -3
- package/build-module/separator/deprecated.js.map +1 -1
- package/build-module/separator/index.js +1 -0
- package/build-module/separator/index.js.map +1 -1
- package/build-module/social-link/icons/reddit.js +1 -1
- package/build-module/social-link/icons/reddit.js.map +1 -1
- package/build-module/social-links/edit.js +45 -12
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/index.js +9 -0
- package/build-module/social-links/index.js.map +1 -1
- package/build-module/spacer/index.js +7 -1
- package/build-module/spacer/index.js.map +1 -1
- package/build-module/table/index.js +4 -0
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/state.js +10 -4
- package/build-module/table/state.js.map +1 -1
- package/build-module/table-of-contents/index.js +24 -1
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/tag-cloud/index.js +5 -1
- package/build-module/tag-cloud/index.js.map +1 -1
- package/build-module/template-part/index.js +2 -2
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/term-description/index.js +10 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/text-columns/edit.js +4 -2
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/text-columns/save.js +4 -2
- package/build-module/text-columns/save.js.map +1 -1
- package/build-module/verse/index.js +2 -0
- package/build-module/verse/index.js.map +1 -1
- package/build-module/video/index.js +4 -0
- package/build-module/video/index.js.map +1 -1
- package/build-style/audio/style-rtl.css +3 -0
- package/build-style/audio/style.css +3 -0
- package/build-style/button/style-rtl.css +7 -10
- package/build-style/button/style.css +7 -10
- package/build-style/code/editor-rtl.css +79 -0
- package/build-style/code/editor.css +79 -0
- package/build-style/cover/editor-rtl.css +0 -3
- package/build-style/cover/editor.css +0 -3
- package/build-style/editor-rtl.css +94 -146
- package/build-style/editor.css +94 -146
- package/build-style/group/editor-rtl.css +9 -10
- package/build-style/group/editor.css +9 -10
- package/build-style/image/editor-rtl.css +21 -2
- package/build-style/image/editor.css +21 -2
- package/build-style/media-text/style-rtl.css +1 -0
- package/build-style/media-text/style.css +1 -0
- package/build-style/navigation/editor-rtl.css +11 -23
- package/build-style/navigation/editor.css +11 -23
- package/build-style/navigation/style-rtl.css +10 -3
- package/build-style/navigation/style.css +10 -3
- package/build-style/paragraph/editor-rtl.css +1 -1
- package/build-style/paragraph/editor.css +1 -1
- package/build-style/post-date/style-rtl.css +79 -0
- package/build-style/post-date/style.css +79 -0
- package/build-style/post-featured-image/editor-rtl.css +45 -43
- package/build-style/post-featured-image/editor.css +45 -43
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/post-title/style-rtl.css +1 -0
- package/build-style/post-title/style.css +1 -0
- package/build-style/pullquote/editor-rtl.css +0 -12
- package/build-style/pullquote/editor.css +0 -12
- package/build-style/pullquote/style-rtl.css +1 -8
- package/build-style/pullquote/style.css +1 -8
- package/build-style/query-title/style-rtl.css +79 -0
- package/build-style/query-title/style.css +79 -0
- package/build-style/site-logo/editor-rtl.css +3 -52
- package/build-style/site-logo/editor.css +3 -52
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +37 -23
- package/build-style/style.css +37 -23
- package/build-style/video/style-rtl.css +3 -0
- package/build-style/video/style.css +3 -0
- package/package.json +30 -29
- package/src/archives/block.json +5 -1
- package/src/audio/block.json +4 -0
- package/src/audio/style.scss +2 -0
- package/src/button/block.json +1 -1
- package/src/button/deprecated.js +21 -22
- package/src/button/style.scss +7 -14
- package/src/calendar/index.php +2 -2
- package/src/categories/block.json +14 -1
- package/src/categories/edit.js +2 -2
- package/src/code/block.json +4 -2
- package/src/code/editor.scss +3 -0
- package/src/column/block.json +13 -0
- package/src/columns/block.json +13 -0
- package/src/columns/deprecated.js +10 -4
- package/src/columns/edit.js +7 -3
- package/src/columns/edit.native.js +7 -3
- package/src/columns/transforms.js +17 -3
- package/src/comment-author-name/block.json +5 -1
- package/src/comment-content/block.json +5 -1
- package/src/comment-date/block.json +1 -0
- package/src/comment-edit-link/block.json +5 -1
- package/src/comment-reply-link/block.json +5 -1
- package/src/comment-template/block.json +14 -1
- package/src/comments/block.json +13 -0
- package/src/comments/index.php +6 -5
- package/src/comments-pagination/block.json +13 -0
- package/src/comments-pagination-next/block.json +4 -2
- package/src/comments-pagination-numbers/block.json +14 -1
- package/src/comments-pagination-numbers/edit.js +12 -3
- package/src/comments-pagination-previous/block.json +4 -2
- package/src/comments-title/block.json +4 -2
- package/src/cover/block.json +13 -0
- package/src/cover/deprecated.js +11 -4
- package/src/cover/edit/block-controls.js +15 -3
- package/src/cover/editor.scss +0 -4
- package/src/cover/shared.js +2 -1
- package/src/editor.scss +1 -0
- package/src/embed/icons.js +1 -1
- package/src/gallery/block.json +5 -0
- package/src/gallery/deprecated.js +4 -2
- package/src/gallery/edit.js +22 -2
- package/src/gallery/gap-styles.js +10 -6
- package/src/gallery/index.php +23 -2
- package/src/gallery/transforms.js +18 -5
- package/src/gallery/utils.js +11 -7
- package/src/group/block.json +10 -2
- package/src/group/deprecated.js +89 -2
- package/src/group/edit.js +15 -2
- package/src/group/editor.scss +4 -6
- package/src/group/variations.js +4 -3
- package/src/heading/block.json +3 -1
- package/src/heading/deprecated.js +4 -2
- package/src/home-link/block.json +14 -1
- package/src/home-link/edit.js +19 -20
- package/src/image/block.json +13 -7
- package/src/image/edit.js +22 -4
- package/src/image/editor.scss +39 -3
- package/src/image/index.php +1 -1
- package/src/image/use-client-width.js +1 -1
- package/src/index.js +1 -4
- package/src/index.native.js +17 -23
- package/src/latest-posts/block.json +14 -1
- package/src/list/block.json +4 -0
- package/src/list/deprecated.js +71 -1
- package/src/list/edit.js +146 -133
- package/src/list/index.js +25 -24
- package/src/list/save.js +3 -4
- package/src/list/{v2/tag-name.js → tag-name.js} +0 -0
- package/src/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
- package/src/list/test/__snapshots__/edit.native.js.snap +14 -2
- package/src/list/test/edit.native.js +0 -154
- package/src/list/transforms.js +57 -111
- package/src/list/{v2/migrate.js → utils.js} +2 -2
- package/src/list-item/block.json +0 -1
- package/src/list-item/edit.js +2 -1
- package/src/list-item/edit.native.js +32 -2
- package/src/list-item/hooks/index.js +1 -0
- package/src/list-item/hooks/use-copy.js +38 -0
- package/src/list-item/hooks/use-space.js +10 -2
- package/src/list-item/list-style-type.native.js +8 -1
- package/src/list-item/style.native.scss +12 -0
- package/src/media-text/block.json +17 -0
- package/src/media-text/deprecated.js +3 -2
- package/src/media-text/style.scss +2 -0
- package/src/navigation/block.json +1 -0
- package/src/navigation/deprecated.js +4 -2
- package/src/navigation/edit/index.js +173 -85
- package/src/navigation/edit/responsive-wrapper.js +8 -3
- package/src/navigation/edit/unsaved-inner-blocks.js +17 -25
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +31 -37
- package/src/navigation/editor.scss +5 -25
- package/src/navigation/index.php +24 -24
- package/src/navigation/menu-items-to-blocks.js +3 -6
- package/src/navigation/style.scss +14 -4
- package/src/navigation/test/use-navigation-menu.js +18 -1
- package/src/navigation/use-navigation-menu.js +11 -8
- package/src/navigation-link/edit.js +9 -13
- package/src/navigation-submenu/edit.js +9 -13
- package/src/page-list/edit.js +6 -2
- package/src/paragraph/block.json +7 -0
- package/src/paragraph/deprecated.js +33 -35
- package/src/paragraph/edit.js +1 -0
- package/src/paragraph/editor.scss +5 -3
- package/src/post-author/block.json +4 -2
- package/src/post-author-biography/block.json +1 -0
- package/src/post-author-name/block.json +5 -1
- package/src/post-comments-count/block.json +4 -1
- package/src/post-comments-count/edit.js +10 -2
- package/src/post-comments-link/block.json +4 -2
- package/src/post-date/block.json +9 -0
- package/src/post-date/edit.js +12 -2
- package/src/post-date/index.php +10 -2
- package/src/post-date/style.scss +4 -0
- package/src/post-excerpt/block.json +4 -2
- package/src/post-featured-image/block.json +12 -0
- package/src/post-featured-image/edit.js +43 -13
- package/src/post-featured-image/editor.scss +44 -53
- package/src/post-featured-image/index.php +61 -4
- package/src/post-featured-image/style.scss +1 -0
- package/src/post-navigation-link/block.json +3 -2
- package/src/post-template/block.json +15 -1
- package/src/post-template/edit.js +6 -1
- package/src/post-template/index.php +7 -4
- package/src/post-terms/block.json +5 -3
- package/src/post-terms/edit.js +0 -1
- package/src/post-terms/use-post-terms.js +10 -15
- package/src/post-title/block.json +2 -1
- package/src/post-title/style.scss +2 -0
- package/src/preformatted/block.json +4 -2
- package/src/pullquote/block.json +11 -4
- package/src/pullquote/deprecated.js +490 -412
- package/src/pullquote/edit.js +1 -1
- package/src/pullquote/edit.native.js +0 -1
- package/src/pullquote/editor.scss +0 -16
- package/src/pullquote/index.js +1 -3
- package/src/pullquote/save.js +1 -1
- package/src/pullquote/style.scss +0 -11
- package/src/pullquote/transforms.js +17 -33
- package/src/query/deprecated.js +4 -9
- package/src/query/edit/index.js +28 -15
- package/src/query/edit/inspector-controls/taxonomy-controls.js +1 -1
- package/src/query/edit/query-placeholder.js +17 -2
- package/src/query/utils.js +29 -7
- package/src/query-no-results/block.json +13 -0
- package/src/query-no-results/edit.js +1 -1
- package/src/query-pagination-numbers/block.json +4 -2
- package/src/query-title/block.json +8 -2
- package/src/query-title/edit.js +19 -2
- package/src/query-title/index.php +11 -1
- package/src/query-title/style.scss +4 -0
- package/src/quote/block.json +4 -2
- package/src/quote/deprecated.js +6 -5
- package/src/quote/transforms.js +4 -18
- package/src/search/index.php +1 -1
- package/src/separator/block.json +1 -0
- package/src/separator/deprecated.js +2 -3
- package/src/site-logo/editor.scss +8 -66
- package/src/social-link/icons/reddit.js +1 -1
- package/src/social-link/index.php +1 -1
- package/src/social-link/socials-with-bg.scss +1 -1
- package/src/social-link/socials-without-bg.scss +1 -1
- package/src/social-links/block.json +9 -0
- package/src/social-links/edit.js +47 -19
- package/src/spacer/block.json +7 -1
- package/src/style.scss +2 -0
- package/src/table/block.json +4 -0
- package/src/table/state.js +21 -19
- package/src/table-of-contents/block.json +24 -1
- package/src/tag-cloud/block.json +5 -1
- package/src/template-part/index.js +3 -2
- package/src/term-description/block.json +10 -0
- package/src/text-columns/edit.js +2 -2
- package/src/text-columns/save.js +2 -2
- package/src/verse/block.json +2 -0
- package/src/video/block.json +4 -0
- package/src/video/style.scss +2 -0
- package/build/list/v2/deprecated.js +0 -117
- package/build/list/v2/deprecated.js.map +0 -1
- package/build/list/v2/edit.js +0 -200
- package/build/list/v2/edit.js.map +0 -1
- package/build/list/v2/index.js +0 -36
- package/build/list/v2/index.js.map +0 -1
- package/build/list/v2/migrate.js.map +0 -1
- package/build/list/v2/save.js +0 -34
- package/build/list/v2/save.js.map +0 -1
- package/build/list/v2/tag-name.js.map +0 -1
- package/build/list/v2/tag-name.native.js.map +0 -1
- package/build/list/v2/transforms.js +0 -137
- package/build/list/v2/transforms.js.map +0 -1
- package/build-module/list/v2/deprecated.js +0 -104
- package/build-module/list/v2/deprecated.js.map +0 -1
- package/build-module/list/v2/edit.js +0 -179
- package/build-module/list/v2/edit.js.map +0 -1
- package/build-module/list/v2/index.js +0 -21
- package/build-module/list/v2/index.js.map +0 -1
- package/build-module/list/v2/migrate.js.map +0 -1
- package/build-module/list/v2/save.js +0 -23
- package/build-module/list/v2/save.js.map +0 -1
- package/build-module/list/v2/tag-name.js.map +0 -1
- package/build-module/list/v2/tag-name.native.js.map +0 -1
- package/build-module/list/v2/transforms.js +0 -127
- package/build-module/list/v2/transforms.js.map +0 -1
- package/src/list/test/migrate.js +0 -158
- package/src/list/v2/deprecated.js +0 -89
- package/src/list/v2/edit.js +0 -192
- package/src/list/v2/index.js +0 -22
- package/src/list/v2/save.js +0 -18
- package/src/list/v2/transforms.js +0 -120
|
@@ -8,13 +8,15 @@ import classnames from 'classnames';
|
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { useState, useEffect, useRef,
|
|
11
|
+
import { useState, useEffect, useRef, Platform } from '@wordpress/element';
|
|
12
12
|
import { InspectorControls, BlockControls, useBlockProps, __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, store as blockEditorStore, withColors, PanelColorSettings, ContrastChecker, getColorClassName, Warning, __experimentalUseBlockOverlayActive as useBlockOverlayActive } from '@wordpress/block-editor';
|
|
13
13
|
import { EntityProvider } from '@wordpress/core-data';
|
|
14
|
-
import { useDispatch
|
|
14
|
+
import { useDispatch } from '@wordpress/data';
|
|
15
15
|
import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, ToolbarGroup, Button, Spinner } from '@wordpress/components';
|
|
16
16
|
import { __, sprintf } from '@wordpress/i18n';
|
|
17
17
|
import { speak } from '@wordpress/a11y';
|
|
18
|
+
import { createBlock } from '@wordpress/blocks';
|
|
19
|
+
import { close, Icon } from '@wordpress/icons';
|
|
18
20
|
/**
|
|
19
21
|
* Internal dependencies
|
|
20
22
|
*/
|
|
@@ -70,7 +72,6 @@ function Navigation(_ref) {
|
|
|
70
72
|
hasIcon
|
|
71
73
|
} = attributes;
|
|
72
74
|
const ref = attributes.ref;
|
|
73
|
-
const registry = useRegistry();
|
|
74
75
|
|
|
75
76
|
const setRef = postId => {
|
|
76
77
|
setAttributes({
|
|
@@ -147,24 +148,42 @@ function Navigation(_ref) {
|
|
|
147
148
|
isResolvingCanUserCreateNavigationMenu,
|
|
148
149
|
hasResolvedCanUserCreateNavigationMenu
|
|
149
150
|
} = useNavigationMenu(ref);
|
|
150
|
-
const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing; // Attempt to retrieve and prioritize any existing navigation menu unless
|
|
151
|
-
//
|
|
152
|
-
//
|
|
151
|
+
const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing; // Attempt to retrieve and prioritize any existing navigation menu unless:
|
|
152
|
+
// - the are uncontrolled inner blocks already present in the block.
|
|
153
|
+
// - the user is creating a new menu.
|
|
154
|
+
// - there are no menus to choose from.
|
|
155
|
+
// This attempts to pick the first menu if there is a single Navigation Post. If more
|
|
156
|
+
// than 1 exists then use the most recent.
|
|
157
|
+
// The aim is for the block to "just work" from a user perspective using existing data.
|
|
153
158
|
|
|
154
159
|
useEffect(() => {
|
|
155
|
-
if (isCreatingNavigationMenu || ref || !(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length)
|
|
160
|
+
if (hasUncontrolledInnerBlocks || isCreatingNavigationMenu || ref || !(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length)) {
|
|
156
161
|
return;
|
|
157
162
|
}
|
|
158
163
|
|
|
164
|
+
navigationMenus.sort((menuA, menuB) => {
|
|
165
|
+
const menuADate = new Date(menuA.date);
|
|
166
|
+
const menuBDate = new Date(menuB.date);
|
|
167
|
+
return menuADate.getTime() < menuBDate.getTime();
|
|
168
|
+
});
|
|
169
|
+
/**
|
|
170
|
+
* This fallback displays (both in editor and on front)
|
|
171
|
+
* a list of pages only if no menu (user assigned or
|
|
172
|
+
* automatically picked) is available.
|
|
173
|
+
* The fallback should not request a save (entity dirty state)
|
|
174
|
+
* nor to be undoable, hence why it is marked as non persistent
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
178
|
+
|
|
159
179
|
setRef(navigationMenus[0].id);
|
|
160
180
|
}, [navigationMenus]);
|
|
161
181
|
const navRef = useRef();
|
|
162
182
|
const isDraftNavigationMenu = (navigationMenu === null || navigationMenu === void 0 ? void 0 : navigationMenu.status) === 'draft';
|
|
163
183
|
const {
|
|
164
|
-
convert,
|
|
184
|
+
convert: convertClassicMenu,
|
|
165
185
|
status: classicMenuConversionStatus,
|
|
166
|
-
error: classicMenuConversionError
|
|
167
|
-
value: classicMenuConversionResult
|
|
186
|
+
error: classicMenuConversionError
|
|
168
187
|
} = useConvertClassicToBlockMenu(clientId);
|
|
169
188
|
const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING; // The standard HTML5 tag for the block wrapper.
|
|
170
189
|
|
|
@@ -175,10 +194,23 @@ function Navigation(_ref) {
|
|
|
175
194
|
// - there are no uncontrolled blocks.
|
|
176
195
|
|
|
177
196
|
const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && !hasUncontrolledInnerBlocks;
|
|
197
|
+
|
|
198
|
+
if (isPlaceholder && !ref) {
|
|
199
|
+
/**
|
|
200
|
+
* this fallback only displays (both in editor and on front)
|
|
201
|
+
* the list of pages block if no menu is available as a fallback.
|
|
202
|
+
* We don't want the fallback to request a save,
|
|
203
|
+
* nor to be undoable, hence we mark it non persistent.
|
|
204
|
+
*/
|
|
205
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
206
|
+
|
|
207
|
+
replaceInnerBlocks(clientId, [createBlock('core/page-list')]);
|
|
208
|
+
}
|
|
209
|
+
|
|
178
210
|
const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // "loading" state:
|
|
179
211
|
// - there is a menu creation process in progress.
|
|
180
212
|
// - there is a classic menu conversion process in progress.
|
|
181
|
-
// OR
|
|
213
|
+
// OR:
|
|
182
214
|
// - there is a ref attribute pointing to a Navigation Post
|
|
183
215
|
// - the Navigation Post isn't available (hasn't resolved) yet.
|
|
184
216
|
|
|
@@ -206,8 +238,6 @@ function Navigation(_ref) {
|
|
|
206
238
|
color: !(textColor !== null && textColor !== void 0 && textColor.slug) && (textColor === null || textColor === void 0 ? void 0 : textColor.color),
|
|
207
239
|
backgroundColor: !(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug) && (backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.color)
|
|
208
240
|
}
|
|
209
|
-
}, {
|
|
210
|
-
__unstableIsDisabled: hasBlockOverlay
|
|
211
241
|
}); // Turn on contrast checker for web only since it's not supported on mobile yet.
|
|
212
242
|
|
|
213
243
|
const enableContrastChecking = Platform.OS === 'web';
|
|
@@ -228,15 +258,14 @@ function Navigation(_ref) {
|
|
|
228
258
|
speak(__('Classic menu importing.'));
|
|
229
259
|
}
|
|
230
260
|
|
|
231
|
-
if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS
|
|
232
|
-
handleUpdateMenu(classicMenuConversionResult === null || classicMenuConversionResult === void 0 ? void 0 : classicMenuConversionResult.id);
|
|
261
|
+
if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS) {
|
|
233
262
|
showClassicMenuConversionNotice(__('Classic menu imported successfully.'));
|
|
234
263
|
}
|
|
235
264
|
|
|
236
265
|
if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) {
|
|
237
266
|
showClassicMenuConversionNotice(__('Classic menu import failed.'));
|
|
238
267
|
}
|
|
239
|
-
}, [classicMenuConversionStatus,
|
|
268
|
+
}, [classicMenuConversionStatus, classicMenuConversionError]); // Spacer block needs orientation from context. This is a patch until
|
|
240
269
|
// https://github.com/WordPress/gutenberg/issues/36197 is addressed.
|
|
241
270
|
|
|
242
271
|
useEffect(() => {
|
|
@@ -290,17 +319,6 @@ function Navigation(_ref) {
|
|
|
290
319
|
navigationSelectorRef === null || navigationSelectorRef === void 0 ? void 0 : (_navigationSelectorRe = navigationSelectorRef.current) === null || _navigationSelectorRe === void 0 ? void 0 : _navigationSelectorRe.focus();
|
|
291
320
|
setShouldFocusNavigationSelector(false);
|
|
292
321
|
}, [isDraftNavigationMenu, isEntityAvailable, shouldFocusNavigationSelector]);
|
|
293
|
-
const resetToEmptyBlock = useCallback(() => {
|
|
294
|
-
registry.batch(() => {
|
|
295
|
-
setAttributes({
|
|
296
|
-
ref: undefined
|
|
297
|
-
});
|
|
298
|
-
|
|
299
|
-
if (!ref) {
|
|
300
|
-
replaceInnerBlocks(clientId, []);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}, [clientId, ref]);
|
|
304
322
|
const isResponsive = 'never' !== overlayMenu;
|
|
305
323
|
const overlayMenuPreviewClasses = classnames('wp-block-navigation__overlay-menu-preview', {
|
|
306
324
|
open: overlayMenuPreview
|
|
@@ -312,9 +330,11 @@ function Navigation(_ref) {
|
|
|
312
330
|
onClick: () => {
|
|
313
331
|
setOverlayMenuPreview(!overlayMenuPreview);
|
|
314
332
|
}
|
|
315
|
-
}, hasIcon && createElement(
|
|
333
|
+
}, hasIcon && createElement(Fragment, null, createElement(OverlayMenuIcon, null), createElement(Icon, {
|
|
334
|
+
icon: close
|
|
335
|
+
})), !hasIcon && createElement(Fragment, null, createElement("span", null, __('Menu')), createElement("span", null, __('Close')))), overlayMenuPreview && createElement(ToggleControl, {
|
|
316
336
|
label: __('Show icon button'),
|
|
317
|
-
help: __('Configure the visual appearance of the button opening the overlay menu.'),
|
|
337
|
+
help: __('Configure the visual appearance of the button opening and closing the overlay menu.'),
|
|
318
338
|
onChange: value => setAttributes({
|
|
319
339
|
hasIcon: value
|
|
320
340
|
}),
|
|
@@ -396,7 +416,30 @@ function Navigation(_ref) {
|
|
|
396
416
|
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
|
|
397
417
|
|
|
398
418
|
if (hasUnsavedBlocks) {
|
|
399
|
-
return createElement(TagName, blockProps,
|
|
419
|
+
return createElement(TagName, blockProps, createElement(BlockControls, null, createElement(ToolbarGroup, {
|
|
420
|
+
className: "wp-block-navigation__toolbar-menu-selector"
|
|
421
|
+
}, createElement(NavigationMenuSelector, {
|
|
422
|
+
ref: null,
|
|
423
|
+
currentMenuId: null,
|
|
424
|
+
clientId: clientId,
|
|
425
|
+
onSelectNavigationMenu: menuId => {
|
|
426
|
+
handleUpdateMenu(menuId);
|
|
427
|
+
setShouldFocusNavigationSelector(true);
|
|
428
|
+
},
|
|
429
|
+
onSelectClassicMenu: async classicMenu => {
|
|
430
|
+
const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
|
|
431
|
+
|
|
432
|
+
if (navMenu) {
|
|
433
|
+
handleUpdateMenu(navMenu.id);
|
|
434
|
+
setShouldFocusNavigationSelector(true);
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
onCreateNew: () => createNavigationMenu('', [])
|
|
438
|
+
/* translators: %s: The name of a menu. */
|
|
439
|
+
,
|
|
440
|
+
actionLabel: __("Switch to '%s'"),
|
|
441
|
+
showManageActions: true
|
|
442
|
+
}))), stylingInspectorControls, createElement(ResponsiveWrapper, {
|
|
400
443
|
id: clientId,
|
|
401
444
|
onToggle: setResponsiveMenuVisibility,
|
|
402
445
|
isOpen: isResponsiveMenuOpen,
|
|
@@ -405,7 +448,6 @@ function Navigation(_ref) {
|
|
|
405
448
|
overlayBackgroundColor: overlayBackgroundColor,
|
|
406
449
|
overlayTextColor: overlayTextColor
|
|
407
450
|
}, createElement(UnsavedInnerBlocks, {
|
|
408
|
-
blockProps: blockProps,
|
|
409
451
|
blocks: uncontrolledInnerBlocks,
|
|
410
452
|
clientId: clientId,
|
|
411
453
|
navigationMenus: navigationMenus,
|
|
@@ -424,8 +466,31 @@ function Navigation(_ref) {
|
|
|
424
466
|
|
|
425
467
|
|
|
426
468
|
if (ref && isNavigationMenuMissing) {
|
|
427
|
-
return createElement(
|
|
428
|
-
|
|
469
|
+
return createElement(TagName, blockProps, createElement(BlockControls, null, createElement(ToolbarGroup, {
|
|
470
|
+
className: "wp-block-navigation__toolbar-menu-selector"
|
|
471
|
+
}, createElement(NavigationMenuSelector, {
|
|
472
|
+
ref: navigationSelectorRef,
|
|
473
|
+
currentMenuId: ref,
|
|
474
|
+
clientId: clientId,
|
|
475
|
+
onSelectNavigationMenu: menuId => {
|
|
476
|
+
handleUpdateMenu(menuId);
|
|
477
|
+
setShouldFocusNavigationSelector(true);
|
|
478
|
+
},
|
|
479
|
+
onSelectClassicMenu: async classicMenu => {
|
|
480
|
+
const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
|
|
481
|
+
|
|
482
|
+
if (navMenu) {
|
|
483
|
+
handleUpdateMenu(navMenu.id);
|
|
484
|
+
setShouldFocusNavigationSelector(true);
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
onCreateNew: () => createNavigationMenu('', [])
|
|
488
|
+
/* translators: %s: The name of a menu. */
|
|
489
|
+
,
|
|
490
|
+
actionLabel: __("Switch to '%s'"),
|
|
491
|
+
showManageActions: true
|
|
492
|
+
}))), createElement(Warning, null, __('Navigation menu has been deleted or is unavailable. '), createElement(Button, {
|
|
493
|
+
onClick: () => createNavigationMenu('', []),
|
|
429
494
|
variant: "link"
|
|
430
495
|
}, __('Create a new menu?'))));
|
|
431
496
|
}
|
|
@@ -435,8 +500,17 @@ function Navigation(_ref) {
|
|
|
435
500
|
}
|
|
436
501
|
|
|
437
502
|
const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : Placeholder;
|
|
438
|
-
|
|
439
|
-
|
|
503
|
+
/**
|
|
504
|
+
* Historically the navigation block has supported custom placeholders.
|
|
505
|
+
* Even though the current UX tries as hard as possible not to
|
|
506
|
+
* end up in a placeholder state, the block continues to support
|
|
507
|
+
* this extensibility point, via a CustomPlaceholder.
|
|
508
|
+
* When CustomPlaceholder is present it becomes the default fallback
|
|
509
|
+
* for an empty navigation block, instead of the default fallbacks.
|
|
510
|
+
*
|
|
511
|
+
*/
|
|
512
|
+
|
|
513
|
+
if (isPlaceholder && CustomPlaceholder) {
|
|
440
514
|
return createElement(TagName, blockProps, createElement(PlaceholderComponent, {
|
|
441
515
|
isSelected: isSelected,
|
|
442
516
|
currentMenuId: ref,
|
|
@@ -447,9 +521,13 @@ function Navigation(_ref) {
|
|
|
447
521
|
handleUpdateMenu(menuId);
|
|
448
522
|
setShouldFocusNavigationSelector(true);
|
|
449
523
|
},
|
|
450
|
-
onSelectClassicMenu: classicMenu => {
|
|
451
|
-
|
|
452
|
-
|
|
524
|
+
onSelectClassicMenu: async classicMenu => {
|
|
525
|
+
const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
|
|
526
|
+
|
|
527
|
+
if (navMenu) {
|
|
528
|
+
handleUpdateMenu(navMenu.id);
|
|
529
|
+
setShouldFocusNavigationSelector(true);
|
|
530
|
+
}
|
|
453
531
|
},
|
|
454
532
|
onCreateEmpty: () => createNavigationMenu('', [])
|
|
455
533
|
}));
|
|
@@ -471,11 +549,15 @@ function Navigation(_ref) {
|
|
|
471
549
|
handleUpdateMenu(menuId);
|
|
472
550
|
setShouldFocusNavigationSelector(true);
|
|
473
551
|
},
|
|
474
|
-
onSelectClassicMenu: classicMenu => {
|
|
475
|
-
|
|
476
|
-
|
|
552
|
+
onSelectClassicMenu: async classicMenu => {
|
|
553
|
+
const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
|
|
554
|
+
|
|
555
|
+
if (navMenu) {
|
|
556
|
+
handleUpdateMenu(navMenu.id);
|
|
557
|
+
setShouldFocusNavigationSelector(true);
|
|
558
|
+
}
|
|
477
559
|
},
|
|
478
|
-
onCreateNew:
|
|
560
|
+
onCreateNew: () => createNavigationMenu('', [])
|
|
479
561
|
/* translators: %s: The name of a menu. */
|
|
480
562
|
,
|
|
481
563
|
actionLabel: __("Switch to '%s'"),
|
|
@@ -485,7 +567,7 @@ function Navigation(_ref) {
|
|
|
485
567
|
}, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && createElement(NavigationMenuNameControl, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && createElement(NavigationMenuDeleteControl, {
|
|
486
568
|
onDelete: function () {
|
|
487
569
|
let deletedMenuTitle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
488
|
-
|
|
570
|
+
replaceInnerBlocks(clientId, []);
|
|
489
571
|
showNavigationMenuStatusNotice(sprintf( // translators: %s: the name of a menu (e.g. Header navigation).
|
|
490
572
|
__('Navigation menu %s successfully deleted.'), deletedMenuTitle));
|
|
491
573
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","__experimentalUseBlockOverlayActive","useBlockOverlayActive","EntityProvider","useDispatch","useRegistry","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToolbarGroup","Button","Spinner","__","sprintf","speak","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","ref","registry","setRef","postId","recursionId","hasAlreadyRendered","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","id","selectBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","length","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","__unstableIsDisabled","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","handleUpdateMenu","menuId","current","subMenuElement","querySelector","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","focus","resetToEmptyBlock","batch","undefined","isResponsive","overlayMenuPreviewClasses","open","stylingInspectorControls","onChange","label","hasUnsavedBlocks","post","PlaceholderComponent","classicMenu","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenu,\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks ] =\n\t\tuseState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless\n\t// a specific ref is allocated or the user is explicitly creating a new menu. The aim is\n\t// for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! navigationMenus?.length ||\n\t\t\tnavigationMenus?.length > 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetRef( navigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\n\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst {\n\t\tconvert,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t\tvalue: classicMenuConversionResult,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps(\n\t\t{\n\t\t\tref: navRef,\n\t\t\tclassName: classnames( className, {\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\t\tbackgroundColor:\n\t\t\t\t\t! backgroundColor?.slug && backgroundColor?.color,\n\t\t\t},\n\t\t},\n\t\t{ __unstableIsDisabled: hasBlockOverlay }\n\t);\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = ( menuId ) => {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t};\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif (\n\t\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS &&\n\t\t\tclassicMenuConversionResult\n\t\t) {\n\t\t\thandleUpdateMenu( classicMenuConversionResult?.id );\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionResult,\n\t\tclassicMenuConversionError,\n\t] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst navigationSelectorRef = useRef();\n\tconst [ shouldFocusNavigationSelector, setShouldFocusNavigationSelector ] =\n\t\tuseState( false );\n\n\t// Focus support after menu selection.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisDraftNavigationMenu ||\n\t\t\t! isEntityAvailable ||\n\t\t\t! shouldFocusNavigationSelector\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnavigationSelectorRef?.current?.focus();\n\t\tsetShouldFocusNavigationSelector( false );\n\t}, [\n\t\tisDraftNavigationMenu,\n\t\tisEntityAvailable,\n\t\tshouldFocusNavigationSelector,\n\t] );\n\n\tconst resetToEmptyBlock = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOverlayMenuPreview( ! overlayMenuPreview );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t{ ! hasIcon && <span>{ __( 'Menu' ) }</span> }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ hasIcon }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ resetToEmptyBlock } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\tif ( isPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ ( classicMenu ) => {\n\t\t\t\t\t\tconvert( classicMenu.id, classicMenu.name );\n\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t} }\n\t\t\t\t\tonCreateEmpty={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tref={ navigationSelectorRef }\n\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tonSelectClassicMenu={ ( classicMenu ) => {\n\t\t\t\t\t\t\t\t\tconvert( classicMenu.id, classicMenu.name );\n\t\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tonCreateNew={ resetToEmptyBlock }\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\tresetToEmptyBlock();\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","__experimentalUseBlockOverlayActive","useBlockOverlayActive","EntityProvider","useDispatch","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToolbarGroup","Button","Spinner","__","sprintf","speak","createBlock","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","ref","setRef","postId","recursionId","hasAlreadyRendered","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","id","selectBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","length","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","navRef","isDraftNavigationMenu","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","handleUpdateMenu","menuId","current","subMenuElement","querySelector","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","focus","isResponsive","overlayMenuPreviewClasses","open","stylingInspectorControls","onChange","label","hasUnsavedBlocks","classicMenu","navMenu","post","PlaceholderComponent","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useRef, Platform } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenu,\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks ] =\n\t\tuseState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! navigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tnavigationMenus.sort( ( menuA, menuB ) => {\n\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t} );\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\n\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tif ( isPlaceholder && ! ref ) {\n\t\t/**\n\t\t * this fallback only displays (both in editor and on front)\n\t\t * the list of pages block if no menu is available as a fallback.\n\t\t * We don't want the fallback to request a save,\n\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t}\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = ( menuId ) => {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t};\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst navigationSelectorRef = useRef();\n\tconst [ shouldFocusNavigationSelector, setShouldFocusNavigationSelector ] =\n\t\tuseState( false );\n\n\t// Focus support after menu selection.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisDraftNavigationMenu ||\n\t\t\t! isEntityAvailable ||\n\t\t\t! shouldFocusNavigationSelector\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnavigationSelectorRef?.current?.focus();\n\t\tsetShouldFocusNavigationSelector( false );\n\t}, [\n\t\tisDraftNavigationMenu,\n\t\tisEntityAvailable,\n\t\tshouldFocusNavigationSelector,\n\t] );\n\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOverlayMenuPreview( ! overlayMenuPreview );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<OverlayMenuIcon />\n\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening and closing the overlay menu.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ hasIcon }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tref={ null }\n\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id );\n\t\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tref={ navigationSelectorRef }\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id );\n\t\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id );\n\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonCreateEmpty={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tref={ navigationSelectorRef }\n\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id );\n\t\t\t\t\t\t\t\t\t\tsetShouldFocusNavigationSelector(\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tonCreateNew={ () =>\n\t\t\t\t\t\t\t\t\tcreateNavigationMenu( '', [] )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
|
|
@@ -60,7 +60,7 @@ export default function ResponsiveWrapper(_ref) {
|
|
|
60
60
|
};
|
|
61
61
|
return createElement(Fragment, null, !isOpen && createElement(Button, {
|
|
62
62
|
"aria-haspopup": "true",
|
|
63
|
-
"aria-label": __('Open menu'),
|
|
63
|
+
"aria-label": hasIcon && __('Open menu'),
|
|
64
64
|
className: openButtonClasses,
|
|
65
65
|
onClick: () => onToggle(true)
|
|
66
66
|
}, hasIcon && createElement(OverlayMenuIcon, null), !hasIcon && createElement("span", {
|
|
@@ -74,11 +74,13 @@ export default function ResponsiveWrapper(_ref) {
|
|
|
74
74
|
tabIndex: "-1"
|
|
75
75
|
}, createElement("div", dialogProps, createElement(Button, {
|
|
76
76
|
className: "wp-block-navigation__responsive-container-close",
|
|
77
|
-
"aria-label": __('Close menu'),
|
|
77
|
+
"aria-label": hasIcon && __('Close menu'),
|
|
78
78
|
onClick: () => onToggle(false)
|
|
79
|
-
}, createElement(Icon, {
|
|
79
|
+
}, hasIcon && createElement(Icon, {
|
|
80
80
|
icon: close
|
|
81
|
-
})
|
|
81
|
+
}), !hasIcon && createElement("span", {
|
|
82
|
+
className: "wp-block-navigation__toggle_button_label"
|
|
83
|
+
}, __('Close'))), createElement("div", {
|
|
82
84
|
className: "wp-block-navigation__responsive-container-content",
|
|
83
85
|
id: `${modalId}-content`
|
|
84
86
|
}, children)))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/responsive-wrapper.js"],"names":["classnames","close","Icon","Button","__","getColorClassName","OverlayMenuIcon","ResponsiveWrapper","children","id","isOpen","isResponsive","onToggle","isHiddenByDefault","overlayBackgroundColor","overlayTextColor","hasIcon","responsiveContainerClasses","color","class","slug","styles","backgroundColor","openButtonClasses","modalId","dialogProps","className","role"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,KAAT,EAAgBC,IAAhB,QAA4B,kBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,iBAAT,QAAkC,yBAAlC;AAEA;AACA;AACA;;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AAEA,eAAe,SAASC,iBAAT,OAUX;AAAA,MAVuC;AAC1CC,IAAAA,QAD0C;AAE1CC,IAAAA,EAF0C;AAG1CC,IAAAA,MAH0C;AAI1CC,IAAAA,YAJ0C;AAK1CC,IAAAA,QAL0C;AAM1CC,IAAAA,iBAN0C;AAO1CC,IAAAA,sBAP0C;AAQ1CC,IAAAA,gBAR0C;AAS1CC,IAAAA;AAT0C,GAUvC;;AACH,MAAK,CAAEL,YAAP,EAAsB;AACrB,WAAOH,QAAP;AACA;;AAED,QAAMS,0BAA0B,GAAGjB,UAAU,CAC5C,2CAD4C,EAE5C;AACC,sBACC,CAAC,CAAEe,gBAAgB,CAACG,KAApB,IAA6B,CAAC,EAAEH,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEI,KAApB,CAFhC;AAGC,KAAEd,iBAAiB,CAAE,OAAF,EAAWU,gBAAX,aAAWA,gBAAX,uBAAWA,gBAAgB,CAAEK,IAA7B,CAAnB,GACC,CAAC,EAAEL,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEK,IAApB,CAJH;AAKC,sBACC,CAAC,CAAEN,sBAAsB,CAACI,KAA1B,KACAJ,sBADA,aACAA,sBADA,uBACAA,sBAAsB,CAAEK,KADxB,CANF;AAQC,KAAEd,iBAAiB,CAClB,kBADkB,EAElBS,sBAFkB,aAElBA,sBAFkB,uBAElBA,sBAAsB,CAAEM,IAFN,CAAnB,GAGK,CAAC,EAAEN,sBAAF,aAAEA,sBAAF,eAAEA,sBAAsB,CAAEM,IAA1B,CAXP;AAYC,oBAAgBV,MAZjB;AAaC,yBAAqBG;AAbtB,GAF4C,CAA7C;AAmBA,QAAMQ,MAAM,GAAG;AACdH,IAAAA,KAAK,EAAE,EAAEH,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEK,IAApB,MAA4BL,gBAA5B,aAA4BA,gBAA5B,uBAA4BA,gBAAgB,CAAEG,KAA9C,CADO;AAEdI,IAAAA,eAAe,EACd,EAAER,sBAAF,aAAEA,sBAAF,eAAEA,sBAAsB,CAAEM,IAA1B,MACAN,sBADA,aACAA,sBADA,uBACAA,sBAAsB,CAAEI,KADxB,KAEAJ,sBAAsB,CAACI;AALV,GAAf;AAQA,QAAMK,iBAAiB,GAAGvB,UAAU,CACnC,gDADmC,EAEnC;AAAE,oBAAgBa;AAAlB,GAFmC,CAApC;AAKA,QAAMW,OAAO,GAAI,GAAGf,EAAI,QAAxB;AAEA,QAAMgB,WAAW,GAAG;AACnBC,IAAAA,SAAS,EAAE,wCADQ;AAEnB,QAAKhB,MAAM,IAAI;AACdiB,MAAAA,IAAI,EAAE,QADQ;AAEd,oBAAc,IAFA;AAGd,oBAAcvB,EAAE,CAAE,MAAF;AAHF,KAAf;AAFmB,GAApB;AASA,SACC,8BACG,CAAEM,MAAF,IACD,cAAC,MAAD;AACC,qBAAc,MADf;AAEC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/responsive-wrapper.js"],"names":["classnames","close","Icon","Button","__","getColorClassName","OverlayMenuIcon","ResponsiveWrapper","children","id","isOpen","isResponsive","onToggle","isHiddenByDefault","overlayBackgroundColor","overlayTextColor","hasIcon","responsiveContainerClasses","color","class","slug","styles","backgroundColor","openButtonClasses","modalId","dialogProps","className","role"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { close, Icon } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\nexport default function ResponsiveWrapper( {\n\tchildren,\n\tid,\n\tisOpen,\n\tisResponsive,\n\tonToggle,\n\tisHiddenByDefault,\n\toverlayBackgroundColor,\n\toverlayTextColor,\n\thasIcon,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\n\tconst responsiveContainerClasses = classnames(\n\t\t'wp-block-navigation__responsive-container',\n\t\t{\n\t\t\t'has-text-color':\n\t\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t\t[ getColorClassName( 'color', overlayTextColor?.slug ) ]:\n\t\t\t\t!! overlayTextColor?.slug,\n\t\t\t'has-background':\n\t\t\t\t!! overlayBackgroundColor.color ||\n\t\t\t\toverlayBackgroundColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\toverlayBackgroundColor?.slug\n\t\t\t) ]: !! overlayBackgroundColor?.slug,\n\t\t\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\n\tconst styles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\tconst openButtonClasses = classnames(\n\t\t'wp-block-navigation__responsive-container-open',\n\t\t{ 'always-shown': isHiddenByDefault }\n\t);\n\n\tconst modalId = `${ id }-modal`;\n\n\tconst dialogProps = {\n\t\tclassName: 'wp-block-navigation__responsive-dialog',\n\t\t...( isOpen && {\n\t\t\trole: 'dialog',\n\t\t\t'aria-modal': true,\n\t\t\t'aria-label': __( 'Menu' ),\n\t\t} ),\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-label={ hasIcon && __( 'Open menu' ) }\n\t\t\t\t\tclassName={ openButtonClasses }\n\t\t\t\t\tonClick={ () => onToggle( true ) }\n\t\t\t\t>\n\t\t\t\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation__toggle_button_label\">\n\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<div\n\t\t\t\tclassName={ responsiveContainerClasses }\n\t\t\t\tstyle={ styles }\n\t\t\t\tid={ modalId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-navigation__responsive-close\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<div { ...dialogProps }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-close\"\n\t\t\t\t\t\t\taria-label={ hasIcon && __( 'Close menu' ) }\n\t\t\t\t\t\t\tonClick={ () => onToggle( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <Icon icon={ close } /> }\n\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation__toggle_button_label\">\n\t\t\t\t\t\t\t\t\t{ __( 'Close' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-content\"\n\t\t\t\t\t\t\tid={ `${ modalId }-content` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|