@wordpress/block-library 7.5.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +3 -2
- package/babel-plugin.js +154 -0
- package/build/audio/edit.js +1 -1
- package/build/audio/edit.js.map +1 -1
- package/build/block/edit.js +10 -9
- package/build/block/edit.js.map +1 -1
- package/build/button/index.js +1 -0
- package/build/button/index.js.map +1 -1
- package/build/categories/edit.js +1 -1
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +1 -1
- package/build/comment-author-avatar/index.js +1 -0
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comments-title/deprecated.js +110 -0
- package/build/comments-title/deprecated.js.map +1 -0
- package/build/comments-title/edit.js +35 -37
- package/build/comments-title/edit.js.map +1 -1
- package/build/comments-title/index.js +5 -8
- package/build/comments-title/index.js.map +1 -1
- package/build/cover/controls.native.js +2 -3
- package/build/cover/controls.native.js.map +1 -1
- package/build/cover/edit/block-controls.js +115 -0
- package/build/cover/edit/block-controls.js.map +1 -0
- package/build/cover/edit/cover-placeholder.js +49 -0
- package/build/cover/edit/cover-placeholder.js.map +1 -0
- package/build/cover/edit/index.js +333 -0
- package/build/cover/edit/index.js.map +1 -0
- package/build/cover/edit/inspector-controls.js +224 -0
- package/build/cover/edit/inspector-controls.js.map +1 -0
- package/build/cover/edit/resizable-cover.js +67 -0
- package/build/cover/edit/resizable-cover.js.map +1 -0
- package/build/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/build/cover/edit/use-cover-is-dark.js.map +1 -0
- package/build/cover/edit.native.js +0 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/focal-point-settings-button.native.js.map +1 -1
- package/build/cover/shared.js +9 -0
- package/build/cover/shared.js.map +1 -1
- package/build/embed/embed-preview.js +1 -1
- package/build/embed/embed-preview.js.map +1 -1
- package/build/file/edit.native.js +0 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/gallery/edit.js +2 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +1 -1
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/shared.js +2 -2
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/use-get-media.js +2 -1
- package/build/gallery/use-get-media.js.map +1 -1
- package/build/gallery/use-short-code-transform.js +19 -18
- package/build/gallery/use-short-code-transform.js.map +1 -1
- package/build/gallery/v1/gallery.js +1 -1
- package/build/gallery/v1/gallery.js.map +1 -1
- package/build/heading/edit.js +6 -2
- package/build/heading/edit.js.map +1 -1
- package/build/heading/index.js +1 -0
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +1 -0
- package/build/heading/transforms.js.map +1 -1
- package/build/image/edit.js +5 -2
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +0 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +1 -1
- package/build/image/image.js.map +1 -1
- package/build/index.js +46 -10
- package/build/index.js.map +1 -1
- package/build/is-block-metadata-experimental.js +18 -0
- package/build/is-block-metadata-experimental.js.map +1 -0
- package/build/latest-posts/edit.js +30 -4
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/transforms.js +6 -0
- package/build/list/transforms.js.map +1 -1
- package/build/list/v2/edit.js +2 -1
- package/build/list/v2/edit.js.map +1 -1
- package/build/list/v2/migrate.js +1 -0
- package/build/list/v2/migrate.js.map +1 -1
- package/build/list/v2/transforms.js +46 -9
- package/build/list/v2/transforms.js.map +1 -1
- package/build/list-item/edit.js +7 -9
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/index.js +24 -0
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/hooks/use-backspace.js +59 -0
- package/build/list-item/hooks/use-backspace.js.map +1 -0
- package/build/list-item/hooks/use-enter.js +6 -9
- package/build/list-item/hooks/use-enter.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +33 -39
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +54 -0
- package/build/list-item/hooks/use-space.js.map +1 -0
- package/build/list-item/hooks/use-split.js +30 -0
- package/build/list-item/hooks/use-split.js.map +1 -0
- package/build/list-item/index.js +1 -0
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/utils.js +1 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/edit.native.js +2 -1
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/media-container.native.js +2 -4
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/transforms.js +137 -8
- package/build/media-text/transforms.js.map +1 -1
- package/build/navigation/edit/index.js +86 -81
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +1 -5
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/use-navigation-entities.js +3 -3
- package/build/navigation/use-navigation-entities.js.map +1 -1
- package/build/navigation-link/fallback-variations.js +1 -1
- package/build/navigation-link/fallback-variations.js.map +1 -1
- package/build/navigation-link/hooks.js +1 -1
- package/build/navigation-link/hooks.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +1 -1
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +1 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/post-author/edit.js +1 -1
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author-name/index.js +1 -0
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-comment/index.js +1 -0
- package/build/post-comment/index.js.map +1 -1
- package/build/post-comments/edit.js +34 -16
- package/build/post-comments/edit.js.map +1 -1
- package/build/post-comments-count/index.js +1 -0
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-form/form.js +1 -1
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-comments-link/index.js +1 -0
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-template/edit.js +7 -2
- package/build/post-template/edit.js.map +1 -1
- package/build/post-terms/edit.js +11 -2
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/hooks.js +33 -0
- package/build/post-terms/hooks.js.map +1 -0
- package/build/post-terms/index.js +12 -5
- package/build/post-terms/index.js.map +1 -1
- package/build/post-title/index.js +1 -1
- package/build/post-title/index.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 +1 -1
- package/build/pullquote/edit.native.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +26 -17
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +148 -0
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -0
- package/build/query/edit/inspector-controls/sticky-control.js +41 -0
- package/build/query/edit/inspector-controls/sticky-control.js.map +1 -0
- package/build/query/index.js +2 -1
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +28 -2
- package/build/query/utils.js.map +1 -1
- package/build/query-title/index.js +1 -1
- package/build/query-title/index.js.map +1 -1
- package/build/query-title/variations.js +1 -1
- package/build/query-title/variations.js.map +1 -1
- package/build/quote/edit.js +3 -2
- package/build/quote/edit.js.map +1 -1
- package/build/quote/v2/edit.js +1 -1
- package/build/quote/v2/edit.js.map +1 -1
- package/build/search/edit.js +1 -0
- package/build/search/edit.js.map +1 -1
- package/build/site-logo/edit.js +1 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/table/edit.js +15 -2
- package/build/table/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +138 -66
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/table-of-contents/index.js +13 -3
- package/build/table-of-contents/index.js.map +1 -1
- package/build/table-of-contents/list.js +16 -9
- package/build/table-of-contents/list.js.map +1 -1
- package/build/table-of-contents/save.js +40 -0
- package/build/table-of-contents/save.js.map +1 -0
- package/build/table-of-contents/utils.js +11 -77
- package/build/table-of-contents/utils.js.map +1 -1
- package/build/template-part/edit/index.js +7 -3
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +3 -8
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/video/edit.js +1 -1
- package/build/video/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -2
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/block/edit.js +11 -10
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/index.js +1 -0
- package/build-module/button/index.js.map +1 -1
- package/build-module/categories/edit.js +1 -1
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +1 -1
- package/build-module/comment-author-avatar/index.js +1 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comments-title/deprecated.js +102 -0
- package/build-module/comments-title/deprecated.js.map +1 -0
- package/build-module/comments-title/edit.js +38 -40
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/comments-title/index.js +4 -8
- package/build-module/comments-title/index.js.map +1 -1
- package/build-module/cover/controls.native.js +2 -3
- package/build-module/cover/controls.native.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +104 -0
- package/build-module/cover/edit/block-controls.js.map +1 -0
- package/build-module/cover/edit/cover-placeholder.js +38 -0
- package/build-module/cover/edit/cover-placeholder.js.map +1 -0
- package/build-module/cover/edit/index.js +307 -0
- package/build-module/cover/edit/index.js.map +1 -0
- package/build-module/cover/edit/inspector-controls.js +215 -0
- package/build-module/cover/edit/inspector-controls.js.map +1 -0
- package/build-module/cover/edit/resizable-cover.js +55 -0
- package/build-module/cover/edit/resizable-cover.js.map +1 -0
- package/build-module/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/build-module/cover/edit/use-cover-is-dark.js.map +1 -0
- package/build-module/cover/edit.native.js +0 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/focal-point-settings-button.native.js.map +1 -1
- package/build-module/cover/shared.js +7 -0
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/embed/embed-preview.js +2 -2
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/file/edit.native.js +0 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/gallery/edit.js +2 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +2 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/shared.js +2 -2
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/use-get-media.js +2 -1
- package/build-module/gallery/use-get-media.js.map +1 -1
- package/build-module/gallery/use-short-code-transform.js +19 -18
- package/build-module/gallery/use-short-code-transform.js.map +1 -1
- package/build-module/gallery/v1/gallery.js +2 -2
- package/build-module/gallery/v1/gallery.js.map +1 -1
- package/build-module/heading/edit.js +6 -2
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/heading/index.js +1 -0
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +1 -0
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/edit.js +6 -3
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +0 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +2 -2
- package/build-module/image/image.js.map +1 -1
- package/build-module/index.js +42 -10
- package/build-module/index.js.map +1 -1
- package/build-module/is-block-metadata-experimental.js +16 -0
- package/build-module/is-block-metadata-experimental.js.map +1 -0
- package/build-module/latest-posts/edit.js +29 -5
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/transforms.js +6 -0
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/v2/edit.js +2 -1
- package/build-module/list/v2/edit.js.map +1 -1
- package/build-module/list/v2/migrate.js +1 -3
- package/build-module/list/v2/migrate.js.map +1 -1
- package/build-module/list/v2/transforms.js +46 -9
- package/build-module/list/v2/transforms.js.map +1 -1
- package/build-module/list-item/edit.js +8 -9
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/index.js +3 -0
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/hooks/use-backspace.js +44 -0
- package/build-module/list-item/hooks/use-backspace.js.map +1 -0
- package/build-module/list-item/hooks/use-enter.js +6 -9
- package/build-module/list-item/hooks/use-enter.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +33 -38
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +40 -0
- package/build-module/list-item/hooks/use-space.js.map +1 -0
- package/build-module/list-item/hooks/use-split.js +19 -0
- package/build-module/list-item/hooks/use-split.js.map +1 -0
- package/build-module/list-item/index.js +1 -0
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/utils.js +1 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/edit.native.js +2 -1
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/media-container.native.js +2 -4
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/media-text/transforms.js +137 -8
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/navigation/edit/index.js +87 -82
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -6
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/use-navigation-entities.js +1 -1
- package/build-module/navigation/use-navigation-entities.js.map +1 -1
- package/build-module/navigation-link/fallback-variations.js +1 -1
- package/build-module/navigation-link/fallback-variations.js.map +1 -1
- package/build-module/navigation-link/hooks.js +2 -2
- package/build-module/navigation-link/hooks.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +1 -1
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +1 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/post-author/edit.js +1 -1
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author-name/index.js +1 -0
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-comment/index.js +1 -0
- package/build-module/post-comment/index.js.map +1 -1
- package/build-module/post-comments/edit.js +35 -16
- package/build-module/post-comments/edit.js.map +1 -1
- package/build-module/post-comments-count/index.js +1 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-form/form.js +1 -1
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-comments-link/index.js +1 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-template/edit.js +7 -2
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +10 -3
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/hooks.js +25 -0
- package/build-module/post-terms/hooks.js.map +1 -0
- package/build-module/post-terms/index.js +10 -8
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-title/index.js +1 -1
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/pullquote/edit.js +2 -2
- package/build-module/pullquote/edit.js.map +1 -1
- package/build-module/pullquote/edit.native.js +2 -2
- package/build-module/pullquote/edit.native.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +24 -17
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +135 -0
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js +31 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -0
- package/build-module/query/index.js +2 -1
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +21 -0
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/index.js +1 -1
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/query-title/variations.js +2 -2
- package/build-module/query-title/variations.js.map +1 -1
- package/build-module/quote/edit.js +4 -3
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/v2/edit.js +2 -2
- package/build-module/quote/v2/edit.js.map +1 -1
- package/build-module/search/edit.js +1 -0
- package/build-module/search/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +1 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/table/edit.js +17 -4
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +136 -68
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/table-of-contents/index.js +12 -3
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/table-of-contents/list.js +18 -10
- package/build-module/table-of-contents/list.js.map +1 -1
- package/build-module/table-of-contents/save.js +28 -0
- package/build-module/table-of-contents/save.js.map +1 -0
- package/build-module/table-of-contents/utils.js +11 -73
- package/build-module/table-of-contents/utils.js.map +1 -1
- package/build-module/template-part/edit/index.js +8 -4
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +4 -9
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/video/edit.js +2 -2
- package/build-module/video/edit.js.map +1 -1
- package/build-style/editor-rtl.css +4 -6
- package/build-style/editor.css +4 -6
- package/build-style/image/editor-rtl.css +1 -1
- package/build-style/image/editor.css +1 -1
- package/build-style/post-comments/style-rtl.css +22 -0
- package/build-style/post-comments/style.css +22 -0
- package/build-style/post-comments-form/style-rtl.css +1 -3
- package/build-style/post-comments-form/style.css +1 -3
- package/build-style/separator/editor-rtl.css +1 -0
- package/build-style/separator/editor.css +1 -0
- package/build-style/style-rtl.css +23 -3
- package/build-style/style.css +23 -3
- package/build-style/video/editor-rtl.css +2 -5
- package/build-style/video/editor.css +2 -5
- package/build-types/table-of-contents/list.d.ts +12 -0
- package/build-types/table-of-contents/list.d.ts.map +1 -0
- package/build-types/table-of-contents/utils.d.ts +24 -0
- package/build-types/table-of-contents/utils.d.ts.map +1 -0
- package/package.json +30 -29
- package/src/audio/edit.js +4 -2
- package/src/avatar/block.json +0 -1
- package/src/avatar/index.php +2 -2
- package/src/block/edit.js +39 -42
- package/src/block/test/edit.native.js +1 -1
- package/src/button/block.json +1 -0
- package/src/categories/block.json +1 -1
- package/src/categories/edit.js +1 -1
- package/src/comment-author-avatar/block.json +1 -0
- package/src/comments-title/block.json +0 -6
- package/src/comments-title/deprecated.js +34 -0
- package/src/comments-title/edit.js +44 -100
- package/src/comments-title/index.js +3 -1
- package/src/comments-title/index.php +41 -23
- package/src/cover/controls.native.js +1 -2
- package/src/cover/edit/block-controls.js +119 -0
- package/src/cover/edit/cover-placeholder.js +39 -0
- package/src/cover/edit/index.js +381 -0
- package/src/cover/edit/inspector-controls.js +286 -0
- package/src/cover/edit/resizable-cover.js +55 -0
- package/src/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/src/cover/edit.native.js +0 -1
- package/src/cover/editor.scss +1 -1
- package/src/cover/focal-point-settings-button.native.js +1 -1
- package/src/cover/index.php +20 -37
- package/src/cover/shared.js +4 -0
- package/src/cover/test/block-controls.js +62 -0
- package/src/embed/embed-preview.js +4 -2
- package/src/file/edit.native.js +0 -1
- package/src/gallery/edit.js +2 -1
- package/src/gallery/gallery.js +2 -2
- package/src/gallery/shared.js +3 -2
- package/src/gallery/use-get-media.js +2 -1
- package/src/gallery/use-short-code-transform.js +19 -16
- package/src/gallery/v1/gallery.js +2 -2
- package/src/heading/block.json +1 -0
- package/src/heading/edit.js +5 -2
- package/src/image/edit.js +9 -1
- package/src/image/edit.native.js +0 -1
- package/src/image/editor.scss +1 -1
- package/src/image/image.js +8 -2
- package/src/image/test/edit.native.js +7 -7
- package/src/index.js +50 -27
- package/src/is-block-metadata-experimental.js +19 -0
- package/src/latest-posts/edit.js +27 -2
- package/src/latest-posts/index.php +12 -6
- package/src/list/transforms.js +7 -0
- package/src/list/v2/edit.js +1 -0
- package/src/list/v2/migrate.js +1 -1
- package/src/list/v2/transforms.js +35 -0
- package/src/list-item/block.json +2 -1
- package/src/list-item/edit.js +17 -10
- package/src/list-item/hooks/index.js +3 -0
- package/src/list-item/hooks/use-backspace.js +52 -0
- package/src/list-item/hooks/use-enter.js +9 -16
- package/src/list-item/hooks/use-indent-list-item.js +50 -63
- package/src/list-item/hooks/use-space.js +48 -0
- package/src/list-item/hooks/use-split.js +24 -0
- package/src/list-item/utils.js +1 -1
- package/src/media-text/edit.native.js +3 -1
- package/src/media-text/media-container.native.js +2 -4
- package/src/media-text/transforms.js +154 -0
- package/src/navigation/edit/index.js +175 -169
- package/src/navigation/edit/inner-blocks.js +1 -8
- package/src/navigation/index.php +40 -0
- package/src/navigation/use-navigation-entities.js +1 -1
- package/src/navigation-link/fallback-variations.js +1 -1
- package/src/navigation-link/hooks.js +2 -2
- package/src/navigation-link/test/__snapshots__/hooks.js.snap +4 -4
- package/src/page-list/convert-to-links-modal.js +1 -1
- package/src/page-list/edit.js +1 -4
- package/src/post-author/edit.js +24 -22
- package/src/post-author-name/block.json +1 -0
- package/src/post-comment/block.json +1 -0
- package/src/post-comments/edit.js +54 -22
- package/src/post-comments/style.scss +26 -0
- package/src/post-comments-count/block.json +1 -0
- package/src/post-comments-form/form.js +1 -4
- package/src/post-comments-form/style.scss +1 -4
- package/src/post-comments-link/block.json +1 -0
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-template/edit.js +5 -0
- package/src/post-template/index.php +30 -0
- package/src/post-terms/edit.js +19 -0
- package/src/post-terms/hooks.js +27 -0
- package/src/post-terms/index.js +14 -7
- package/src/post-terms/index.php +40 -2
- package/src/post-title/index.js +1 -1
- package/src/pullquote/edit.js +2 -2
- package/src/pullquote/edit.native.js +2 -2
- package/src/query/block.json +2 -1
- package/src/query/edit/inspector-controls/index.js +25 -11
- package/src/query/edit/inspector-controls/parent-control.js +133 -0
- package/src/query/edit/inspector-controls/sticky-control.js +25 -0
- package/src/query/utils.js +22 -0
- package/src/query-title/index.js +1 -1
- package/src/query-title/variations.js +2 -2
- package/src/quote/edit.js +5 -2
- package/src/quote/v2/edit.js +4 -2
- package/src/search/edit.js +1 -0
- package/src/search/index.php +1 -1
- package/src/separator/editor.scss +1 -0
- package/src/site-logo/edit.js +1 -1
- package/src/table/edit.js +19 -4
- package/src/table-of-contents/block.json +9 -2
- package/src/table-of-contents/edit.js +155 -75
- package/src/table-of-contents/index.js +2 -0
- package/src/table-of-contents/list.tsx +46 -0
- package/src/table-of-contents/save.js +25 -0
- package/src/table-of-contents/utils.ts +71 -0
- package/src/tag-cloud/block.json +1 -1
- package/src/template-part/edit/index.js +25 -15
- package/src/template-part/edit/inner-blocks.js +2 -10
- package/src/video/edit.js +4 -2
- package/src/video/editor.scss +3 -6
- package/test/babel-plugin.js +67 -0
- package/tsconfig.json +11 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/build/cover/edit.js +0 -598
- package/build/cover/edit.js.map +0 -1
- package/build/cover/use-cover-is-dark.js.map +0 -1
- package/build/post-terms/variations.js +0 -37
- package/build/post-terms/variations.js.map +0 -1
- package/build-module/cover/edit.js +0 -575
- package/build-module/cover/edit.js.map +0 -1
- package/build-module/cover/use-cover-is-dark.js.map +0 -1
- package/build-module/post-terms/variations.js +0 -27
- package/build-module/post-terms/variations.js.map +0 -1
- package/src/cover/edit.js +0 -757
- package/src/post-terms/variations.js +0 -28
- package/src/table-of-contents/index.php +0 -346
- package/src/table-of-contents/list.js +0 -28
- package/src/table-of-contents/utils.js +0 -126
|
@@ -9,7 +9,7 @@ import classnames from 'classnames';
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { useState, useEffect, useRef, useCallback, Platform } from '@wordpress/element';
|
|
12
|
-
import { InspectorControls, BlockControls, useBlockProps, __experimentalUseNoRecursiveRenders as useNoRecursiveRenders, store as blockEditorStore, withColors, PanelColorSettings, ContrastChecker, getColorClassName, Warning } from '@wordpress/block-editor';
|
|
12
|
+
import { InspectorControls, BlockControls, useBlockProps, __experimentalUseNoRecursiveRenders as useNoRecursiveRenders, store as blockEditorStore, withColors, PanelColorSettings, ContrastChecker, getColorClassName, Warning, __experimentalUseBlockOverlayActive as useBlockOverlayActive } from '@wordpress/block-editor';
|
|
13
13
|
import { EntityProvider } from '@wordpress/core-data';
|
|
14
14
|
import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
|
|
15
15
|
import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, ToolbarGroup, Button, Spinner } from '@wordpress/components';
|
|
@@ -219,6 +219,7 @@ function Navigation(_ref) {
|
|
|
219
219
|
|
|
220
220
|
const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu);
|
|
221
221
|
const textDecoration = (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : (_attributes$style$typ = _attributes$style.typography) === null || _attributes$style$typ === void 0 ? void 0 : _attributes$style$typ.textDecoration;
|
|
222
|
+
const hasBlockOverlay = useBlockOverlayActive(clientId);
|
|
222
223
|
const blockProps = useBlockProps({
|
|
223
224
|
ref: navRef,
|
|
224
225
|
className: classnames(className, {
|
|
@@ -233,12 +234,15 @@ function Navigation(_ref) {
|
|
|
233
234
|
[getColorClassName('color', textColor === null || textColor === void 0 ? void 0 : textColor.slug)]: !!(textColor !== null && textColor !== void 0 && textColor.slug),
|
|
234
235
|
'has-background': !!backgroundColor.color || backgroundColor.class,
|
|
235
236
|
[getColorClassName('background-color', backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.slug)]: !!(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug),
|
|
236
|
-
[`has-text-decoration-${textDecoration}`]: textDecoration
|
|
237
|
+
[`has-text-decoration-${textDecoration}`]: textDecoration,
|
|
238
|
+
'block-editor-block-content-overlay': hasBlockOverlay
|
|
237
239
|
}),
|
|
238
240
|
style: {
|
|
239
241
|
color: !(textColor !== null && textColor !== void 0 && textColor.slug) && (textColor === null || textColor === void 0 ? void 0 : textColor.color),
|
|
240
242
|
backgroundColor: !(backgroundColor !== null && backgroundColor !== void 0 && backgroundColor.slug) && (backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.color)
|
|
241
243
|
}
|
|
244
|
+
}, {
|
|
245
|
+
__unstableIsDisabled: hasBlockOverlay
|
|
242
246
|
});
|
|
243
247
|
const overlayClassnames = classnames({
|
|
244
248
|
'has-text-color': !!overlayTextColor.color || !!(overlayTextColor !== null && overlayTextColor !== void 0 && overlayTextColor.class),
|
|
@@ -368,89 +372,12 @@ function Navigation(_ref) {
|
|
|
368
372
|
replaceInnerBlocks(clientId, []);
|
|
369
373
|
}
|
|
370
374
|
});
|
|
371
|
-
}, [clientId, ref]);
|
|
372
|
-
// - inserted via a pattern.
|
|
373
|
-
// - inserted directly via Code View (or otherwise).
|
|
374
|
-
// - from an older version of navigation block added before the block used a wp_navigation entity.
|
|
375
|
-
// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
|
|
376
|
-
// that automatically saves the menu as an entity when changes are made to the inner blocks.
|
|
377
|
-
|
|
378
|
-
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
|
|
379
|
-
|
|
380
|
-
if (hasUnsavedBlocks) {
|
|
381
|
-
return createElement(TagName, blockProps, createElement(ResponsiveWrapper, {
|
|
382
|
-
id: clientId,
|
|
383
|
-
onToggle: setResponsiveMenuVisibility,
|
|
384
|
-
isOpen: isResponsiveMenuOpen,
|
|
385
|
-
isResponsive: 'never' !== overlayMenu,
|
|
386
|
-
isHiddenByDefault: 'always' === overlayMenu,
|
|
387
|
-
classNames: overlayClassnames,
|
|
388
|
-
styles: overlayStyles
|
|
389
|
-
}, createElement(UnsavedInnerBlocks, {
|
|
390
|
-
blockProps: blockProps,
|
|
391
|
-
blocks: uncontrolledInnerBlocks,
|
|
392
|
-
clientId: clientId,
|
|
393
|
-
navigationMenus: navigationMenus,
|
|
394
|
-
hasSelection: isSelected || isInnerBlockSelected,
|
|
395
|
-
hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks,
|
|
396
|
-
onSave: post => {
|
|
397
|
-
// Set some state used as a guard to prevent the creation of multiple posts.
|
|
398
|
-
setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity.
|
|
399
|
-
|
|
400
|
-
setRef(post.id);
|
|
401
|
-
showNavigationMenuCreateNotice(__(`New Navigation Menu created.`));
|
|
402
|
-
}
|
|
403
|
-
})));
|
|
404
|
-
} // Show a warning if the selected menu is no longer available.
|
|
405
|
-
// TODO - the user should be able to select a new one?
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
if (ref && isNavigationMenuMissing) {
|
|
409
|
-
return createElement("div", blockProps, createElement(Warning, null, __('Navigation menu has been deleted or is unavailable. '), createElement(Button, {
|
|
410
|
-
onClick: resetToEmptyBlock,
|
|
411
|
-
variant: "link"
|
|
412
|
-
}, __('Create a new menu?'))));
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
if (isEntityAvailable && hasAlreadyRendered) {
|
|
416
|
-
return createElement("div", blockProps, createElement(Warning, null, __('Block cannot be rendered inside itself.')));
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : Placeholder;
|
|
375
|
+
}, [clientId, ref]);
|
|
420
376
|
const isResponsive = 'never' !== overlayMenu;
|
|
421
377
|
const overlayMenuPreviewClasses = classnames('wp-block-navigation__overlay-menu-preview', {
|
|
422
378
|
open: overlayMenuPreview
|
|
423
379
|
});
|
|
424
|
-
|
|
425
|
-
if (isPlaceholder) {
|
|
426
|
-
return createElement(TagName, blockProps, createElement(PlaceholderComponent, {
|
|
427
|
-
isSelected: isSelected,
|
|
428
|
-
currentMenuId: ref,
|
|
429
|
-
clientId: clientId,
|
|
430
|
-
canUserCreateNavigationMenu: canUserCreateNavigationMenu,
|
|
431
|
-
isResolvingCanUserCreateNavigationMenu: isResolvingCanUserCreateNavigationMenu,
|
|
432
|
-
onFinish: handleSelectNavigation,
|
|
433
|
-
onCreateEmpty: () => createNavigationMenu('', [])
|
|
434
|
-
}));
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
return createElement(EntityProvider, {
|
|
438
|
-
kind: "postType",
|
|
439
|
-
type: "wp_navigation",
|
|
440
|
-
id: ref
|
|
441
|
-
}, createElement(RecursionProvider, null, createElement(BlockControls, null, !isDraftNavigationMenu && isEntityAvailable && createElement(ToolbarGroup, {
|
|
442
|
-
className: "wp-block-navigation__toolbar-menu-selector"
|
|
443
|
-
}, createElement(NavigationMenuSelector, {
|
|
444
|
-
ref: navigationSelectorRef,
|
|
445
|
-
currentMenuId: ref,
|
|
446
|
-
clientId: clientId,
|
|
447
|
-
onSelect: handleSelectNavigation,
|
|
448
|
-
onCreateNew: resetToEmptyBlock
|
|
449
|
-
/* translators: %s: The name of a menu. */
|
|
450
|
-
,
|
|
451
|
-
actionLabel: __("Switch to '%s'"),
|
|
452
|
-
showManageActions: true
|
|
453
|
-
}))), createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
|
|
380
|
+
const stylingInspectorControls = createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
|
|
454
381
|
title: __('Display')
|
|
455
382
|
}, isResponsive && createElement(Button, {
|
|
456
383
|
className: overlayMenuPreviewClasses,
|
|
@@ -531,7 +458,85 @@ function Navigation(_ref) {
|
|
|
531
458
|
}), createElement(ContrastChecker, {
|
|
532
459
|
backgroundColor: detectedOverlayBackgroundColor,
|
|
533
460
|
textColor: detectedOverlayColor
|
|
534
|
-
})))),
|
|
461
|
+
})))); // If the block has inner blocks, but no menu id, then these blocks are either:
|
|
462
|
+
// - inserted via a pattern.
|
|
463
|
+
// - inserted directly via Code View (or otherwise).
|
|
464
|
+
// - from an older version of navigation block added before the block used a wp_navigation entity.
|
|
465
|
+
// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
|
|
466
|
+
// that automatically saves the menu as an entity when changes are made to the inner blocks.
|
|
467
|
+
|
|
468
|
+
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
|
|
469
|
+
|
|
470
|
+
if (hasUnsavedBlocks) {
|
|
471
|
+
return createElement(TagName, blockProps, stylingInspectorControls, createElement(ResponsiveWrapper, {
|
|
472
|
+
id: clientId,
|
|
473
|
+
onToggle: setResponsiveMenuVisibility,
|
|
474
|
+
isOpen: isResponsiveMenuOpen,
|
|
475
|
+
isResponsive: 'never' !== overlayMenu,
|
|
476
|
+
isHiddenByDefault: 'always' === overlayMenu,
|
|
477
|
+
classNames: overlayClassnames,
|
|
478
|
+
styles: overlayStyles
|
|
479
|
+
}, createElement(UnsavedInnerBlocks, {
|
|
480
|
+
blockProps: blockProps,
|
|
481
|
+
blocks: uncontrolledInnerBlocks,
|
|
482
|
+
clientId: clientId,
|
|
483
|
+
navigationMenus: navigationMenus,
|
|
484
|
+
hasSelection: isSelected || isInnerBlockSelected,
|
|
485
|
+
hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks,
|
|
486
|
+
onSave: post => {
|
|
487
|
+
// Set some state used as a guard to prevent the creation of multiple posts.
|
|
488
|
+
setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity.
|
|
489
|
+
|
|
490
|
+
setRef(post.id);
|
|
491
|
+
showNavigationMenuCreateNotice(__(`New Navigation Menu created.`));
|
|
492
|
+
}
|
|
493
|
+
})));
|
|
494
|
+
} // Show a warning if the selected menu is no longer available.
|
|
495
|
+
// TODO - the user should be able to select a new one?
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
if (ref && isNavigationMenuMissing) {
|
|
499
|
+
return createElement("div", blockProps, createElement(Warning, null, __('Navigation menu has been deleted or is unavailable. '), createElement(Button, {
|
|
500
|
+
onClick: resetToEmptyBlock,
|
|
501
|
+
variant: "link"
|
|
502
|
+
}, __('Create a new menu?'))));
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
if (isEntityAvailable && hasAlreadyRendered) {
|
|
506
|
+
return createElement("div", blockProps, createElement(Warning, null, __('Block cannot be rendered inside itself.')));
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : Placeholder;
|
|
510
|
+
|
|
511
|
+
if (isPlaceholder) {
|
|
512
|
+
return createElement(TagName, blockProps, createElement(PlaceholderComponent, {
|
|
513
|
+
isSelected: isSelected,
|
|
514
|
+
currentMenuId: ref,
|
|
515
|
+
clientId: clientId,
|
|
516
|
+
canUserCreateNavigationMenu: canUserCreateNavigationMenu,
|
|
517
|
+
isResolvingCanUserCreateNavigationMenu: isResolvingCanUserCreateNavigationMenu,
|
|
518
|
+
onFinish: handleSelectNavigation,
|
|
519
|
+
onCreateEmpty: () => createNavigationMenu('', [])
|
|
520
|
+
}));
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
return createElement(EntityProvider, {
|
|
524
|
+
kind: "postType",
|
|
525
|
+
type: "wp_navigation",
|
|
526
|
+
id: ref
|
|
527
|
+
}, createElement(RecursionProvider, null, createElement(BlockControls, null, !isDraftNavigationMenu && isEntityAvailable && createElement(ToolbarGroup, {
|
|
528
|
+
className: "wp-block-navigation__toolbar-menu-selector"
|
|
529
|
+
}, createElement(NavigationMenuSelector, {
|
|
530
|
+
ref: navigationSelectorRef,
|
|
531
|
+
currentMenuId: ref,
|
|
532
|
+
clientId: clientId,
|
|
533
|
+
onSelect: handleSelectNavigation,
|
|
534
|
+
onCreateNew: resetToEmptyBlock
|
|
535
|
+
/* translators: %s: The name of a menu. */
|
|
536
|
+
,
|
|
537
|
+
actionLabel: __("Switch to '%s'"),
|
|
538
|
+
showManageActions: true
|
|
539
|
+
}))), stylingInspectorControls, isEntityAvailable && createElement(InspectorControls, {
|
|
535
540
|
__experimentalGroup: "advanced"
|
|
536
541
|
}, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && createElement(NavigationMenuNameControl, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && createElement(NavigationMenuDeleteControl, {
|
|
537
542
|
onDelete: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalUseNoRecursiveRenders","useNoRecursiveRenders","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","EntityProvider","useDispatch","useSelect","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","CREATE_NAVIGATION_MENU_ERROR","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_SUCCESS","EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","showNavigationMenuDeleteNotice","name","showNavigationMenuCreateNotice","hideNavigationMenuCreateNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isCreatingNavigationMenu","id","selectBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","blockProps","class","slug","overlayClassnames","overlayStyles","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","showClassicMenuConversionErrorNotice","hideClassicMenuConversionErrorNotice","handleUpdateMenu","menuId","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","handleSelectNavigation","navPostOrClassicMenu","isClassicMenu","hasOwnProperty","focus","resetToEmptyBlock","batch","undefined","hasUnsavedBlocks","post","PlaceholderComponent","isResponsive","overlayMenuPreviewClasses","open","onChange","label","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__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, 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, {\n\tCREATE_NAVIGATION_MENU_ERROR,\n\tCREATE_NAVIGATION_MENU_PENDING,\n\tCREATE_NAVIGATION_MENU_SUCCESS,\n} from './use-create-navigation-menu';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\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 [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\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 [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/delete',\n\t} );\n\n\tconst [\n\t\tshowNavigationMenuCreateNotice,\n\t\thideNavigationMenuCreateNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/create',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst isCreatingNavigationMenu =\n\t\tcreateNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;\n\n\tuseEffect( () => {\n\t\thideNavigationMenuCreateNotice();\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {\n\t\t\tshowNavigationMenuCreateNotice(\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\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks = !! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\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\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 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(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\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\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\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\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 [\n\t\tshowClassicMenuConversionErrorNotice,\n\t\thideClassicMenuConversionErrorNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/classic-menu-conversion/error',\n\t} );\n\n\tfunction handleUpdateMenu( menuId ) {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t}\n\n\tuseEffect( () => {\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\thideClassicMenuConversionErrorNotice();\n\t\t\tspeak( __( 'Classic menu imported successfully.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionErrorNotice( classicMenuConversionError );\n\t\t\tspeak( __( 'Classic menu import failed.' ) );\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\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\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\tshowCantCreateNotice();\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 [\n\t\tshouldFocusNavigationSelector,\n\t\tsetShouldFocusNavigationSelector,\n\t] = useState( false );\n\tconst handleSelectNavigation = useCallback(\n\t\t( navPostOrClassicMenu ) => {\n\t\t\tif ( ! navPostOrClassicMenu ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isClassicMenu = navPostOrClassicMenu.hasOwnProperty(\n\t\t\t\t'auto_add'\n\t\t\t);\n\n\t\t\tif ( isClassicMenu ) {\n\t\t\t\tconvert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );\n\t\t\t} else {\n\t\t\t\thandleUpdateMenu( navPostOrClassicMenu.id );\n\t\t\t}\n\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t},\n\t\t[ convert, handleUpdateMenu ]\n\t);\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\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<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\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\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\tshowNavigationMenuCreateNotice(\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\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\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\tonFinish={ handleSelectNavigation }\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>\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\tonSelect={ handleSelectNavigation }\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<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\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\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ hasIcon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\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\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\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\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\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\t</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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\t</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\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\tshowNavigationMenuDeleteNotice(\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\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\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","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalUseNoRecursiveRenders","useNoRecursiveRenders","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","__experimentalUseBlockOverlayActive","useBlockOverlayActive","EntityProvider","useDispatch","useSelect","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","CREATE_NAVIGATION_MENU_ERROR","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_SUCCESS","EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","showNavigationMenuDeleteNotice","name","showNavigationMenuCreateNotice","hideNavigationMenuCreateNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isCreatingNavigationMenu","id","selectBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","class","slug","__unstableIsDisabled","overlayClassnames","overlayStyles","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","showClassicMenuConversionErrorNotice","hideClassicMenuConversionErrorNotice","handleUpdateMenu","menuId","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","handleSelectNavigation","navPostOrClassicMenu","isClassicMenu","hasOwnProperty","focus","resetToEmptyBlock","batch","undefined","isResponsive","overlayMenuPreviewClasses","open","stylingInspectorControls","onChange","label","hasUnsavedBlocks","post","PlaceholderComponent","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__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\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, useSelect, 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, {\n\tCREATE_NAVIGATION_MENU_ERROR,\n\tCREATE_NAVIGATION_MENU_PENDING,\n\tCREATE_NAVIGATION_MENU_SUCCESS,\n} from './use-create-navigation-menu';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\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 [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\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 [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/delete',\n\t} );\n\n\tconst [\n\t\tshowNavigationMenuCreateNotice,\n\t\thideNavigationMenuCreateNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/create',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst isCreatingNavigationMenu =\n\t\tcreateNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;\n\n\tuseEffect( () => {\n\t\thideNavigationMenuCreateNotice();\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {\n\t\t\tshowNavigationMenuCreateNotice(\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\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks = !! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\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\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(\n\t\t\t\t\t'color',\n\t\t\t\t\ttextColor?.slug\n\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\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\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\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 [\n\t\tshowClassicMenuConversionErrorNotice,\n\t\thideClassicMenuConversionErrorNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/classic-menu-conversion/error',\n\t} );\n\n\tfunction handleUpdateMenu( menuId ) {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t}\n\n\tuseEffect( () => {\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\thideClassicMenuConversionErrorNotice();\n\t\t\tspeak( __( 'Classic menu imported successfully.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionErrorNotice( classicMenuConversionError );\n\t\t\tspeak( __( 'Classic menu import failed.' ) );\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\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\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\tshowCantCreateNotice();\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 [\n\t\tshouldFocusNavigationSelector,\n\t\tsetShouldFocusNavigationSelector,\n\t] = useState( false );\n\tconst handleSelectNavigation = useCallback(\n\t\t( navPostOrClassicMenu ) => {\n\t\t\tif ( ! navPostOrClassicMenu ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isClassicMenu = navPostOrClassicMenu.hasOwnProperty(\n\t\t\t\t'auto_add'\n\t\t\t);\n\n\t\t\tif ( isClassicMenu ) {\n\t\t\t\tconvert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );\n\t\t\t} else {\n\t\t\t\thandleUpdateMenu( navPostOrClassicMenu.id );\n\t\t\t}\n\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t},\n\t\t[ convert, handleUpdateMenu ]\n\t);\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\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\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\tshowNavigationMenuCreateNotice(\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\tonFinish={ handleSelectNavigation }\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>\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\tonSelect={ handleSelectNavigation }\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\tshowNavigationMenuDeleteNotice(\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\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\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"]}
|
|
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
|
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
6
|
import { useEntityBlockEditor } from '@wordpress/core-data';
|
|
7
|
-
import { useInnerBlocksProps, InnerBlocks,
|
|
7
|
+
import { useInnerBlocksProps, InnerBlocks, store as blockEditorStore } from '@wordpress/block-editor';
|
|
8
8
|
import { useSelect } from '@wordpress/data';
|
|
9
9
|
import { useMemo } from '@wordpress/element';
|
|
10
10
|
/**
|
|
@@ -87,10 +87,6 @@ export default function NavigationInnerBlocks(_ref) {
|
|
|
87
87
|
__experimentalLayout: LAYOUT,
|
|
88
88
|
placeholder: showPlaceholder ? placeholder : undefined
|
|
89
89
|
});
|
|
90
|
-
return createElement(
|
|
91
|
-
clientId: clientId,
|
|
92
|
-
tagName: 'div',
|
|
93
|
-
wrapperProps: innerBlocksProps
|
|
94
|
-
});
|
|
90
|
+
return createElement("div", innerBlocksProps);
|
|
95
91
|
}
|
|
96
92
|
//# sourceMappingURL=inner-blocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/inner-blocks.js"],"names":["useEntityBlockEditor","useInnerBlocksProps","InnerBlocks","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/inner-blocks.js"],"names":["useEntityBlockEditor","useInnerBlocksProps","InnerBlocks","store","blockEditorStore","useSelect","useMemo","PlaceholderPreview","ALLOWED_BLOCKS","DEFAULT_BLOCK","name","LAYOUT","type","alignments","NavigationInnerBlocks","clientId","hasCustomPlaceholder","orientation","isImmediateParentOfSelectedBlock","selectedBlockHasChildren","isSelected","select","getBlockCount","hasSelectedInnerBlock","getSelectedBlockClientId","selectedBlockId","blocks","onInput","onChange","shouldDirectInsert","every","parentOrChildHasSelection","placeholder","hasMenuItems","length","showPlaceholder","innerBlocksProps","className","value","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","ButtonBlockAppender","templateLock","__experimentalLayout","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PlaceholderPreview from './placeholder/placeholder-preview';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst LAYOUT = {\n\ttype: 'default',\n\talignments: [],\n};\n\nexport default function NavigationInnerBlocks( {\n\tclientId,\n\thasCustomPlaceholder,\n\torientation,\n} ) {\n\tconst {\n\t\tisImmediateParentOfSelectedBlock,\n\t\tselectedBlockHasChildren,\n\t\tisSelected,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\tselectedBlockHasChildren: !! getBlockCount( selectedBlockId ),\n\n\t\t\t\t// This prop is already available but computing it here ensures it's\n\t\t\t\t// fresh compared to isImmediateParentOfSelectedBlock.\n\t\t\t\tisSelected: selectedBlockId === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation'\n\t);\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// When the block is selected itself or has a top level item selected that\n\t// doesn't itself have children, show the standard appender. Else show no\n\t// appender.\n\tconst parentOrChildHasSelection =\n\t\tisSelected ||\n\t\t( isImmediateParentOfSelectedBlock && ! selectedBlockHasChildren );\n\n\tconst placeholder = useMemo( () => <PlaceholderPreview />, [] );\n\n\tconst hasMenuItems = !! blocks?.length;\n\n\t// If there is a `ref` attribute pointing to a `wp_navigation` but\n\t// that menu has no **items** (i.e. empty) then show a placeholder.\n\t// The block must also be selected else the placeholder will display\n\t// alongside the appender.\n\tconst showPlaceholder =\n\t\t! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t\t\torientation,\n\n\t\t\t// As an exception to other blocks which feature nesting, show\n\t\t\t// the block appender even when a child block is selected.\n\t\t\t// This should be a temporary fix, to be replaced by improvements to\n\t\t\t// the sibling inserter.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/37572.\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\tparentOrChildHasSelection\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\n\t\t\t// Template lock set to false here so that the Nav\n\t\t\t// Block on the experimental menus screen does not\n\t\t\t// inherit templateLock={ 'all' }.\n\t\t\ttemplateLock: false,\n\t\t\t__experimentalLayout: LAYOUT,\n\t\t\tplaceholder: showPlaceholder ? placeholder : undefined,\n\t\t}\n\t);\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { useEntityRecords } from '@wordpress/core-data';
|
|
5
5
|
/**
|
|
6
6
|
* @typedef {Object} NavigationEntitiesData
|
|
7
7
|
* @property {Array|undefined} pages - a collection of WP Post entity objects of post type "Page".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-entities.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-entities.js"],"names":["useEntityRecords","useNavigationEntities","menuId","records","menus","isResolving","isResolvingMenus","hasResolved","hasResolvedMenus","per_page","context","pages","isResolvingPages","hasResolvedPages","parent","order","orderby","menuItems","hasResolvedMenuItems","enabled","hasPages","length","hasMenus"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gBAAT,QAAiC,sBAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,qBAAT,CAAgCC,MAAhC,EAAyC;AACvD,QAAM;AACLC,IAAAA,OAAO,EAAEC,KADJ;AAELC,IAAAA,WAAW,EAAEC,gBAFR;AAGLC,IAAAA,WAAW,EAAEC;AAHR,MAIFR,gBAAgB,CAAE,MAAF,EAAU,MAAV,EAAkB;AAAES,IAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBC,IAAAA,OAAO,EAAE;AAAzB,GAAlB,CAJpB;AAMA,QAAM;AACLP,IAAAA,OAAO,EAAEQ,KADJ;AAELN,IAAAA,WAAW,EAAEO,gBAFR;AAGLL,IAAAA,WAAW,EAAEM;AAHR,MAIFb,gBAAgB,CAAE,UAAF,EAAc,MAAd,EAAsB;AACzCc,IAAAA,MAAM,EAAE,CADiC;AAEzCC,IAAAA,KAAK,EAAE,KAFkC;AAGzCC,IAAAA,OAAO,EAAE,IAHgC;AAIzCP,IAAAA,QAAQ,EAAE,CAAC,CAJ8B;AAKzCC,IAAAA,OAAO,EAAE;AALgC,GAAtB,CAJpB;AAYA,QAAM;AACLP,IAAAA,OAAO,EAAEc,SADJ;AAELV,IAAAA,WAAW,EAAEW;AAFR,MAGFlB,gBAAgB,CACnB,MADmB,EAEnB,UAFmB,EAGnB;AACCI,IAAAA,KAAK,EAAEF,MADR;AAECO,IAAAA,QAAQ,EAAE,CAAC,CAFZ;AAGCC,IAAAA,OAAO,EAAE;AAHV,GAHmB,EAQnB;AAAES,IAAAA,OAAO,EAAE,CAAC,CAAEjB;AAAd,GARmB,CAHpB;AAcA,SAAO;AACNS,IAAAA,KADM;AAENC,IAAAA,gBAFM;AAGNC,IAAAA,gBAHM;AAINO,IAAAA,QAAQ,EAAE,CAAC,EAAIP,gBAAgB,IAAIF,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAEU,MAA/B,CAJL;AAMNjB,IAAAA,KANM;AAONE,IAAAA,gBAPM;AAQNE,IAAAA,gBARM;AASNc,IAAAA,QAAQ,EAAE,CAAC,EAAId,gBAAgB,IAAIJ,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAEiB,MAA/B,CATL;AAWNJ,IAAAA,SAXM;AAYNC,IAAAA;AAZM,GAAP;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * @typedef {Object} NavigationEntitiesData\n * @property {Array|undefined} pages - a collection of WP Post entity objects of post type \"Page\".\n * @property {boolean} isResolvingPages - indicates whether the request to fetch pages is currently resolving.\n * @property {boolean} hasResolvedPages - indicates whether the request to fetch pages has finished resolving.\n * @property {Array|undefined} menus - a collection of Menu entity objects.\n * @property {boolean} isResolvingMenus - indicates whether the request to fetch menus is currently resolving.\n * @property {boolean} hasResolvedMenus - indicates whether the request to fetch menus has finished resolving.\n * @property {Array|undefined} menusItems - a collection of Menu Item entity objects for the current menuId.\n * @property {boolean} hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.\n * @property {boolean} hasPages - indicates whether there is currently any data for pages.\n * @property {boolean} hasMenus - indicates whether there is currently any data for menus.\n */\n\n/**\n * Manages fetching and resolution state for all entities required\n * for the Navigation block.\n *\n * @param {number} menuId the menu for which to retrieve menuItem data.\n * @return { NavigationEntitiesData } the entity data.\n */\nexport default function useNavigationEntities( menuId ) {\n\tconst {\n\t\trecords: menus,\n\t\tisResolving: isResolvingMenus,\n\t\thasResolved: hasResolvedMenus,\n\t} = useEntityRecords( 'root', 'menu', { per_page: -1, context: 'view' } );\n\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isResolvingPages,\n\t\thasResolved: hasResolvedPages,\n\t} = useEntityRecords( 'postType', 'page', {\n\t\tparent: 0,\n\t\torder: 'asc',\n\t\torderby: 'id',\n\t\tper_page: -1,\n\t\tcontext: 'view',\n\t} );\n\n\tconst {\n\t\trecords: menuItems,\n\t\thasResolved: hasResolvedMenuItems,\n\t} = useEntityRecords(\n\t\t'root',\n\t\t'menuItem',\n\t\t{\n\t\t\tmenus: menuId,\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t},\n\t\t{ enabled: !! menuId }\n\t);\n\n\treturn {\n\t\tpages,\n\t\tisResolvingPages,\n\t\thasResolvedPages,\n\t\thasPages: !! ( hasResolvedPages && pages?.length ),\n\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\thasResolvedMenus,\n\t\thasMenus: !! ( hasResolvedMenus && menus?.length ),\n\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t};\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import { category as categoryIcon, page as pageIcon,
|
|
5
|
+
import { category as categoryIcon, page as pageIcon, postContent as postIcon, tag as tagIcon } from '@wordpress/icons'; // FALLBACK: this is only used when the server does not understand the variations property in the
|
|
6
6
|
// register_block_type call. see navigation-link/index.php.
|
|
7
7
|
// Delete this file when supported WP ranges understand the `variations` property when passed to
|
|
8
8
|
// register_block_type in index.php.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/fallback-variations.js"],"names":["__","category","categoryIcon","page","pageIcon","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/fallback-variations.js"],"names":["__","category","categoryIcon","page","pageIcon","postContent","postIcon","tag","tagIcon","fallbackVariations","name","isDefault","title","description","attributes","icon","type","kind","forEach","variation","isActive","blockAttributes","variationAttributes"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,QAAQ,IAAIC,YADb,EAECC,IAAI,IAAIC,QAFT,EAGCC,WAAW,IAAIC,QAHhB,EAICC,GAAG,IAAIC,OAJR,QAKO,kBALP,C,CAOA;AACA;AACA;AACA;;AACA,MAAMC,kBAAkB,GAAG,CAC1B;AACCC,EAAAA,IAAI,EAAE,MADP;AAECC,EAAAA,SAAS,EAAE,IAFZ;AAGCC,EAAAA,KAAK,EAAEZ,EAAE,CAAE,aAAF,CAHV;AAICa,EAAAA,WAAW,EAAEb,EAAE,CAAE,yBAAF,CAJhB;AAKCc,EAAAA,UAAU,EAAE;AALb,CAD0B,EAQ1B;AACCJ,EAAAA,IAAI,EAAE,MADP;AAECK,EAAAA,IAAI,EAAET,QAFP;AAGCM,EAAAA,KAAK,EAAEZ,EAAE,CAAE,WAAF,CAHV;AAICa,EAAAA,WAAW,EAAEb,EAAE,CAAE,mBAAF,CAJhB;AAKCc,EAAAA,UAAU,EAAE;AAAEE,IAAAA,IAAI,EAAE,MAAR;AAAgBC,IAAAA,IAAI,EAAE;AAAtB;AALb,CAR0B,EAe1B;AACCP,EAAAA,IAAI,EAAE,MADP;AAECK,EAAAA,IAAI,EAAEX,QAFP;AAGCQ,EAAAA,KAAK,EAAEZ,EAAE,CAAE,WAAF,CAHV;AAICa,EAAAA,WAAW,EAAEb,EAAE,CAAE,mBAAF,CAJhB;AAKCc,EAAAA,UAAU,EAAE;AAAEE,IAAAA,IAAI,EAAE,MAAR;AAAgBC,IAAAA,IAAI,EAAE;AAAtB;AALb,CAf0B,EAsB1B;AACCP,EAAAA,IAAI,EAAE,UADP;AAECK,EAAAA,IAAI,EAAEb,YAFP;AAGCU,EAAAA,KAAK,EAAEZ,EAAE,CAAE,eAAF,CAHV;AAICa,EAAAA,WAAW,EAAEb,EAAE,CAAE,uBAAF,CAJhB;AAKCc,EAAAA,UAAU,EAAE;AAAEE,IAAAA,IAAI,EAAE,UAAR;AAAoBC,IAAAA,IAAI,EAAE;AAA1B;AALb,CAtB0B,EA6B1B;AACCP,EAAAA,IAAI,EAAE,KADP;AAECK,EAAAA,IAAI,EAAEP,OAFP;AAGCI,EAAAA,KAAK,EAAEZ,EAAE,CAAE,UAAF,CAHV;AAICa,EAAAA,WAAW,EAAEb,EAAE,CAAE,kBAAF,CAJhB;AAKCc,EAAAA,UAAU,EAAE;AAAEE,IAAAA,IAAI,EAAE,KAAR;AAAeC,IAAAA,IAAI,EAAE;AAArB;AALb,CA7B0B,CAA3B;AAsCA;AACA;AACA;AACA;AACA;;AACAR,kBAAkB,CAACS,OAAnB,CAA8BC,SAAF,IAAiB;AAC5C,MAAKA,SAAS,CAACC,QAAf,EAA0B;;AAC1BD,EAAAA,SAAS,CAACC,QAAV,GAAqB,CAAEC,eAAF,EAAmBC,mBAAnB,KACpBD,eAAe,CAACL,IAAhB,KAAyBM,mBAAmB,CAACN,IAD9C;AAEA,CAJD;AAMA,eAAeP,kBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcategory as categoryIcon,\n\tpage as pageIcon,\n\tpostContent as postIcon,\n\ttag as tagIcon,\n} from '@wordpress/icons';\n\n// FALLBACK: this is only used when the server does not understand the variations property in the\n// register_block_type call. see navigation-link/index.php.\n// Delete this file when supported WP ranges understand the `variations` property when passed to\n// register_block_type in index.php.\nconst fallbackVariations = [\n\t{\n\t\tname: 'link',\n\t\tisDefault: true,\n\t\ttitle: __( 'Custom Link' ),\n\t\tdescription: __( 'A link to a custom URL.' ),\n\t\tattributes: {},\n\t},\n\t{\n\t\tname: 'post',\n\t\ticon: postIcon,\n\t\ttitle: __( 'Post Link' ),\n\t\tdescription: __( 'A link to a post.' ),\n\t\tattributes: { type: 'post', kind: 'post-type' },\n\t},\n\t{\n\t\tname: 'page',\n\t\ticon: pageIcon,\n\t\ttitle: __( 'Page Link' ),\n\t\tdescription: __( 'A link to a page.' ),\n\t\tattributes: { type: 'page', kind: 'post-type' },\n\t},\n\t{\n\t\tname: 'category',\n\t\ticon: categoryIcon,\n\t\ttitle: __( 'Category Link' ),\n\t\tdescription: __( 'A link to a category.' ),\n\t\tattributes: { type: 'category', kind: 'taxonomy' },\n\t},\n\t{\n\t\tname: 'tag',\n\t\ticon: tagIcon,\n\t\ttitle: __( 'Tag Link' ),\n\t\tdescription: __( 'A link to a tag.' ),\n\t\tattributes: { type: 'tag', kind: 'taxonomy' },\n\t},\n];\n\n/**\n * Add `isActive` function to all `navigation link` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nfallbackVariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) return;\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default fallbackVariations;\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { category, page,
|
|
4
|
+
import { category, page, postContent, tag, customPostType } from '@wordpress/icons';
|
|
5
5
|
/**
|
|
6
6
|
* Internal dependencies
|
|
7
7
|
*/
|
|
@@ -11,7 +11,7 @@ import fallbackVariations from './fallback-variations';
|
|
|
11
11
|
function getIcon(variationName) {
|
|
12
12
|
switch (variationName) {
|
|
13
13
|
case 'post':
|
|
14
|
-
return
|
|
14
|
+
return postContent;
|
|
15
15
|
|
|
16
16
|
case 'page':
|
|
17
17
|
return page;
|