@wordpress/block-library 7.12.2-next.d6164808d3.0 → 7.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -1
- package/README.md +67 -61
- package/babel-plugin.js +1 -1
- package/build/archives/index.js +24 -1
- package/build/archives/index.js.map +1 -1
- package/build/archives/init.js +16 -0
- package/build/archives/init.js.map +1 -0
- package/build/audio/edit.js +10 -7
- package/build/audio/edit.js.map +1 -1
- package/build/audio/index.js +17 -9
- package/build/audio/index.js.map +1 -1
- package/build/audio/init.js +16 -0
- package/build/audio/init.js.map +1 -0
- package/build/audio/transforms.native.js +1 -1
- package/build/audio/transforms.native.js.map +1 -1
- package/build/avatar/index.js +13 -2
- package/build/avatar/index.js.map +1 -1
- package/build/avatar/init.js +16 -0
- package/build/avatar/init.js.map +1 -0
- package/build/block/edit.js +1 -4
- package/build/block/edit.js.map +1 -1
- package/build/block/index.js +11 -1
- package/build/block/index.js.map +1 -1
- package/build/block/init.js +16 -0
- package/build/block/init.js.map +1 -0
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/index.js +16 -1
- package/build/button/index.js.map +1 -1
- package/build/button/init.js +16 -0
- package/build/button/init.js.map +1 -0
- package/build/buttons/edit.js +22 -4
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/index.js +24 -1
- package/build/buttons/index.js.map +1 -1
- package/build/buttons/init.js +16 -0
- package/build/buttons/init.js.map +1 -0
- package/build/buttons/save.js +27 -2
- package/build/buttons/save.js.map +1 -1
- package/build/buttons/transforms.js +13 -0
- package/build/buttons/transforms.js.map +1 -1
- package/build/buttons/transforms.native.js +1 -1
- package/build/buttons/transforms.native.js.map +1 -1
- package/build/calendar/index.js +24 -2
- package/build/calendar/index.js.map +1 -1
- package/build/calendar/init.js +16 -0
- package/build/calendar/init.js.map +1 -0
- package/build/categories/edit.js +26 -20
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +15 -1
- package/build/categories/index.js.map +1 -1
- package/build/categories/init.js +16 -0
- package/build/categories/init.js.map +1 -0
- package/build/code/index.js +11 -1
- package/build/code/index.js.map +1 -1
- package/build/code/init.js +16 -0
- package/build/code/init.js.map +1 -0
- package/build/code/transforms.js +12 -0
- package/build/code/transforms.js.map +1 -1
- package/build/code/transforms.native.js +1 -1
- package/build/code/transforms.native.js.map +1 -1
- package/build/column/edit.js +1 -1
- package/build/column/edit.js.map +1 -1
- package/build/column/index.js +12 -2
- package/build/column/index.js.map +1 -1
- package/build/column/init.js +16 -0
- package/build/column/init.js.map +1 -0
- package/build/columns/index.js +13 -2
- package/build/columns/index.js.map +1 -1
- package/build/columns/init.js +16 -0
- package/build/columns/init.js.map +1 -0
- package/build/columns/transforms.js +10 -1
- package/build/columns/transforms.js.map +1 -1
- package/build/columns/transforms.native.js +1 -1
- package/build/columns/transforms.native.js.map +1 -1
- package/build/comment-author-avatar/index.js +11 -1
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comment-author-avatar/init.js +16 -0
- package/build/comment-author-avatar/init.js.map +1 -0
- package/build/comment-author-name/index.js +11 -1
- package/build/comment-author-name/index.js.map +1 -1
- package/build/comment-author-name/init.js +16 -0
- package/build/comment-author-name/init.js.map +1 -0
- package/build/comment-content/index.js +11 -1
- package/build/comment-content/index.js.map +1 -1
- package/build/comment-content/init.js +16 -0
- package/build/comment-content/init.js.map +1 -0
- package/build/comment-date/edit.js +1 -1
- package/build/comment-date/edit.js.map +1 -1
- package/build/comment-date/index.js +15 -1
- package/build/comment-date/index.js.map +1 -1
- package/build/comment-date/init.js +16 -0
- package/build/comment-date/init.js.map +1 -0
- package/build/comment-edit-link/index.js +15 -1
- package/build/comment-edit-link/index.js.map +1 -1
- package/build/comment-edit-link/init.js +16 -0
- package/build/comment-edit-link/init.js.map +1 -0
- package/build/comment-reply-link/index.js +15 -1
- package/build/comment-reply-link/index.js.map +1 -1
- package/build/comment-reply-link/init.js +16 -0
- package/build/comment-reply-link/init.js.map +1 -0
- package/build/comment-template/index.js +11 -1
- package/build/comment-template/index.js.map +1 -1
- package/build/comment-template/init.js +16 -0
- package/build/comment-template/init.js.map +1 -0
- package/build/comments/edit/comments-legacy.js +1 -1
- package/build/comments/edit/comments-legacy.js.map +1 -1
- package/build/comments/index.js +11 -1
- package/build/comments/index.js.map +1 -1
- package/build/comments/init.js +16 -0
- package/build/comments/init.js.map +1 -0
- package/build/comments-pagination/edit.js +2 -1
- package/build/comments-pagination/edit.js.map +1 -1
- package/build/comments-pagination/index.js +11 -1
- package/build/comments-pagination/index.js.map +1 -1
- package/build/comments-pagination/init.js +16 -0
- package/build/comments-pagination/init.js.map +1 -0
- package/build/comments-pagination-next/index.js +11 -1
- package/build/comments-pagination-next/index.js.map +1 -1
- package/build/comments-pagination-next/init.js +16 -0
- package/build/comments-pagination-next/init.js.map +1 -0
- package/build/comments-pagination-numbers/index.js +11 -1
- package/build/comments-pagination-numbers/index.js.map +1 -1
- package/build/comments-pagination-numbers/init.js +16 -0
- package/build/comments-pagination-numbers/init.js.map +1 -0
- package/build/comments-pagination-previous/index.js +11 -1
- package/build/comments-pagination-previous/index.js.map +1 -1
- package/build/comments-pagination-previous/init.js +16 -0
- package/build/comments-pagination-previous/init.js.map +1 -0
- package/build/comments-title/index.js +11 -1
- package/build/comments-title/index.js.map +1 -1
- package/build/comments-title/init.js +16 -0
- package/build/comments-title/init.js.map +1 -0
- package/build/cover/index.js +12 -2
- package/build/cover/index.js.map +1 -1
- package/build/cover/init.js +16 -0
- package/build/cover/init.js.map +1 -0
- package/build/cover/transforms.native.js +1 -1
- package/build/cover/transforms.native.js.map +1 -1
- package/build/embed/deprecated.js +1 -6
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/index.js +12 -7
- package/build/embed/index.js.map +1 -1
- package/build/embed/init.js +16 -0
- package/build/embed/init.js.map +1 -0
- package/build/embed/transforms.js +1 -6
- package/build/embed/transforms.js.map +1 -1
- package/build/embed/transforms.native.js +1 -1
- package/build/embed/transforms.native.js.map +1 -1
- package/build/embed/util.js +1 -6
- package/build/embed/util.js.map +1 -1
- package/build/file/deprecated.js +115 -3
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +7 -7
- package/build/file/edit.js.map +1 -1
- package/build/file/index.js +11 -1
- package/build/file/index.js.map +1 -1
- package/build/file/init.js +16 -0
- package/build/file/init.js.map +1 -0
- package/build/file/save.js +1 -5
- package/build/file/save.js.map +1 -1
- package/build/file/transforms.native.js +1 -1
- package/build/file/transforms.native.js.map +1 -1
- package/build/freeform/index.js +11 -1
- package/build/freeform/index.js.map +1 -1
- package/build/freeform/init.js +16 -0
- package/build/freeform/init.js.map +1 -0
- package/build/gallery/edit.js +11 -12
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gap-styles.js +5 -4
- package/build/gallery/gap-styles.js.map +1 -1
- package/build/gallery/index.js +13 -1
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/init.js +16 -0
- package/build/gallery/init.js.map +1 -0
- package/build/gallery/transforms.native.js +1 -1
- package/build/gallery/transforms.native.js.map +1 -1
- package/build/gallery/v1/edit.js +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.js +10 -2
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/group/index.js +12 -2
- package/build/group/index.js.map +1 -1
- package/build/group/init.js +16 -0
- package/build/group/init.js.map +1 -0
- package/build/heading/index.js +12 -1
- package/build/heading/index.js.map +1 -1
- package/build/heading/init.js +16 -0
- package/build/heading/init.js.map +1 -0
- package/build/heading/transforms.js +1 -0
- package/build/heading/transforms.js.map +1 -1
- package/build/heading/transforms.native.js +1 -1
- package/build/heading/transforms.native.js.map +1 -1
- package/build/home-link/index.js +25 -2
- package/build/home-link/index.js.map +1 -1
- package/build/home-link/init.js +16 -0
- package/build/home-link/init.js.map +1 -0
- package/build/html/index.js +11 -1
- package/build/html/index.js.map +1 -1
- package/build/html/init.js +16 -0
- package/build/html/init.js.map +1 -0
- package/build/image/edit.js +30 -14
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +5 -4
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +11 -6
- package/build/image/index.js.map +1 -1
- package/build/image/init.js +16 -0
- package/build/image/init.js.map +1 -0
- package/build/image/transforms.js +2 -1
- package/build/image/transforms.js.map +1 -1
- package/build/image/transforms.native.js +1 -1
- package/build/image/transforms.native.js.map +1 -1
- package/build/image/use-client-width.js +3 -1
- package/build/image/use-client-width.js.map +1 -1
- package/build/index.js +19 -32
- package/build/index.js.map +1 -1
- package/build/index.native.js +11 -57
- package/build/index.native.js.map +1 -1
- package/build/latest-comments/index.js +11 -1
- package/build/latest-comments/index.js.map +1 -1
- package/build/latest-comments/init.js +16 -0
- package/build/latest-comments/init.js.map +1 -0
- package/build/latest-posts/deprecated.js +14 -1
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/edit.js +1 -1
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/index.js +25 -2
- package/build/latest-posts/index.js.map +1 -1
- package/build/latest-posts/init.js +16 -0
- package/build/latest-posts/init.js.map +1 -0
- package/build/list/deprecated.js +84 -1
- package/build/list/deprecated.js.map +1 -1
- package/build/list/edit.js +149 -135
- package/build/list/edit.js.map +1 -1
- package/build/list/index.js +46 -36
- package/build/list/index.js.map +1 -1
- package/build/list/init.js +16 -0
- package/build/list/init.js.map +1 -0
- package/build/list/save.js +1 -5
- package/build/list/save.js.map +1 -1
- package/build/list/{v2/tag-name.js → tag-name.js} +0 -0
- package/build/list/tag-name.js.map +1 -0
- package/build/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
- package/build/list/tag-name.native.js.map +1 -0
- package/build/list/transforms.js +61 -95
- package/build/list/transforms.js.map +1 -1
- package/build/list/transforms.native.js +1 -1
- package/build/list/transforms.native.js.map +1 -1
- package/build/list/{v2/migrate.js → utils.js} +9 -10
- package/build/list/utils.js.map +1 -0
- package/build/list-item/edit.native.js +45 -11
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/use-copy.js +2 -0
- package/build/list-item/hooks/use-copy.js.map +1 -1
- package/build/list-item/hooks/use-enter.native.js +81 -0
- package/build/list-item/hooks/use-enter.native.js.map +1 -0
- package/build/list-item/hooks/use-merge.js +0 -1
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +3 -4
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +10 -1
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/list-item/index.js +11 -2
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/init.js +16 -0
- package/build/list-item/init.js.map +1 -0
- package/build/list-item/utils.js +8 -4
- package/build/list-item/utils.js.map +1 -1
- package/build/loginout/index.js +11 -1
- package/build/loginout/index.js.map +1 -1
- package/build/loginout/init.js +16 -0
- package/build/loginout/init.js.map +1 -0
- package/build/media-text/index.js +25 -6
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/init.js +16 -0
- package/build/media-text/init.js.map +1 -0
- package/build/media-text/media-container.js +9 -6
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/transforms.native.js +1 -1
- package/build/media-text/transforms.native.js.map +1 -1
- package/build/missing/index.js +11 -1
- package/build/missing/index.js.map +1 -1
- package/build/missing/init.js +16 -0
- package/build/missing/init.js.map +1 -0
- package/build/more/index.js +11 -1
- package/build/more/index.js.map +1 -1
- package/build/more/init.js +16 -0
- package/build/more/init.js.map +1 -0
- package/build/more/transforms.native.js +1 -1
- package/build/more/transforms.native.js.map +1 -1
- package/build/navigation/edit/index.js +124 -71
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +85 -31
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/overlay-menu-icon.js +21 -1
- package/build/navigation/edit/overlay-menu-icon.js.map +1 -1
- package/build/navigation/edit/overlay-menu-preview.js +71 -0
- package/build/navigation/edit/overlay-menu-preview.js.map +1 -0
- package/build/navigation/edit/responsive-wrapper.js +11 -6
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +4 -15
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +21 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +2 -1
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/index.js +16 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/init.js +16 -0
- package/build/navigation/init.js.map +1 -0
- package/build/navigation/use-navigation-menu.js +7 -6
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-link/edit.js +15 -2
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/index.js +29 -5
- package/build/navigation-link/index.js.map +1 -1
- package/build/navigation-link/init.js +16 -0
- package/build/navigation-link/init.js.map +1 -0
- package/build/navigation-submenu/edit.js +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/navigation-submenu/index.js +11 -1
- package/build/navigation-submenu/index.js.map +1 -1
- package/build/navigation-submenu/init.js +16 -0
- package/build/navigation-submenu/init.js.map +1 -0
- package/build/nextpage/index.js +11 -1
- package/build/nextpage/index.js.map +1 -1
- package/build/nextpage/init.js +16 -0
- package/build/nextpage/init.js.map +1 -0
- package/build/nextpage/transforms.native.js +1 -1
- package/build/nextpage/transforms.native.js.map +1 -1
- package/build/page-list/index.js +11 -1
- package/build/page-list/index.js.map +1 -1
- package/build/page-list/init.js +16 -0
- package/build/page-list/init.js.map +1 -0
- package/build/paragraph/index.js +13 -1
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/init.js +16 -0
- package/build/paragraph/init.js.map +1 -0
- package/build/paragraph/transforms.js +2 -0
- package/build/paragraph/transforms.js.map +1 -1
- package/build/paragraph/transforms.native.js +1 -1
- package/build/paragraph/transforms.native.js.map +1 -1
- package/build/pattern/index.js +11 -1
- package/build/pattern/index.js.map +1 -1
- package/build/pattern/init.js +16 -0
- package/build/pattern/init.js.map +1 -0
- package/build/post-author/edit.js +1 -3
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author/index.js +16 -2
- package/build/post-author/index.js.map +1 -1
- package/build/post-author/init.js +16 -0
- package/build/post-author/init.js.map +1 -0
- package/build/post-author-biography/index.js +16 -2
- package/build/post-author-biography/index.js.map +1 -1
- package/build/post-author-biography/init.js +16 -0
- package/build/post-author-biography/init.js.map +1 -0
- package/build/post-author-name/index.js +16 -2
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-author-name/init.js +16 -0
- package/build/post-author-name/init.js.map +1 -0
- package/build/post-comment/index.js +11 -1
- package/build/post-comment/index.js.map +1 -1
- package/build/post-comment/init.js +16 -0
- package/build/post-comment/init.js.map +1 -0
- package/build/post-comments-count/index.js +11 -1
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-count/init.js +16 -0
- package/build/post-comments-count/init.js.map +1 -0
- package/build/post-comments-form/index.js +11 -1
- package/build/post-comments-form/index.js.map +1 -1
- package/build/post-comments-form/init.js +16 -0
- package/build/post-comments-form/init.js.map +1 -0
- package/build/post-comments-link/index.js +11 -1
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-comments-link/init.js +16 -0
- package/build/post-comments-link/init.js.map +1 -0
- package/build/post-content/index.js +25 -2
- package/build/post-content/index.js.map +1 -1
- package/build/post-content/init.js +16 -0
- package/build/post-content/init.js.map +1 -0
- package/build/post-date/edit.js +1 -1
- package/build/post-date/edit.js.map +1 -1
- package/build/post-date/index.js +11 -1
- package/build/post-date/index.js.map +1 -1
- package/build/post-date/init.js +16 -0
- package/build/post-date/init.js.map +1 -0
- package/build/post-excerpt/index.js +15 -3
- package/build/post-excerpt/index.js.map +1 -1
- package/build/post-excerpt/init.js +16 -0
- package/build/post-excerpt/init.js.map +1 -0
- package/build/post-featured-image/edit.js +16 -2
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +27 -1
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-featured-image/init.js +16 -0
- package/build/post-featured-image/init.js.map +1 -0
- package/build/post-featured-image/overlay.js +118 -0
- package/build/post-featured-image/overlay.js.map +1 -0
- package/build/post-featured-image/utils.js +18 -0
- package/build/post-featured-image/utils.js.map +1 -0
- package/build/post-navigation-link/index.js +11 -1
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-navigation-link/init.js +16 -0
- package/build/post-navigation-link/init.js.map +1 -0
- package/build/post-template/edit.js +37 -3
- package/build/post-template/edit.js.map +1 -1
- package/build/post-template/index.js +11 -1
- package/build/post-template/index.js.map +1 -1
- package/build/post-template/init.js +16 -0
- package/build/post-template/init.js.map +1 -0
- package/build/post-terms/edit.js +0 -1
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/index.js +15 -4
- package/build/post-terms/index.js.map +1 -1
- package/build/post-terms/init.js +16 -0
- package/build/post-terms/init.js.map +1 -0
- package/build/post-terms/use-post-terms.js +4 -24
- package/build/post-terms/use-post-terms.js.map +1 -1
- package/build/post-title/index.js +11 -1
- package/build/post-title/index.js.map +1 -1
- package/build/post-title/init.js +16 -0
- package/build/post-title/init.js.map +1 -0
- package/build/preformatted/index.js +11 -1
- package/build/preformatted/index.js.map +1 -1
- package/build/preformatted/init.js +16 -0
- package/build/preformatted/init.js.map +1 -0
- package/build/preformatted/transforms.native.js +1 -1
- package/build/preformatted/transforms.native.js.map +1 -1
- package/build/pullquote/index.js +11 -1
- package/build/pullquote/index.js.map +1 -1
- package/build/pullquote/init.js +16 -0
- package/build/pullquote/init.js.map +1 -0
- package/build/pullquote/transforms.native.js +1 -1
- package/build/pullquote/transforms.native.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +23 -26
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/index.js +18 -5
- package/build/query/index.js.map +1 -1
- package/build/query/init.js +16 -0
- package/build/query/init.js.map +1 -0
- package/build/query/utils.js +117 -3
- package/build/query/utils.js.map +1 -1
- package/build/query-no-results/index.js +24 -1
- package/build/query-no-results/index.js.map +1 -1
- package/build/query-no-results/init.js +16 -0
- package/build/query-no-results/init.js.map +1 -0
- package/build/query-pagination/edit.js +2 -1
- package/build/query-pagination/edit.js.map +1 -1
- package/build/query-pagination/index.js +24 -1
- package/build/query-pagination/index.js.map +1 -1
- package/build/query-pagination/init.js +16 -0
- package/build/query-pagination/init.js.map +1 -0
- package/build/query-pagination-next/index.js +15 -3
- package/build/query-pagination-next/index.js.map +1 -1
- package/build/query-pagination-next/init.js +16 -0
- package/build/query-pagination-next/init.js.map +1 -0
- package/build/query-pagination-numbers/index.js +15 -3
- package/build/query-pagination-numbers/index.js.map +1 -1
- package/build/query-pagination-numbers/init.js +16 -0
- package/build/query-pagination-numbers/init.js.map +1 -0
- package/build/query-pagination-previous/index.js +15 -3
- package/build/query-pagination-previous/index.js.map +1 -1
- package/build/query-pagination-previous/init.js +16 -0
- package/build/query-pagination-previous/init.js.map +1 -0
- package/build/query-title/index.js +17 -2
- package/build/query-title/index.js.map +1 -1
- package/build/query-title/init.js +16 -0
- package/build/query-title/init.js.map +1 -0
- package/build/quote/index.js +15 -3
- package/build/quote/index.js.map +1 -1
- package/build/quote/init.js +16 -0
- package/build/quote/init.js.map +1 -0
- package/build/quote/transforms.js +7 -0
- package/build/quote/transforms.js.map +1 -1
- package/build/quote/transforms.native.js +1 -1
- package/build/quote/transforms.native.js.map +1 -1
- package/build/read-more/index.js +11 -1
- package/build/read-more/index.js.map +1 -1
- package/build/read-more/init.js +16 -0
- package/build/read-more/init.js.map +1 -0
- package/build/rss/index.js +11 -1
- package/build/rss/index.js.map +1 -1
- package/build/rss/init.js +16 -0
- package/build/rss/init.js.map +1 -0
- package/build/search/edit.js +19 -8
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +26 -1
- package/build/search/index.js.map +1 -1
- package/build/search/init.js +16 -0
- package/build/search/init.js.map +1 -0
- package/build/separator/index.js +11 -1
- package/build/separator/index.js.map +1 -1
- package/build/separator/init.js +16 -0
- package/build/separator/init.js.map +1 -0
- package/build/separator/transforms.native.js +1 -1
- package/build/separator/transforms.native.js.map +1 -1
- package/build/shortcode/index.js +11 -1
- package/build/shortcode/index.js.map +1 -1
- package/build/shortcode/init.js +16 -0
- package/build/shortcode/init.js.map +1 -0
- package/build/shortcode/transforms.native.js +1 -1
- package/build/shortcode/transforms.native.js.map +1 -1
- package/build/site-logo/index.js +15 -1
- package/build/site-logo/index.js.map +1 -1
- package/build/site-logo/init.js +16 -0
- package/build/site-logo/init.js.map +1 -0
- package/build/site-tagline/index.js +12 -1
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-tagline/init.js +16 -0
- package/build/site-tagline/init.js.map +1 -0
- package/build/site-title/index.js +12 -1
- package/build/site-title/index.js.map +1 -1
- package/build/site-title/init.js +16 -0
- package/build/site-title/init.js.map +1 -0
- package/build/social-link/index.js +11 -1
- package/build/social-link/index.js.map +1 -1
- package/build/social-link/init.js +16 -0
- package/build/social-link/init.js.map +1 -0
- package/build/social-links/edit.js +43 -10
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/index.js +22 -2
- package/build/social-links/index.js.map +1 -1
- package/build/social-links/init.js +16 -0
- package/build/social-links/init.js.map +1 -0
- package/build/spacer/index.js +11 -1
- package/build/spacer/index.js.map +1 -1
- package/build/spacer/init.js +16 -0
- package/build/spacer/init.js.map +1 -0
- package/build/table/index.js +14 -7
- package/build/table/index.js.map +1 -1
- package/build/table/init.js +16 -0
- package/build/table/init.js.map +1 -0
- package/build/table-of-contents/index.js +24 -1
- package/build/table-of-contents/index.js.map +1 -1
- package/build/table-of-contents/init.js +16 -0
- package/build/table-of-contents/init.js.map +1 -0
- package/build/tag-cloud/index.js +11 -1
- package/build/tag-cloud/index.js.map +1 -1
- package/build/tag-cloud/init.js +16 -0
- package/build/tag-cloud/init.js.map +1 -0
- package/build/template-part/edit/index.js +1 -6
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/index.js +32 -21
- package/build/template-part/index.js.map +1 -1
- package/build/template-part/init.js +16 -0
- package/build/template-part/init.js.map +1 -0
- package/build/term-description/index.js +17 -1
- package/build/term-description/index.js.map +1 -1
- package/build/term-description/init.js +16 -0
- package/build/term-description/init.js.map +1 -0
- package/build/text-columns/index.js +11 -1
- package/build/text-columns/index.js.map +1 -1
- package/build/text-columns/init.js +16 -0
- package/build/text-columns/init.js.map +1 -0
- package/build/text-columns/transforms.native.js +1 -1
- package/build/text-columns/transforms.native.js.map +1 -1
- package/build/utils/init-block.js +37 -0
- package/build/utils/init-block.js.map +1 -0
- package/build/utils/init-block.native.js +51 -0
- package/build/utils/init-block.native.js.map +1 -0
- package/build/{is-block-metadata-experimental.js → utils/is-block-metadata-experimental.js} +0 -0
- package/build/utils/is-block-metadata-experimental.js.map +1 -0
- package/build/utils/migrate-font-family.js +11 -18
- package/build/utils/migrate-font-family.js.map +1 -1
- package/build/{transformationCategories.native.js → utils/transformation-categories.native.js} +1 -1
- package/build/utils/transformation-categories.native.js.map +1 -0
- package/build/verse/index.js +12 -1
- package/build/verse/index.js.map +1 -1
- package/build/verse/init.js +16 -0
- package/build/verse/init.js.map +1 -0
- package/build/verse/transforms.native.js +1 -1
- package/build/verse/transforms.native.js.map +1 -1
- package/build/video/edit.js +12 -11
- package/build/video/edit.js.map +1 -1
- package/build/video/index.js +18 -9
- package/build/video/index.js.map +1 -1
- package/build/video/init.js +16 -0
- package/build/video/init.js.map +1 -0
- package/build/video/transforms.native.js +1 -1
- package/build/video/transforms.native.js.map +1 -1
- package/build-module/archives/index.js +19 -0
- package/build-module/archives/index.js.map +1 -1
- package/build-module/archives/init.js +6 -0
- package/build-module/archives/init.js.map +1 -0
- package/build-module/audio/edit.js +11 -8
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/index.js +12 -8
- package/build-module/audio/index.js.map +1 -1
- package/build-module/audio/init.js +6 -0
- package/build-module/audio/init.js.map +1 -0
- package/build-module/audio/transforms.native.js +1 -1
- package/build-module/audio/transforms.native.js.map +1 -1
- package/build-module/avatar/index.js +8 -1
- package/build-module/avatar/index.js.map +1 -1
- package/build-module/avatar/init.js +6 -0
- package/build-module/avatar/init.js.map +1 -0
- package/build-module/block/edit.js +2 -5
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/index.js +6 -0
- package/build-module/block/index.js.map +1 -1
- package/build-module/block/init.js +6 -0
- package/build-module/block/init.js.map +1 -0
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/index.js +11 -0
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/init.js +6 -0
- package/build-module/button/init.js.map +1 -0
- package/build-module/buttons/edit.js +19 -4
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/index.js +19 -0
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/buttons/init.js +6 -0
- package/build-module/buttons/init.js.map +1 -0
- package/build-module/buttons/save.js +22 -2
- package/build-module/buttons/save.js.map +1 -1
- package/build-module/buttons/transforms.js +13 -0
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/buttons/transforms.native.js +1 -1
- package/build-module/buttons/transforms.native.js.map +1 -1
- package/build-module/calendar/index.js +19 -1
- package/build-module/calendar/index.js.map +1 -1
- package/build-module/calendar/init.js +6 -0
- package/build-module/calendar/init.js.map +1 -0
- package/build-module/categories/edit.js +23 -20
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +10 -0
- package/build-module/categories/index.js.map +1 -1
- package/build-module/categories/init.js +6 -0
- package/build-module/categories/init.js.map +1 -0
- package/build-module/code/index.js +6 -0
- package/build-module/code/index.js.map +1 -1
- package/build-module/code/init.js +6 -0
- package/build-module/code/init.js.map +1 -0
- package/build-module/code/transforms.js +12 -0
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/code/transforms.native.js +1 -1
- package/build-module/code/transforms.native.js.map +1 -1
- package/build-module/column/edit.js +1 -1
- package/build-module/column/edit.js.map +1 -1
- package/build-module/column/index.js +7 -1
- package/build-module/column/index.js.map +1 -1
- package/build-module/column/init.js +6 -0
- package/build-module/column/init.js.map +1 -0
- package/build-module/columns/index.js +8 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/columns/init.js +6 -0
- package/build-module/columns/init.js.map +1 -0
- package/build-module/columns/transforms.js +10 -1
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/columns/transforms.native.js +1 -1
- package/build-module/columns/transforms.native.js.map +1 -1
- package/build-module/comment-author-avatar/index.js +6 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comment-author-avatar/init.js +6 -0
- package/build-module/comment-author-avatar/init.js.map +1 -0
- package/build-module/comment-author-name/index.js +6 -0
- package/build-module/comment-author-name/index.js.map +1 -1
- package/build-module/comment-author-name/init.js +6 -0
- package/build-module/comment-author-name/init.js.map +1 -0
- package/build-module/comment-content/index.js +6 -0
- package/build-module/comment-content/index.js.map +1 -1
- package/build-module/comment-content/init.js +6 -0
- package/build-module/comment-content/init.js.map +1 -0
- package/build-module/comment-date/edit.js +1 -1
- package/build-module/comment-date/edit.js.map +1 -1
- package/build-module/comment-date/index.js +10 -0
- package/build-module/comment-date/index.js.map +1 -1
- package/build-module/comment-date/init.js +6 -0
- package/build-module/comment-date/init.js.map +1 -0
- package/build-module/comment-edit-link/index.js +10 -0
- package/build-module/comment-edit-link/index.js.map +1 -1
- package/build-module/comment-edit-link/init.js +6 -0
- package/build-module/comment-edit-link/init.js.map +1 -0
- package/build-module/comment-reply-link/index.js +10 -0
- package/build-module/comment-reply-link/index.js.map +1 -1
- package/build-module/comment-reply-link/init.js +6 -0
- package/build-module/comment-reply-link/init.js.map +1 -0
- package/build-module/comment-template/index.js +6 -0
- package/build-module/comment-template/index.js.map +1 -1
- package/build-module/comment-template/init.js +6 -0
- package/build-module/comment-template/init.js.map +1 -0
- package/build-module/comments/edit/comments-legacy.js +1 -1
- package/build-module/comments/edit/comments-legacy.js.map +1 -1
- package/build-module/comments/index.js +6 -0
- package/build-module/comments/index.js.map +1 -1
- package/build-module/comments/init.js +6 -0
- package/build-module/comments/init.js.map +1 -0
- package/build-module/comments-pagination/edit.js +2 -1
- package/build-module/comments-pagination/edit.js.map +1 -1
- package/build-module/comments-pagination/index.js +6 -0
- package/build-module/comments-pagination/index.js.map +1 -1
- package/build-module/comments-pagination/init.js +6 -0
- package/build-module/comments-pagination/init.js.map +1 -0
- package/build-module/comments-pagination-next/index.js +6 -0
- package/build-module/comments-pagination-next/index.js.map +1 -1
- package/build-module/comments-pagination-next/init.js +6 -0
- package/build-module/comments-pagination-next/init.js.map +1 -0
- package/build-module/comments-pagination-numbers/index.js +6 -0
- package/build-module/comments-pagination-numbers/index.js.map +1 -1
- package/build-module/comments-pagination-numbers/init.js +6 -0
- package/build-module/comments-pagination-numbers/init.js.map +1 -0
- package/build-module/comments-pagination-previous/index.js +6 -0
- package/build-module/comments-pagination-previous/index.js.map +1 -1
- package/build-module/comments-pagination-previous/init.js +6 -0
- package/build-module/comments-pagination-previous/init.js.map +1 -0
- package/build-module/comments-title/index.js +6 -0
- package/build-module/comments-title/index.js.map +1 -1
- package/build-module/comments-title/init.js +6 -0
- package/build-module/comments-title/init.js.map +1 -0
- package/build-module/cover/index.js +7 -1
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/init.js +6 -0
- package/build-module/cover/init.js.map +1 -0
- package/build-module/cover/transforms.native.js +1 -1
- package/build-module/cover/transforms.native.js.map +1 -1
- package/build-module/embed/deprecated.js +1 -6
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/index.js +7 -6
- package/build-module/embed/index.js.map +1 -1
- package/build-module/embed/init.js +6 -0
- package/build-module/embed/init.js.map +1 -0
- package/build-module/embed/transforms.js +1 -6
- package/build-module/embed/transforms.js.map +1 -1
- package/build-module/embed/transforms.native.js +1 -1
- package/build-module/embed/transforms.native.js.map +1 -1
- package/build-module/embed/util.js +1 -6
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/deprecated.js +113 -4
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +8 -7
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/index.js +6 -0
- package/build-module/file/index.js.map +1 -1
- package/build-module/file/init.js +6 -0
- package/build-module/file/init.js.map +1 -0
- package/build-module/file/save.js +1 -4
- package/build-module/file/save.js.map +1 -1
- package/build-module/file/transforms.native.js +1 -1
- package/build-module/file/transforms.native.js.map +1 -1
- package/build-module/freeform/index.js +6 -0
- package/build-module/freeform/index.js.map +1 -1
- package/build-module/freeform/init.js +6 -0
- package/build-module/freeform/init.js.map +1 -0
- package/build-module/gallery/edit.js +12 -13
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gap-styles.js +6 -5
- package/build-module/gallery/gap-styles.js.map +1 -1
- package/build-module/gallery/index.js +8 -0
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/init.js +6 -0
- package/build-module/gallery/init.js.map +1 -0
- package/build-module/gallery/transforms.native.js +1 -1
- package/build-module/gallery/transforms.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js +2 -2
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js +11 -3
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/group/index.js +7 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/init.js +6 -0
- package/build-module/group/init.js.map +1 -0
- package/build-module/heading/index.js +7 -0
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/init.js +6 -0
- package/build-module/heading/init.js.map +1 -0
- package/build-module/heading/transforms.js +1 -0
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/heading/transforms.native.js +1 -1
- package/build-module/heading/transforms.native.js.map +1 -1
- package/build-module/home-link/index.js +20 -1
- package/build-module/home-link/index.js.map +1 -1
- package/build-module/home-link/init.js +6 -0
- package/build-module/home-link/init.js.map +1 -0
- package/build-module/html/index.js +6 -0
- package/build-module/html/index.js.map +1 -1
- package/build-module/html/init.js +6 -0
- package/build-module/html/init.js.map +1 -0
- package/build-module/image/edit.js +32 -16
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +5 -4
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +6 -5
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/init.js +6 -0
- package/build-module/image/init.js.map +1 -0
- package/build-module/image/transforms.js +2 -1
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/image/transforms.native.js +1 -1
- package/build-module/image/transforms.native.js.map +1 -1
- package/build-module/image/use-client-width.js +3 -1
- package/build-module/image/use-client-width.js.map +1 -1
- package/build-module/index.js +20 -33
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +9 -52
- package/build-module/index.native.js.map +1 -1
- package/build-module/latest-comments/index.js +6 -0
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/latest-comments/init.js +6 -0
- package/build-module/latest-comments/init.js.map +1 -0
- package/build-module/latest-posts/deprecated.js +14 -1
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -4
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/index.js +20 -1
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/latest-posts/init.js +6 -0
- package/build-module/latest-posts/init.js.map +1 -0
- package/build-module/list/deprecated.js +83 -1
- package/build-module/list/deprecated.js.map +1 -1
- package/build-module/list/edit.js +147 -134
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/index.js +43 -32
- package/build-module/list/index.js.map +1 -1
- package/build-module/list/init.js +6 -0
- package/build-module/list/init.js.map +1 -0
- package/build-module/list/save.js +2 -6
- package/build-module/list/save.js.map +1 -1
- package/build-module/list/{v2/tag-name.js → tag-name.js} +0 -0
- package/build-module/list/tag-name.js.map +1 -0
- package/build-module/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
- package/build-module/list/tag-name.native.js.map +1 -0
- package/build-module/list/transforms.js +62 -97
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/transforms.native.js +1 -1
- package/build-module/list/transforms.native.js.map +1 -1
- package/build-module/list/{v2/migrate.js → utils.js} +9 -9
- package/build-module/list/utils.js.map +1 -0
- package/build-module/list-item/edit.native.js +45 -13
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/use-copy.js +2 -0
- package/build-module/list-item/hooks/use-copy.js.map +1 -1
- package/build-module/list-item/hooks/use-enter.native.js +67 -0
- package/build-module/list-item/hooks/use-enter.native.js.map +1 -0
- package/build-module/list-item/hooks/use-merge.js +0 -1
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +4 -5
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +10 -1
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/list-item/index.js +6 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/init.js +6 -0
- package/build-module/list-item/init.js.map +1 -0
- package/build-module/list-item/utils.js +8 -4
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/loginout/index.js +6 -0
- package/build-module/loginout/index.js.map +1 -1
- package/build-module/loginout/init.js +6 -0
- package/build-module/loginout/init.js.map +1 -0
- package/build-module/media-text/index.js +20 -5
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/init.js +6 -0
- package/build-module/media-text/init.js.map +1 -0
- package/build-module/media-text/media-container.js +9 -7
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/transforms.native.js +1 -1
- package/build-module/media-text/transforms.native.js.map +1 -1
- package/build-module/missing/index.js +6 -0
- package/build-module/missing/index.js.map +1 -1
- package/build-module/missing/init.js +6 -0
- package/build-module/missing/init.js.map +1 -0
- package/build-module/more/index.js +6 -0
- package/build-module/more/index.js.map +1 -1
- package/build-module/more/init.js +6 -0
- package/build-module/more/init.js.map +1 -0
- package/build-module/more/transforms.native.js +1 -1
- package/build-module/more/transforms.native.js.map +1 -1
- package/build-module/navigation/edit/index.js +124 -74
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +83 -29
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/overlay-menu-icon.js +20 -1
- package/build-module/navigation/edit/overlay-menu-icon.js.map +1 -1
- package/build-module/navigation/edit/overlay-menu-preview.js +59 -0
- package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -0
- package/build-module/navigation/edit/responsive-wrapper.js +11 -6
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +5 -15
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +22 -2
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js +2 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/index.js +11 -0
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/init.js +6 -0
- package/build-module/navigation/init.js.map +1 -0
- package/build-module/navigation/use-navigation-menu.js +7 -6
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-link/edit.js +15 -2
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/index.js +24 -4
- package/build-module/navigation-link/index.js.map +1 -1
- package/build-module/navigation-link/init.js +6 -0
- package/build-module/navigation-link/init.js.map +1 -0
- package/build-module/navigation-submenu/edit.js +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/navigation-submenu/index.js +6 -0
- package/build-module/navigation-submenu/index.js.map +1 -1
- package/build-module/navigation-submenu/init.js +6 -0
- package/build-module/navigation-submenu/init.js.map +1 -0
- package/build-module/nextpage/index.js +6 -0
- package/build-module/nextpage/index.js.map +1 -1
- package/build-module/nextpage/init.js +6 -0
- package/build-module/nextpage/init.js.map +1 -0
- package/build-module/nextpage/transforms.native.js +1 -1
- package/build-module/nextpage/transforms.native.js.map +1 -1
- package/build-module/page-list/index.js +6 -0
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list/init.js +6 -0
- package/build-module/page-list/init.js.map +1 -0
- package/build-module/paragraph/index.js +8 -0
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/init.js +6 -0
- package/build-module/paragraph/init.js.map +1 -0
- package/build-module/paragraph/transforms.js +2 -0
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/paragraph/transforms.native.js +1 -1
- package/build-module/paragraph/transforms.native.js.map +1 -1
- package/build-module/pattern/index.js +6 -0
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/pattern/init.js +6 -0
- package/build-module/pattern/init.js.map +1 -0
- package/build-module/post-author/edit.js +1 -2
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author/index.js +11 -5
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-author/init.js +6 -0
- package/build-module/post-author/init.js.map +1 -0
- package/build-module/post-author-biography/index.js +11 -5
- package/build-module/post-author-biography/index.js.map +1 -1
- package/build-module/post-author-biography/init.js +6 -0
- package/build-module/post-author-biography/init.js.map +1 -0
- package/build-module/post-author-name/index.js +11 -5
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-author-name/init.js +6 -0
- package/build-module/post-author-name/init.js.map +1 -0
- package/build-module/post-comment/index.js +6 -0
- package/build-module/post-comment/index.js.map +1 -1
- package/build-module/post-comment/init.js +6 -0
- package/build-module/post-comment/init.js.map +1 -0
- package/build-module/post-comments-count/index.js +6 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-count/init.js +6 -0
- package/build-module/post-comments-count/init.js.map +1 -0
- package/build-module/post-comments-form/index.js +6 -0
- package/build-module/post-comments-form/index.js.map +1 -1
- package/build-module/post-comments-form/init.js +6 -0
- package/build-module/post-comments-form/init.js.map +1 -0
- package/build-module/post-comments-link/index.js +6 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-comments-link/init.js +6 -0
- package/build-module/post-comments-link/init.js.map +1 -0
- package/build-module/post-content/index.js +20 -1
- package/build-module/post-content/index.js.map +1 -1
- package/build-module/post-content/init.js +6 -0
- package/build-module/post-content/init.js.map +1 -0
- package/build-module/post-date/edit.js +1 -1
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-date/index.js +6 -0
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-date/init.js +6 -0
- package/build-module/post-date/init.js.map +1 -0
- package/build-module/post-excerpt/index.js +10 -2
- package/build-module/post-excerpt/index.js.map +1 -1
- package/build-module/post-excerpt/init.js +6 -0
- package/build-module/post-excerpt/init.js.map +1 -0
- package/build-module/post-featured-image/edit.js +15 -2
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +22 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-featured-image/init.js +6 -0
- package/build-module/post-featured-image/init.js.map +1 -0
- package/build-module/post-featured-image/overlay.js +103 -0
- package/build-module/post-featured-image/overlay.js.map +1 -0
- package/build-module/post-featured-image/utils.js +11 -0
- package/build-module/post-featured-image/utils.js.map +1 -0
- package/build-module/post-navigation-link/index.js +6 -0
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-navigation-link/init.js +6 -0
- package/build-module/post-navigation-link/init.js.map +1 -0
- package/build-module/post-template/edit.js +38 -4
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-template/index.js +6 -0
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/post-template/init.js +6 -0
- package/build-module/post-template/init.js.map +1 -0
- package/build-module/post-terms/edit.js +0 -1
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/index.js +10 -3
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-terms/init.js +6 -0
- package/build-module/post-terms/init.js.map +1 -0
- package/build-module/post-terms/use-post-terms.js +5 -25
- package/build-module/post-terms/use-post-terms.js.map +1 -1
- package/build-module/post-title/index.js +6 -0
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/post-title/init.js +6 -0
- package/build-module/post-title/init.js.map +1 -0
- package/build-module/preformatted/index.js +6 -0
- package/build-module/preformatted/index.js.map +1 -1
- package/build-module/preformatted/init.js +6 -0
- package/build-module/preformatted/init.js.map +1 -0
- package/build-module/preformatted/transforms.native.js +1 -1
- package/build-module/preformatted/transforms.native.js.map +1 -1
- package/build-module/pullquote/index.js +6 -0
- package/build-module/pullquote/index.js.map +1 -1
- package/build-module/pullquote/init.js +6 -0
- package/build-module/pullquote/init.js.map +1 -0
- package/build-module/pullquote/transforms.native.js +1 -1
- package/build-module/pullquote/transforms.native.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +23 -25
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/index.js +13 -4
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/init.js +6 -0
- package/build-module/query/init.js.map +1 -0
- package/build-module/query/utils.js +107 -1
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-no-results/index.js +19 -0
- package/build-module/query-no-results/index.js.map +1 -1
- package/build-module/query-no-results/init.js +6 -0
- package/build-module/query-no-results/init.js.map +1 -0
- package/build-module/query-pagination/edit.js +2 -1
- package/build-module/query-pagination/edit.js.map +1 -1
- package/build-module/query-pagination/index.js +19 -0
- package/build-module/query-pagination/index.js.map +1 -1
- package/build-module/query-pagination/init.js +6 -0
- package/build-module/query-pagination/init.js.map +1 -0
- package/build-module/query-pagination-next/index.js +10 -2
- package/build-module/query-pagination-next/index.js.map +1 -1
- package/build-module/query-pagination-next/init.js +6 -0
- package/build-module/query-pagination-next/init.js.map +1 -0
- package/build-module/query-pagination-numbers/index.js +10 -2
- package/build-module/query-pagination-numbers/index.js.map +1 -1
- package/build-module/query-pagination-numbers/init.js +6 -0
- package/build-module/query-pagination-numbers/init.js.map +1 -0
- package/build-module/query-pagination-previous/index.js +10 -2
- package/build-module/query-pagination-previous/index.js.map +1 -1
- package/build-module/query-pagination-previous/init.js +6 -0
- package/build-module/query-pagination-previous/init.js.map +1 -0
- package/build-module/query-title/index.js +12 -5
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/query-title/init.js +6 -0
- package/build-module/query-title/init.js.map +1 -0
- package/build-module/quote/index.js +10 -2
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/init.js +6 -0
- package/build-module/quote/init.js.map +1 -0
- package/build-module/quote/transforms.js +7 -0
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/quote/transforms.native.js +1 -1
- package/build-module/quote/transforms.native.js.map +1 -1
- package/build-module/read-more/index.js +6 -0
- package/build-module/read-more/index.js.map +1 -1
- package/build-module/read-more/init.js +6 -0
- package/build-module/read-more/init.js.map +1 -0
- package/build-module/rss/index.js +6 -0
- package/build-module/rss/index.js.map +1 -1
- package/build-module/rss/init.js +6 -0
- package/build-module/rss/init.js.map +1 -0
- package/build-module/search/edit.js +20 -9
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +21 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/search/init.js +6 -0
- package/build-module/search/init.js.map +1 -0
- package/build-module/separator/index.js +6 -0
- package/build-module/separator/index.js.map +1 -1
- package/build-module/separator/init.js +6 -0
- package/build-module/separator/init.js.map +1 -0
- package/build-module/separator/transforms.native.js +1 -1
- package/build-module/separator/transforms.native.js.map +1 -1
- package/build-module/shortcode/index.js +6 -0
- package/build-module/shortcode/index.js.map +1 -1
- package/build-module/shortcode/init.js +6 -0
- package/build-module/shortcode/init.js.map +1 -0
- package/build-module/shortcode/transforms.native.js +1 -1
- package/build-module/shortcode/transforms.native.js.map +1 -1
- package/build-module/site-logo/index.js +10 -0
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/site-logo/init.js +6 -0
- package/build-module/site-logo/init.js.map +1 -0
- package/build-module/site-tagline/index.js +7 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-tagline/init.js +6 -0
- package/build-module/site-tagline/init.js.map +1 -0
- package/build-module/site-title/index.js +7 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/site-title/init.js +6 -0
- package/build-module/site-title/init.js.map +1 -0
- package/build-module/social-link/index.js +6 -0
- package/build-module/social-link/index.js.map +1 -1
- package/build-module/social-link/init.js +6 -0
- package/build-module/social-link/init.js.map +1 -0
- package/build-module/social-links/edit.js +45 -13
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/index.js +17 -1
- package/build-module/social-links/index.js.map +1 -1
- package/build-module/social-links/init.js +6 -0
- package/build-module/social-links/init.js.map +1 -0
- package/build-module/spacer/index.js +6 -0
- package/build-module/spacer/index.js.map +1 -1
- package/build-module/spacer/init.js +6 -0
- package/build-module/spacer/init.js.map +1 -0
- package/build-module/table/index.js +9 -6
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/init.js +6 -0
- package/build-module/table/init.js.map +1 -0
- package/build-module/table-of-contents/index.js +19 -0
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/table-of-contents/init.js +6 -0
- package/build-module/table-of-contents/init.js.map +1 -0
- package/build-module/tag-cloud/index.js +6 -0
- package/build-module/tag-cloud/index.js.map +1 -1
- package/build-module/tag-cloud/init.js +6 -0
- package/build-module/tag-cloud/init.js.map +1 -0
- package/build-module/template-part/edit/index.js +2 -7
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/index.js +27 -20
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/template-part/init.js +6 -0
- package/build-module/template-part/init.js.map +1 -0
- package/build-module/term-description/index.js +12 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/term-description/init.js +6 -0
- package/build-module/term-description/init.js.map +1 -0
- package/build-module/text-columns/index.js +6 -0
- package/build-module/text-columns/index.js.map +1 -1
- package/build-module/text-columns/init.js +6 -0
- package/build-module/text-columns/init.js.map +1 -0
- package/build-module/text-columns/transforms.native.js +1 -1
- package/build-module/text-columns/transforms.native.js.map +1 -1
- package/build-module/utils/init-block.js +29 -0
- package/build-module/utils/init-block.js.map +1 -0
- package/build-module/utils/init-block.native.js +43 -0
- package/build-module/utils/init-block.native.js.map +1 -0
- package/build-module/{is-block-metadata-experimental.js → utils/is-block-metadata-experimental.js} +0 -0
- package/build-module/utils/is-block-metadata-experimental.js.map +1 -0
- package/build-module/utils/migrate-font-family.js +10 -16
- package/build-module/utils/migrate-font-family.js.map +1 -1
- package/build-module/{transformationCategories.native.js → utils/transformation-categories.native.js} +1 -1
- package/build-module/utils/transformation-categories.native.js.map +1 -0
- package/build-module/verse/index.js +7 -0
- package/build-module/verse/index.js.map +1 -1
- package/build-module/verse/init.js +6 -0
- package/build-module/verse/init.js.map +1 -0
- package/build-module/verse/transforms.native.js +1 -1
- package/build-module/verse/transforms.native.js.map +1 -1
- package/build-module/video/edit.js +13 -12
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/index.js +13 -8
- package/build-module/video/index.js.map +1 -1
- package/build-module/video/init.js +6 -0
- package/build-module/video/init.js.map +1 -0
- package/build-module/video/transforms.native.js +1 -1
- package/build-module/video/transforms.native.js.map +1 -1
- package/build-style/audio/theme-rtl.css +4 -0
- package/build-style/audio/theme.css +4 -0
- package/build-style/avatar/style-rtl.css +3 -0
- package/build-style/avatar/style.css +3 -0
- package/build-style/button/editor-rtl.css +4 -0
- package/build-style/button/editor.css +4 -0
- package/build-style/button/style-rtl.css +5 -4
- package/build-style/button/style.css +5 -4
- package/build-style/buttons/editor-rtl.css +3 -0
- package/build-style/buttons/editor.css +3 -0
- package/build-style/buttons/style-rtl.css +7 -0
- package/build-style/buttons/style.css +7 -0
- package/build-style/categories/style-rtl.css +3 -0
- package/build-style/categories/style.css +3 -0
- package/build-style/code/editor-rtl.css +79 -0
- package/build-style/code/editor.css +79 -0
- package/build-style/common-rtl.css +7 -0
- package/build-style/common.css +7 -0
- package/build-style/cover/editor-rtl.css +0 -3
- package/build-style/cover/editor.css +0 -3
- package/build-style/cover/style-rtl.css +2 -2
- package/build-style/cover/style.css +2 -0
- package/build-style/editor-rtl.css +46 -44
- package/build-style/editor.css +46 -44
- package/build-style/embed/theme-rtl.css +4 -0
- package/build-style/embed/theme.css +4 -0
- package/build-style/group/editor-rtl.css +2 -22
- package/build-style/group/editor.css +2 -22
- package/build-style/image/theme-rtl.css +4 -0
- package/build-style/image/theme.css +4 -0
- package/build-style/media-text/style-rtl.css +1 -0
- package/build-style/media-text/style.css +1 -0
- package/build-style/navigation/editor-rtl.css +23 -19
- package/build-style/navigation/editor.css +23 -19
- package/build-style/navigation/style-rtl.css +28 -4
- package/build-style/navigation/style.css +28 -4
- package/build-style/post-featured-image/editor-rtl.css +5 -0
- package/build-style/post-featured-image/editor.css +5 -0
- package/build-style/post-featured-image/style-rtl.css +45 -0
- package/build-style/post-featured-image/style.css +45 -0
- package/build-style/search/style-rtl.css +2 -3
- package/build-style/search/style.css +2 -3
- package/build-style/separator/style-rtl.css +2 -0
- package/build-style/separator/style.css +2 -0
- package/build-style/site-logo/editor-rtl.css +5 -0
- package/build-style/site-logo/editor.css +5 -0
- package/build-style/site-logo/style-rtl.css +1 -0
- package/build-style/site-logo/style.css +1 -0
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +108 -15
- package/build-style/style.css +108 -13
- package/build-style/table/theme-rtl.css +3 -0
- package/build-style/table/theme.css +3 -0
- package/build-style/theme-rtl.css +19 -0
- package/build-style/theme.css +19 -0
- package/build-style/video/theme-rtl.css +4 -0
- package/build-style/video/theme.css +4 -0
- package/package.json +29 -32
- package/src/archives/block.json +13 -0
- package/src/archives/index.js +3 -0
- package/src/archives/init.js +6 -0
- package/src/audio/block.json +6 -8
- package/src/audio/edit.js +6 -8
- package/src/audio/index.js +3 -0
- package/src/audio/init.js +6 -0
- package/src/audio/theme.scss +4 -0
- package/src/audio/transforms.native.js +1 -1
- package/src/avatar/block.json +2 -1
- package/src/avatar/index.js +3 -0
- package/src/avatar/init.js +6 -0
- package/src/avatar/style.scss +3 -0
- package/src/block/edit.js +3 -10
- package/src/block/index.js +3 -0
- package/src/block/init.js +6 -0
- package/src/block/test/edit.native.js +4 -0
- package/src/button/block.json +5 -0
- package/src/button/edit.js +1 -1
- package/src/button/editor.scss +4 -0
- package/src/button/index.js +3 -0
- package/src/button/init.js +6 -0
- package/src/button/style.scss +5 -8
- package/src/buttons/block.json +13 -0
- package/src/buttons/edit.js +12 -2
- package/src/buttons/editor.scss +6 -0
- package/src/buttons/index.js +3 -0
- package/src/buttons/init.js +6 -0
- package/src/buttons/save.js +13 -2
- package/src/buttons/style.scss +13 -0
- package/src/buttons/transforms.native.js +1 -1
- package/src/calendar/block.json +13 -1
- package/src/calendar/index.js +3 -0
- package/src/calendar/init.js +6 -0
- package/src/categories/block.json +4 -0
- package/src/categories/edit.js +37 -25
- package/src/categories/index.js +3 -0
- package/src/categories/index.php +1 -1
- package/src/categories/init.js +6 -0
- package/src/categories/style.scss +3 -0
- package/src/code/editor.scss +3 -0
- package/src/code/index.js +3 -0
- package/src/code/init.js +6 -0
- package/src/code/transforms.js +9 -0
- package/src/code/transforms.native.js +1 -1
- package/src/column/block.json +1 -1
- package/src/column/edit.js +1 -6
- package/src/column/index.js +3 -0
- package/src/column/init.js +6 -0
- package/src/columns/block.json +2 -1
- package/src/columns/index.js +3 -0
- package/src/columns/init.js +6 -0
- package/src/columns/transforms.js +17 -3
- package/src/columns/transforms.native.js +1 -1
- package/src/comment-author-avatar/index.js +3 -0
- package/src/comment-author-avatar/init.js +6 -0
- package/src/comment-author-name/index.js +3 -0
- package/src/comment-author-name/init.js +6 -0
- package/src/comment-content/index.js +3 -0
- package/src/comment-content/init.js +6 -0
- package/src/comment-date/block.json +4 -0
- package/src/comment-date/edit.js +1 -4
- package/src/comment-date/index.js +3 -0
- package/src/comment-date/init.js +6 -0
- package/src/comment-edit-link/block.json +4 -0
- package/src/comment-edit-link/index.js +3 -0
- package/src/comment-edit-link/init.js +6 -0
- package/src/comment-reply-link/block.json +4 -0
- package/src/comment-reply-link/index.js +3 -0
- package/src/comment-reply-link/init.js +6 -0
- package/src/comment-template/index.js +3 -0
- package/src/comment-template/init.js +6 -0
- package/src/comments/edit/comments-legacy.js +4 -5
- package/src/comments/index.js +3 -0
- package/src/comments/index.php +1 -1
- package/src/comments/init.js +6 -0
- package/src/comments-pagination/edit.js +6 -5
- package/src/comments-pagination/index.js +3 -0
- package/src/comments-pagination/init.js +6 -0
- package/src/comments-pagination-next/index.js +3 -0
- package/src/comments-pagination-next/init.js +6 -0
- package/src/comments-pagination-numbers/index.js +3 -0
- package/src/comments-pagination-numbers/init.js +6 -0
- package/src/comments-pagination-previous/index.js +3 -0
- package/src/comments-pagination-previous/init.js +6 -0
- package/src/comments-title/index.js +3 -0
- package/src/comments-title/init.js +6 -0
- package/src/common.scss +7 -0
- package/src/cover/block.json +1 -1
- package/src/cover/editor.scss +0 -4
- package/src/cover/index.js +3 -0
- package/src/cover/init.js +6 -0
- package/src/cover/style.scss +4 -0
- package/src/cover/test/edit.native.js +2 -3
- package/src/cover/transforms.native.js +1 -1
- package/src/editor.scss +1 -0
- package/src/embed/block.json +1 -6
- package/src/embed/index.js +3 -0
- package/src/embed/init.js +6 -0
- package/src/embed/test/index.native.js +19 -3
- package/src/embed/theme.scss +4 -0
- package/src/embed/transforms.native.js +1 -1
- package/src/file/deprecated.js +249 -112
- package/src/file/edit.js +4 -13
- package/src/file/index.js +3 -0
- package/src/file/index.php +22 -0
- package/src/file/init.js +6 -0
- package/src/file/save.js +1 -8
- package/src/file/transforms.native.js +1 -1
- package/src/freeform/index.js +3 -0
- package/src/freeform/init.js +6 -0
- package/src/gallery/block.json +2 -0
- package/src/gallery/edit.js +8 -15
- package/src/gallery/gap-styles.js +10 -6
- package/src/gallery/index.js +3 -0
- package/src/gallery/index.php +24 -3
- package/src/gallery/init.js +6 -0
- package/src/gallery/transforms.native.js +1 -1
- package/src/gallery/v1/edit.js +2 -12
- package/src/gallery/v1/gallery-image.js +7 -3
- package/src/group/block.json +1 -1
- package/src/group/editor.scss +1 -28
- package/src/group/index.js +3 -0
- package/src/group/init.js +6 -0
- package/src/heading/block.json +1 -0
- package/src/heading/index.js +3 -0
- package/src/heading/init.js +6 -0
- package/src/heading/transforms.native.js +1 -1
- package/src/home-link/block.json +14 -1
- package/src/home-link/index.js +3 -0
- package/src/home-link/index.php +1 -1
- package/src/home-link/init.js +6 -0
- package/src/html/index.js +3 -0
- package/src/html/init.js +6 -0
- package/src/image/block.json +0 -5
- package/src/image/edit.js +28 -17
- package/src/image/image.js +12 -6
- package/src/image/index.js +3 -0
- package/src/image/init.js +6 -0
- package/src/image/theme.scss +4 -0
- package/src/image/transforms.js +4 -1
- package/src/image/transforms.native.js +1 -1
- package/src/image/use-client-width.js +1 -1
- package/src/index.js +104 -121
- package/src/index.native.js +6 -49
- package/src/latest-comments/index.js +3 -0
- package/src/latest-comments/init.js +6 -0
- package/src/latest-posts/block.json +14 -1
- package/src/latest-posts/edit.js +2 -2
- package/src/latest-posts/index.js +3 -0
- package/src/latest-posts/init.js +6 -0
- package/src/list/block.json +8 -3
- package/src/list/deprecated.js +71 -1
- package/src/list/edit.js +142 -133
- package/src/list/index.js +28 -24
- package/src/list/init.js +6 -0
- package/src/list/save.js +3 -4
- package/src/list/{v2/tag-name.js → tag-name.js} +0 -0
- package/src/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
- package/src/list/test/__snapshots__/edit.native.js.snap +14 -2
- package/src/list/test/edit.native.js +0 -154
- package/src/list/transforms.js +57 -111
- package/src/list/transforms.native.js +1 -1
- package/src/list/{v2/migrate.js → utils.js} +6 -9
- package/src/list-item/block.json +0 -1
- package/src/list-item/edit.native.js +55 -8
- package/src/list-item/hooks/use-copy.js +2 -0
- package/src/list-item/hooks/use-enter.native.js +77 -0
- package/src/list-item/hooks/use-outdent-list-item.js +4 -4
- package/src/list-item/hooks/use-space.js +10 -2
- package/src/list-item/index.js +3 -0
- package/src/list-item/init.js +6 -0
- package/src/list-item/style.native.scss +8 -0
- package/src/loginout/index.js +3 -0
- package/src/loginout/init.js +6 -0
- package/src/media-text/block.json +14 -5
- package/src/media-text/index.js +3 -0
- package/src/media-text/init.js +6 -0
- package/src/media-text/media-container.js +7 -12
- package/src/media-text/style.scss +2 -0
- package/src/media-text/transforms.native.js +1 -1
- package/src/missing/index.js +3 -0
- package/src/missing/init.js +6 -0
- package/src/more/index.js +3 -0
- package/src/more/init.js +6 -0
- package/src/more/transforms.native.js +1 -1
- package/src/navigation/block.json +5 -0
- package/src/navigation/edit/index.js +184 -112
- package/src/navigation/edit/navigation-menu-selector.js +134 -49
- package/src/navigation/edit/overlay-menu-icon.js +10 -1
- package/src/navigation/edit/overlay-menu-preview.js +57 -0
- package/src/navigation/edit/responsive-wrapper.js +10 -4
- package/src/navigation/edit/unsaved-inner-blocks.js +14 -24
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +27 -3
- package/src/navigation/edit/use-create-navigation-menu.js +5 -2
- package/src/navigation/editor.scss +21 -23
- package/src/navigation/index.js +3 -0
- package/src/navigation/index.php +50 -28
- package/src/navigation/init.js +6 -0
- package/src/navigation/style.scss +28 -4
- package/src/navigation/test/use-navigation-menu.js +23 -6
- package/src/navigation/use-navigation-menu.js +11 -6
- package/src/navigation-link/block.json +14 -1
- package/src/navigation-link/edit.js +1 -1
- package/src/navigation-link/index.js +10 -6
- package/src/navigation-link/index.php +1 -1
- package/src/navigation-link/init.js +6 -0
- package/src/navigation-submenu/edit.js +1 -1
- package/src/navigation-submenu/index.js +3 -1
- package/src/navigation-submenu/init.js +6 -0
- package/src/nextpage/index.js +3 -0
- package/src/nextpage/init.js +6 -0
- package/src/nextpage/transforms.native.js +1 -1
- package/src/page-list/index.js +3 -0
- package/src/page-list/init.js +6 -0
- package/src/paragraph/block.json +2 -0
- package/src/paragraph/index.js +3 -0
- package/src/paragraph/init.js +6 -0
- package/src/paragraph/transforms.native.js +1 -1
- package/src/pattern/index.js +3 -0
- package/src/pattern/init.js +6 -0
- package/src/post-author/edit.js +1 -2
- package/src/post-author/index.js +8 -5
- package/src/post-author/init.js +6 -0
- package/src/post-author-biography/index.js +8 -5
- package/src/post-author-biography/init.js +6 -0
- package/src/post-author-name/index.js +8 -5
- package/src/post-author-name/init.js +6 -0
- package/src/post-comment/index.js +3 -0
- package/src/post-comment/init.js +6 -0
- package/src/post-comments-count/index.js +3 -0
- package/src/post-comments-count/init.js +6 -0
- package/src/post-comments-form/index.js +3 -0
- package/src/post-comments-form/index.php +1 -1
- package/src/post-comments-form/init.js +6 -0
- package/src/post-comments-link/index.js +3 -0
- package/src/post-comments-link/init.js +6 -0
- package/src/post-content/block.json +14 -1
- package/src/post-content/index.js +3 -0
- package/src/post-content/init.js +6 -0
- package/src/post-date/edit.js +1 -4
- package/src/post-date/index.js +3 -0
- package/src/post-date/init.js +6 -0
- package/src/post-excerpt/block.json +4 -2
- package/src/post-excerpt/index.js +3 -0
- package/src/post-excerpt/init.js +6 -0
- package/src/post-featured-image/block.json +16 -0
- package/src/post-featured-image/edit.js +22 -2
- package/src/post-featured-image/editor.scss +77 -70
- package/src/post-featured-image/index.js +3 -0
- package/src/post-featured-image/index.php +88 -7
- package/src/post-featured-image/init.js +6 -0
- package/src/post-featured-image/overlay.js +118 -0
- package/src/post-featured-image/style.scss +22 -0
- package/src/post-featured-image/utils.js +12 -0
- package/src/post-navigation-link/index.js +3 -0
- package/src/post-navigation-link/init.js +6 -0
- package/src/post-template/edit.js +33 -2
- package/src/post-template/index.js +3 -0
- package/src/post-template/init.js +6 -0
- package/src/post-terms/edit.js +0 -1
- package/src/post-terms/index.js +10 -6
- package/src/post-terms/init.js +6 -0
- package/src/post-terms/use-post-terms.js +10 -15
- package/src/post-title/index.js +3 -0
- package/src/post-title/init.js +6 -0
- package/src/preformatted/index.js +3 -0
- package/src/preformatted/init.js +6 -0
- package/src/preformatted/transforms.native.js +1 -1
- package/src/pullquote/index.js +3 -0
- package/src/pullquote/init.js +6 -0
- package/src/pullquote/transforms.native.js +1 -1
- package/src/query/block.json +3 -0
- package/src/query/edit/inspector-controls/index.js +139 -113
- package/src/query/index.js +6 -3
- package/src/query/init.js +6 -0
- package/src/query/utils.js +48 -1
- package/src/query-no-results/block.json +13 -0
- package/src/query-no-results/index.js +3 -0
- package/src/query-no-results/init.js +6 -0
- package/src/query-pagination/block.json +13 -0
- package/src/query-pagination/edit.js +6 -5
- package/src/query-pagination/index.js +3 -0
- package/src/query-pagination/init.js +6 -0
- package/src/query-pagination-next/block.json +4 -2
- package/src/query-pagination-next/index.js +3 -0
- package/src/query-pagination-next/init.js +6 -0
- package/src/query-pagination-numbers/block.json +4 -2
- package/src/query-pagination-numbers/index.js +3 -0
- package/src/query-pagination-numbers/init.js +6 -0
- package/src/query-pagination-previous/block.json +4 -2
- package/src/query-pagination-previous/index.js +3 -0
- package/src/query-pagination-previous/init.js +6 -0
- package/src/query-title/block.json +1 -0
- package/src/query-title/index.js +8 -5
- package/src/query-title/init.js +6 -0
- package/src/quote/block.json +4 -2
- package/src/quote/index.js +3 -0
- package/src/quote/init.js +6 -0
- package/src/quote/transforms.js +10 -0
- package/src/quote/transforms.native.js +1 -1
- package/src/read-more/index.js +3 -0
- package/src/read-more/init.js +6 -0
- package/src/rss/index.js +3 -0
- package/src/rss/init.js +6 -0
- package/src/search/block.json +15 -0
- package/src/search/edit.js +25 -5
- package/src/search/index.js +3 -0
- package/src/search/index.php +114 -9
- package/src/search/init.js +6 -0
- package/src/search/style.scss +4 -3
- package/src/separator/index.js +3 -0
- package/src/separator/init.js +6 -0
- package/src/separator/style.scss +4 -0
- package/src/separator/transforms.native.js +1 -1
- package/src/shortcode/index.js +3 -0
- package/src/shortcode/init.js +6 -0
- package/src/shortcode/transforms.native.js +1 -1
- package/src/site-logo/block.json +4 -0
- package/src/site-logo/editor.scss +7 -0
- package/src/site-logo/index.js +3 -0
- package/src/site-logo/init.js +6 -0
- package/src/site-logo/style.scss +2 -0
- package/src/site-tagline/block.json +1 -0
- package/src/site-tagline/index.js +3 -0
- package/src/site-tagline/init.js +6 -0
- package/src/site-title/block.json +1 -0
- package/src/site-title/index.js +3 -0
- package/src/site-title/init.js +6 -0
- package/src/social-link/index.js +3 -0
- package/src/social-link/init.js +6 -0
- package/src/social-link/socials-without-bg.scss +1 -2
- package/src/social-links/block.json +11 -1
- package/src/social-links/edit.js +47 -20
- package/src/social-links/index.js +3 -0
- package/src/social-links/init.js +6 -0
- package/src/social-links/style.scss +3 -0
- package/src/spacer/index.js +3 -0
- package/src/spacer/init.js +6 -0
- package/src/table/block.json +3 -6
- package/src/table/index.js +3 -0
- package/src/table/init.js +6 -0
- package/src/table/theme.scss +2 -0
- package/src/table-of-contents/block.json +13 -0
- package/src/table-of-contents/index.js +3 -0
- package/src/table-of-contents/init.js +6 -0
- package/src/tag-cloud/index.js +3 -0
- package/src/tag-cloud/init.js +6 -0
- package/src/template-part/edit/index.js +1 -10
- package/src/template-part/index.js +36 -30
- package/src/template-part/index.php +1 -1
- package/src/template-part/init.js +6 -0
- package/src/term-description/block.json +6 -0
- package/src/term-description/index.js +3 -0
- package/src/term-description/init.js +6 -0
- package/src/text-columns/index.js +3 -0
- package/src/text-columns/init.js +6 -0
- package/src/text-columns/transforms.native.js +1 -1
- package/src/utils/init-block.js +20 -0
- package/src/utils/init-block.native.js +40 -0
- package/src/{is-block-metadata-experimental.js → utils/is-block-metadata-experimental.js} +0 -0
- package/src/utils/migrate-font-family.js +7 -15
- package/src/{transformationCategories.native.js → utils/transformation-categories.native.js} +0 -0
- package/src/verse/block.json +1 -0
- package/src/verse/index.js +3 -0
- package/src/verse/init.js +6 -0
- package/src/verse/transforms.native.js +1 -1
- package/src/video/block.json +7 -8
- package/src/video/edit.js +6 -11
- package/src/video/index.js +3 -0
- package/src/video/init.js +6 -0
- package/src/video/theme.scss +4 -0
- package/src/video/transforms.native.js +1 -1
- package/build/is-block-metadata-experimental.js.map +0 -1
- package/build/list/v2/deprecated.js +0 -117
- package/build/list/v2/deprecated.js.map +0 -1
- package/build/list/v2/edit.js +0 -200
- package/build/list/v2/edit.js.map +0 -1
- package/build/list/v2/index.js +0 -36
- package/build/list/v2/index.js.map +0 -1
- package/build/list/v2/migrate.js.map +0 -1
- package/build/list/v2/save.js +0 -34
- package/build/list/v2/save.js.map +0 -1
- package/build/list/v2/tag-name.js.map +0 -1
- package/build/list/v2/tag-name.native.js.map +0 -1
- package/build/list/v2/transforms.js +0 -137
- package/build/list/v2/transforms.js.map +0 -1
- package/build/transformationCategories.native.js.map +0 -1
- package/build-module/is-block-metadata-experimental.js.map +0 -1
- package/build-module/list/v2/deprecated.js +0 -104
- package/build-module/list/v2/deprecated.js.map +0 -1
- package/build-module/list/v2/edit.js +0 -179
- package/build-module/list/v2/edit.js.map +0 -1
- package/build-module/list/v2/index.js +0 -21
- package/build-module/list/v2/index.js.map +0 -1
- package/build-module/list/v2/migrate.js.map +0 -1
- package/build-module/list/v2/save.js +0 -23
- package/build-module/list/v2/save.js.map +0 -1
- package/build-module/list/v2/tag-name.js.map +0 -1
- package/build-module/list/v2/tag-name.native.js.map +0 -1
- package/build-module/list/v2/transforms.js +0 -127
- package/build-module/list/v2/transforms.js.map +0 -1
- package/build-module/transformationCategories.native.js.map +0 -1
- package/src/list/test/migrate.js +0 -158
- package/src/list/v2/deprecated.js +0 -89
- package/src/list/v2/edit.js +0 -192
- package/src/list/v2/index.js +0 -22
- package/src/list/v2/save.js +0 -18
- package/src/list/v2/transforms.js +0 -120
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/edit.js"],"names":["classnames","escape","unescape","createBlock","switchToBlockType","useSelect","useDispatch","Button","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","Tooltip","ToolbarGroup","KeyboardShortcuts","displayShortcut","isKeyboardEvent","ENTER","__","sprintf","BlockControls","BlockIcon","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","addSubmenu","coreStore","useResourcePermissions","decodeEntities","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","newLabel","url","newUrl","opensInNewTab","id","newKind","newType","newLabelWithoutHttp","replace","newUrlWithoutHttp","useNewLabel","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","useIsInvalidLink","isPostType","hasId","postStatus","select","getEntityRecord","status","isInvalid","isDraft","getMissingText","missingText","navStripHTML","html","doc","document","implementation","createHTMLDocument","body","innerHTML","textContent","LinkControlTransforms","clientId","getBlock","blockTransforms","_getBlock","getBlockRootClientId","getBlockTransformItems","featuredBlocks","transforms","filter","item","includes","name","length","map","index","icon","NavigationLinkEdit","attributes","isSelected","insertBlocksAfter","mergeBlocks","onReplace","description","rel","maxNestingLevel","saveEntityRecord","replaceBlock","__unstableMarkNextChangeAsNotPersistent","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","innerBlocks","isAtMaxNesting","isTopLevelLink","isParentOfSelectedBlock","hasChildren","getBlocks","getBlockCount","getBlockName","hasSelectedInnerBlock","getBlockParentsByBlockName","transformToSubmenu","newSubmenu","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","removeLink","userCanCreate","canCreate","handleCreate","pageTitle","postType","page","rendered","onKeyDown","primary","keyCode","blockProps","className","onClick","classes","placeholderText","tooltipText","descriptionValue","titleValue","relValue","labelValue","enter","trim","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape, unescape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, switchToBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n\tKeyboardShortcuts,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\n\tconst {\n\t\ttitle: newLabel = '', // the title of any provided Post.\n\t\turl: newUrl = '',\n\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst newLabelWithoutHttp = newLabel.replace( /http(s?):\\/\\//gi, '' );\n\tconst newUrlWithoutHttp = newUrl.replace( /http(s?):\\/\\//gi, '' );\n\n\tconst useNewLabel =\n\t\tnewLabel &&\n\t\tnewLabel !== originalLabel &&\n\t\t// LinkControl without the title field relies\n\t\t// on the check below. Specifically, it assumes that\n\t\t// the URL is the same as a title.\n\t\t// This logic a) looks suspicious and b) should really\n\t\t// live in the LinkControl and not here. It's a great\n\t\t// candidate for future refactoring.\n\t\tnewLabelWithoutHttp !== newUrlWithoutHttp;\n\n\t// Unfortunately this causes the escaping model to be inverted.\n\t// The escaped content is stored in the block attributes (and ultimately in the database),\n\t// and then the raw data is \"recovered\" when outputting into the DOM.\n\t// It would be preferable to store the **raw** data in the block attributes and escape it in JS.\n\t// Why? Because there isn't one way to escape data. Depending on the context, you need to do\n\t// different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.\n\t// See also:\n\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t// - https://github.com/WordPress/gutenberg/pull/18617.\n\tconst label = useNewLabel\n\t\t? escape( newLabel )\n\t\t: originalLabel || escape( newUrlWithoutHttp );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( newUrl && { url: encodeURI( safeDecodeURI( newUrl ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n\nfunction getMissingText( type ) {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n}\n\n/**\n * Removes HTML from a given string.\n * Note the does not provide XSS protection or otherwise attempt\n * to filter strings with malicious intent.\n *\n * See also: https://github.com/WordPress/gutenberg/pull/35539\n *\n * @param {string} html the string from which HTML should be removed.\n * @return {string} the \"cleaned\" string.\n */\nfunction navStripHTML( html ) {\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\tdoc.body.innerHTML = html;\n\treturn doc.body.textContent || '';\n}\n\n/**\n * Add transforms to Link Control\n */\n\nfunction LinkControlTransforms( { clientId, replace } ) {\n\tconst { getBlock, blockTransforms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tblockTransforms: getBlockTransformItems(\n\t\t\t\t\t_getBlock( clientId ),\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst featuredBlocks = [\n\t\t'core/site-logo',\n\t\t'core/social-links',\n\t\t'core/search',\n\t];\n\tconst transforms = blockTransforms.filter( ( item ) => {\n\t\treturn featuredBlocks.includes( item.name );\n\t} );\n\n\tif ( ! transforms?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"link-control-transform\">\n\t\t\t<h3 className=\"link-control-transform__subheading\">\n\t\t\t\t{ __( 'Transform' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"link-control-transform__items\">\n\t\t\t\t{ transforms.map( ( item, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ `transform-${ index }` }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\treplace(\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tswitchToBlockType(\n\t\t\t\t\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\t\t\t\t\titem.name\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\tclassName=\"link-control-transform__item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } />\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\tid,\n\t\tlabel,\n\t\ttype,\n\t\topensInNewTab,\n\t\turl,\n\t\tdescription,\n\t\trel,\n\t\ttitle,\n\t\tkind,\n\t} = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t\ttitle: label && navStripHTML( label ), // don't allow HTML to display inside the <LinkControl>\n\t};\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { replaceBlock, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add link…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelLink } );\n\t}, [ isTopLevelLink ] );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tfunction transformToSubmenu() {\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}\n\n\tuseEffect( () => {\n\t\t// Show the LinkControl on mount if the URL is empty\n\t\t// ( When adding a new menu item)\n\t\t// This can't be done in the useState call because it conflicts\n\t\t// with the autofocus behavior of the BlockListBlock component.\n\t\tif ( ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\tlabel: '',\n\t\t\tid: '',\n\t\t\tkind: '',\n\t\t\ttype: '',\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes & No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif (\n\t\t\tisKeyboardEvent.primary( event, 'k' ) ||\n\t\t\t( ! url && event.keyCode === ENTER )\n\t\t) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => setIsLinkOpen( true );\n\t}\n\n\tconst classes = classnames( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = getMissingText( type );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip position=\"top center\" text={ tooltipText }>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\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\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\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)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\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\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\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\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t\t\t\tenter: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true ),\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\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\t\ttext={ tooltipText }\n\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\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\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>\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// Some attributes are stored in an escaped form. It's a legacy issue.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Ideally they would be stored in a raw, unescaped form.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Unescape is used here to \"recover\" the escaped characters\n\t\t\t\t\t\t\t\t\t\t\t\t\t// so they display without encoding.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// See `updateNavigationLinkBlockAttributes` for more details.\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ unescape(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t) } ${ placeholderText }`.trim()\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</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</div>\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\t{ isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t\t__unstableShift\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\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\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\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\tonRemove={ removeLink }\n\t\t\t\t\t\t\t\trenderControlBottom={\n\t\t\t\t\t\t\t\t\t! url\n\t\t\t\t\t\t\t\t\t\t? () => (\n\t\t\t\t\t\t\t\t\t\t\t\t<LinkControlTransforms\n\t\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\t\treplace={ replaceBlock }\n\t\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\t: null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/edit.js"],"names":["classnames","escape","unescape","createBlock","switchToBlockType","useSelect","useDispatch","Button","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","Tooltip","ToolbarGroup","KeyboardShortcuts","displayShortcut","isKeyboardEvent","ENTER","__","sprintf","BlockControls","BlockIcon","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","addSubmenu","coreStore","useResourcePermissions","decodeEntities","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","newLabel","url","newUrl","opensInNewTab","id","newKind","newType","newLabelWithoutHttp","replace","newUrlWithoutHttp","useNewLabel","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","useIsInvalidLink","isPostType","hasId","postStatus","select","getEntityRecord","status","isInvalid","isDraft","getMissingText","missingText","navStripHTML","html","doc","document","implementation","createHTMLDocument","body","innerHTML","textContent","LinkControlTransforms","clientId","getBlock","blockTransforms","_getBlock","getBlockRootClientId","getBlockTransformItems","featuredBlocks","transforms","filter","item","includes","name","length","map","index","icon","NavigationLinkEdit","attributes","isSelected","insertBlocksAfter","mergeBlocks","onReplace","description","rel","maxNestingLevel","saveEntityRecord","replaceBlock","__unstableMarkNextChangeAsNotPersistent","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","innerBlocks","isAtMaxNesting","isTopLevelLink","isParentOfSelectedBlock","hasChildren","getBlocks","getBlockCount","getBlockName","hasSelectedInnerBlock","getBlockParentsByBlockName","transformToSubmenu","newSubmenu","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","removeLink","userCanCreate","canCreate","handleCreate","pageTitle","postType","page","rendered","onKeyDown","primary","keyCode","blockProps","className","onClick","classes","placeholderText","tooltipText","descriptionValue","titleValue","relValue","labelValue","enter","trim","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape, unescape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, switchToBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n\tKeyboardShortcuts,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\n\tconst {\n\t\ttitle: newLabel = '', // the title of any provided Post.\n\t\turl: newUrl = '',\n\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst newLabelWithoutHttp = newLabel.replace( /http(s?):\\/\\//gi, '' );\n\tconst newUrlWithoutHttp = newUrl.replace( /http(s?):\\/\\//gi, '' );\n\n\tconst useNewLabel =\n\t\tnewLabel &&\n\t\tnewLabel !== originalLabel &&\n\t\t// LinkControl without the title field relies\n\t\t// on the check below. Specifically, it assumes that\n\t\t// the URL is the same as a title.\n\t\t// This logic a) looks suspicious and b) should really\n\t\t// live in the LinkControl and not here. It's a great\n\t\t// candidate for future refactoring.\n\t\tnewLabelWithoutHttp !== newUrlWithoutHttp;\n\n\t// Unfortunately this causes the escaping model to be inverted.\n\t// The escaped content is stored in the block attributes (and ultimately in the database),\n\t// and then the raw data is \"recovered\" when outputting into the DOM.\n\t// It would be preferable to store the **raw** data in the block attributes and escape it in JS.\n\t// Why? Because there isn't one way to escape data. Depending on the context, you need to do\n\t// different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.\n\t// See also:\n\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t// - https://github.com/WordPress/gutenberg/pull/18617.\n\tconst label = useNewLabel\n\t\t? escape( newLabel )\n\t\t: originalLabel || escape( newUrlWithoutHttp );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( newUrl && { url: encodeURI( safeDecodeURI( newUrl ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n\nfunction getMissingText( type ) {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n}\n\n/**\n * Removes HTML from a given string.\n * Note the does not provide XSS protection or otherwise attempt\n * to filter strings with malicious intent.\n *\n * See also: https://github.com/WordPress/gutenberg/pull/35539\n *\n * @param {string} html the string from which HTML should be removed.\n * @return {string} the \"cleaned\" string.\n */\nfunction navStripHTML( html ) {\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\tdoc.body.innerHTML = html;\n\treturn doc.body.textContent || '';\n}\n\n/**\n * Add transforms to Link Control\n */\n\nfunction LinkControlTransforms( { clientId, replace } ) {\n\tconst { getBlock, blockTransforms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tblockTransforms: getBlockTransformItems(\n\t\t\t\t\t_getBlock( clientId ),\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst featuredBlocks = [\n\t\t'core/site-logo',\n\t\t'core/social-links',\n\t\t'core/search',\n\t];\n\tconst transforms = blockTransforms.filter( ( item ) => {\n\t\treturn featuredBlocks.includes( item.name );\n\t} );\n\n\tif ( ! transforms?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"link-control-transform\">\n\t\t\t<h3 className=\"link-control-transform__subheading\">\n\t\t\t\t{ __( 'Transform' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"link-control-transform__items\">\n\t\t\t\t{ transforms.map( ( item, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ `transform-${ index }` }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\treplace(\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tswitchToBlockType(\n\t\t\t\t\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\t\t\t\t\titem.name\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\tclassName=\"link-control-transform__item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } />\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\tid,\n\t\tlabel,\n\t\ttype,\n\t\topensInNewTab,\n\t\turl,\n\t\tdescription,\n\t\trel,\n\t\ttitle,\n\t\tkind,\n\t} = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t\ttitle: label && navStripHTML( label ), // don't allow HTML to display inside the <LinkControl>\n\t};\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { replaceBlock, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add link…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelLink } );\n\t}, [ isTopLevelLink ] );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tfunction transformToSubmenu() {\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}\n\n\tuseEffect( () => {\n\t\t// Show the LinkControl on mount if the URL is empty\n\t\t// ( When adding a new menu item)\n\t\t// This can't be done in the useState call because it conflicts\n\t\t// with the autofocus behavior of the BlockListBlock component.\n\t\tif ( ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\tlabel: '',\n\t\t\tid: '',\n\t\t\tkind: '',\n\t\t\ttype: '',\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes & No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif (\n\t\t\tisKeyboardEvent.primary( event, 'k' ) ||\n\t\t\t( ! url && event.keyCode === ENTER )\n\t\t) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => setIsLinkOpen( true );\n\t}\n\n\tconst classes = classnames( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = getMissingText( type );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip position=\"top center\" text={ tooltipText }>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\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\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\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)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\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\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\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\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t\t\t\tenter: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true ),\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\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\t\ttext={ tooltipText }\n\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\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\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>\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// Some attributes are stored in an escaped form. It's a legacy issue.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Ideally they would be stored in a raw, unescaped form.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Unescape is used here to \"recover\" the escaped characters\n\t\t\t\t\t\t\t\t\t\t\t\t\t// so they display without encoding.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// See `updateNavigationLinkBlockAttributes` for more details.\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ unescape(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t) } ${ placeholderText }`.trim()\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</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</div>\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\t{ isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t\tshift\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\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\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\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\tonRemove={ removeLink }\n\t\t\t\t\t\t\t\trenderControlBottom={\n\t\t\t\t\t\t\t\t\t! url\n\t\t\t\t\t\t\t\t\t\t? () => (\n\t\t\t\t\t\t\t\t\t\t\t\t<LinkControlTransforms\n\t\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\t\treplace={ replaceBlock }\n\t\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\t: null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
|
|
@@ -11,6 +11,7 @@ import { addFilter } from '@wordpress/hooks';
|
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
import initBlock from '../utils/init-block';
|
|
14
15
|
const metadata = {
|
|
15
16
|
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
16
17
|
apiVersion: 2,
|
|
@@ -57,7 +58,20 @@ const metadata = {
|
|
|
57
58
|
supports: {
|
|
58
59
|
reusable: false,
|
|
59
60
|
html: false,
|
|
60
|
-
__experimentalSlashInserter: true
|
|
61
|
+
__experimentalSlashInserter: true,
|
|
62
|
+
typography: {
|
|
63
|
+
fontSize: true,
|
|
64
|
+
lineHeight: true,
|
|
65
|
+
__experimentalFontFamily: true,
|
|
66
|
+
__experimentalFontWeight: true,
|
|
67
|
+
__experimentalFontStyle: true,
|
|
68
|
+
__experimentalTextTransform: true,
|
|
69
|
+
__experimentalTextDecoration: true,
|
|
70
|
+
__experimentalLetterSpacing: true,
|
|
71
|
+
__experimentalDefaultControls: {
|
|
72
|
+
fontSize: true
|
|
73
|
+
}
|
|
74
|
+
}
|
|
61
75
|
},
|
|
62
76
|
editorStyle: "wp-block-navigation-link-editor",
|
|
63
77
|
style: "wp-block-navigation-link"
|
|
@@ -143,7 +157,13 @@ export const settings = {
|
|
|
143
157
|
|
|
144
158
|
}],
|
|
145
159
|
transforms
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
addFilter('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);
|
|
160
|
+
};
|
|
161
|
+
export const init = () => {
|
|
162
|
+
addFilter('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);
|
|
163
|
+
return initBlock({
|
|
164
|
+
name,
|
|
165
|
+
metadata,
|
|
166
|
+
settings
|
|
167
|
+
});
|
|
168
|
+
};
|
|
149
169
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/index.js"],"names":["_x","customLink","linkIcon","InnerBlocks","addFilter","edit","save","enhanceNavigationLinkVariations","transforms","name","metadata","settings","icon","__experimentalLabel","label","merge","leftAttributes","rightLabel","example","attributes","url","deprecated","isEligible","nofollow","type","description","id","opensInNewTab","default","migrate","rest","rel"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAU,IAAIC,QAAvB,QAAuC,kBAAvC;AACA,SAASC,WAAT,QAA4B,yBAA5B;AACA,SAASC,SAAT,QAA0B,kBAA1B;AAEA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/index.js"],"names":["_x","customLink","linkIcon","InnerBlocks","addFilter","initBlock","edit","save","enhanceNavigationLinkVariations","transforms","name","metadata","settings","icon","__experimentalLabel","label","merge","leftAttributes","rightLabel","example","attributes","url","deprecated","isEligible","nofollow","type","description","id","opensInNewTab","default","migrate","rest","rel","init"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAU,IAAIC,QAAvB,QAAuC,kBAAvC;AACA,SAASC,WAAT,QAA4B,yBAA5B;AACA,SAASC,SAAT,QAA0B,kBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,SAASC,+BAAT,QAAgD,SAAhD;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAEX,QADiB;AAGvBY,EAAAA,mBAAmB,EAAE;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WAAiBA,KAAjB;AAAA,GAHE;;AAKvBC,EAAAA,KAAK,CAAEC,cAAF,SAA+C;AAAA,QAA7B;AAAEF,MAAAA,KAAK,EAAEG,UAAU,GAAG;AAAtB,KAA6B;AACnD,WAAO,EACN,GAAGD,cADG;AAENF,MAAAA,KAAK,EAAEE,cAAc,CAACF,KAAf,GAAuBG;AAFxB,KAAP;AAIA,GAVsB;;AAYvBZ,EAAAA,IAZuB;AAcvBC,EAAAA,IAduB;AAgBvBY,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXL,MAAAA,KAAK,EAAEf,EAAE,CAAE,cAAF,EAAkB,iCAAlB,CADE;AAEXqB,MAAAA,GAAG,EAAE;AAFM;AADJ,GAhBc;AAuBvBC,EAAAA,UAAU,EAAE,CACX;AACCC,IAAAA,UAAU,CAAEH,UAAF,EAAe;AACxB,aAAOA,UAAU,CAACI,QAAlB;AACA,KAHF;;AAKCJ,IAAAA,UAAU,EAAE;AACXL,MAAAA,KAAK,EAAE;AACNU,QAAAA,IAAI,EAAE;AADA,OADI;AAIXA,MAAAA,IAAI,EAAE;AACLA,QAAAA,IAAI,EAAE;AADD,OAJK;AAOXD,MAAAA,QAAQ,EAAE;AACTC,QAAAA,IAAI,EAAE;AADG,OAPC;AAUXC,MAAAA,WAAW,EAAE;AACZD,QAAAA,IAAI,EAAE;AADM,OAVF;AAaXE,MAAAA,EAAE,EAAE;AACHF,QAAAA,IAAI,EAAE;AADH,OAbO;AAgBXG,MAAAA,aAAa,EAAE;AACdH,QAAAA,IAAI,EAAE,SADQ;AAEdI,QAAAA,OAAO,EAAE;AAFK,OAhBJ;AAoBXR,MAAAA,GAAG,EAAE;AACJI,QAAAA,IAAI,EAAE;AADF;AApBM,KALb;;AA8BCK,IAAAA,OAAO,QAA0B;AAAA,UAAxB;AAAEN,QAAAA,QAAF;AAAY,WAAGO;AAAf,OAAwB;AAChC,aAAO;AACNC,QAAAA,GAAG,EAAER,QAAQ,GAAG,UAAH,GAAgB,EADvB;AAEN,WAAGO;AAFG,OAAP;AAIA,KAnCF;;AAqCCxB,IAAAA,IAAI,GAAG;AACN,aAAO,cAAC,WAAD,CAAa,OAAb,OAAP;AACA;;AAvCF,GADW,CAvBW;AAkEvBE,EAAAA;AAlEuB,CAAjB;AAqEP,OAAO,MAAMwB,IAAI,GAAG,MAAM;AACzB7B,EAAAA,SAAS,CACR,0BADQ,EAER,sBAFQ,EAGRI,+BAHQ,CAAT;AAMA,SAAOH,SAAS,CAAE;AAAEK,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA;AAAlB,GAAF,CAAhB;AACA,CARM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { customLink as linkIcon } from '@wordpress/icons';\nimport { InnerBlocks } from '@wordpress/block-editor';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport { enhanceNavigationLinkVariations } from './hooks';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: linkIcon,\n\n\t__experimentalLabel: ( { label } ) => label,\n\n\tmerge( leftAttributes, { label: rightLabel = '' } ) {\n\t\treturn {\n\t\t\t...leftAttributes,\n\t\t\tlabel: leftAttributes.label + rightLabel,\n\t\t};\n\t},\n\n\tedit,\n\n\tsave,\n\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: _x( 'Example Link', 'navigation link preview example' ),\n\t\t\turl: 'https://example.com',\n\t\t},\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tisEligible( attributes ) {\n\t\t\t\treturn attributes.nofollow;\n\t\t\t},\n\n\t\t\tattributes: {\n\t\t\t\tlabel: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t\tnofollow: {\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\tdescription: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\topensInNewTab: {\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\tdefault: false,\n\t\t\t\t},\n\t\t\t\turl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tmigrate( { nofollow, ...rest } ) {\n\t\t\t\treturn {\n\t\t\t\t\trel: nofollow ? 'nofollow' : '',\n\t\t\t\t\t...rest,\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tsave() {\n\t\t\t\treturn <InnerBlocks.Content />;\n\t\t\t},\n\t\t},\n\t],\n\ttransforms,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/navigation-link',\n\t\tenhanceNavigationLinkVariations\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/init.js"],"names":["init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,IAArB;AAEA,eAAeA,IAAI,EAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport { init } from './';\n\nexport default init();\n"]}
|
|
@@ -626,7 +626,7 @@ export default function NavigationSubmenuEdit(_ref) {
|
|
|
626
626
|
position: "bottom center",
|
|
627
627
|
onClose: () => setIsLinkOpen(false),
|
|
628
628
|
anchorRef: listItemRef.current,
|
|
629
|
-
|
|
629
|
+
shift: true
|
|
630
630
|
}, createElement(LinkControl, {
|
|
631
631
|
className: "wp-block-navigation-link__inline-link-input",
|
|
632
632
|
value: link,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"names":["classnames","escape","without","useSelect","useDispatch","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","ToolbarGroup","displayShortcut","isKeyboardEvent","__","sprintf","BlockControls","InnerBlocks","useInnerBlocksProps","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","removeSubmenu","useResourcePermissions","coreStore","speak","createBlock","ItemSubmenuIcon","ALLOWED_BLOCKS","DEFAULT_BLOCK","name","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","url","opensInNewTab","id","newKind","newType","normalizedTitle","replace","normalizedURL","escapeTitle","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","NavigationSubmenuEdit","attributes","isSelected","mergeBlocks","onReplace","clientId","description","rel","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","saveEntityRecord","__unstableMarkNextChangeAsNotPersistent","replaceBlock","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","isAtMaxNesting","isTopLevelItem","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","userCanCreate","canCreate","handleCreate","pageTitle","postType","page","status","rendered","onKeyDown","primary","blockProps","className","innerBlocksColors","allowedBlocks","innerBlocksProps","__experimentalDefaultBlock","__experimentalDirectInsert","__experimentalCaptureToolbars","renderAppender","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","canConvertToLink","descriptionValue","titleValue","relValue","labelValue","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape, without } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport {\n\tuseResourcePermissions,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { name } from './block.json';\n\nconst ALLOWED_BLOCKS = [ 'core/navigation-link', 'core/navigation-submenu' ];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\tconst {\n\t\ttitle = '',\n\t\turl = '',\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst normalizedTitle = title.replace( /http(s?):\\/\\//gi, '' );\n\tconst normalizedURL = url.replace( /http(s?):\\/\\//gi, '' );\n\tconst escapeTitle =\n\t\ttitle !== '' &&\n\t\tnormalizedTitle !== normalizedURL &&\n\t\toriginalLabel !== title;\n\tconst label = escapeTitle\n\t\t? escape( title )\n\t\t: originalLabel || escape( normalizedURL );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, type, opensInNewTab, url, description, rel, title, kind } =\n\t\tattributes;\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t};\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelItem,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length >=\n\t\t\t\t\tmaxNestingLevel,\n\t\t\t\tisTopLevelItem:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length === 0,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\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\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t// Store the colors from context as attributes for rendering.\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelItem } );\n\t}, [ isTopLevelItem ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelItem );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks = isAtMaxNesting\n\t\t? without( ALLOWED_BLOCKS, 'core/navigation-submenu' )\n\t\t: ALLOWED_BLOCKS;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: classnames( 'wp-block-navigation__submenu-container', {\n\t\t\t\t'is-parent-of-selected-block': isParentOfSelectedBlock,\n\t\t\t\t'has-text-color': !! (\n\t\t\t\t\tinnerBlocksColors.textColor ||\n\t\t\t\t\tinnerBlocksColors.customTextColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.textColor }-color` ]:\n\t\t\t\t\t!! innerBlocksColors.textColor,\n\t\t\t\t'has-background': !! (\n\t\t\t\t\tinnerBlocksColors.backgroundColor ||\n\t\t\t\t\tinnerBlocksColors.customBackgroundColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.backgroundColor }-background-color` ]:\n\t\t\t\t\t!! innerBlocksColors.backgroundColor,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: innerBlocksColors.customTextColor,\n\t\t\t\tbackgroundColor: innerBlocksColors.customBackgroundColor,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tallowedBlocks,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: true,\n\n\t\t\t// Ensure block toolbar is not too far removed from item\n\t\t\t// being edited.\n\t\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t\t__experimentalCaptureToolbars: true,\n\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\thasChildren\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\t\t}\n\t);\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tisDisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t\t__unstableShift\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\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\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"names":["classnames","escape","without","useSelect","useDispatch","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","ToolbarGroup","displayShortcut","isKeyboardEvent","__","sprintf","BlockControls","InnerBlocks","useInnerBlocksProps","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","removeSubmenu","useResourcePermissions","coreStore","speak","createBlock","ItemSubmenuIcon","ALLOWED_BLOCKS","DEFAULT_BLOCK","name","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","url","opensInNewTab","id","newKind","newType","normalizedTitle","replace","normalizedURL","escapeTitle","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","NavigationSubmenuEdit","attributes","isSelected","mergeBlocks","onReplace","clientId","description","rel","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","saveEntityRecord","__unstableMarkNextChangeAsNotPersistent","replaceBlock","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","isAtMaxNesting","isTopLevelItem","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","userCanCreate","canCreate","handleCreate","pageTitle","postType","page","status","rendered","onKeyDown","primary","blockProps","className","innerBlocksColors","allowedBlocks","innerBlocksProps","__experimentalDefaultBlock","__experimentalDirectInsert","__experimentalCaptureToolbars","renderAppender","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","canConvertToLink","descriptionValue","titleValue","relValue","labelValue","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape, without } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport {\n\tuseResourcePermissions,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { name } from './block.json';\n\nconst ALLOWED_BLOCKS = [ 'core/navigation-link', 'core/navigation-submenu' ];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\tconst {\n\t\ttitle = '',\n\t\turl = '',\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst normalizedTitle = title.replace( /http(s?):\\/\\//gi, '' );\n\tconst normalizedURL = url.replace( /http(s?):\\/\\//gi, '' );\n\tconst escapeTitle =\n\t\ttitle !== '' &&\n\t\tnormalizedTitle !== normalizedURL &&\n\t\toriginalLabel !== title;\n\tconst label = escapeTitle\n\t\t? escape( title )\n\t\t: originalLabel || escape( normalizedURL );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, type, opensInNewTab, url, description, rel, title, kind } =\n\t\tattributes;\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t};\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelItem,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length >=\n\t\t\t\t\tmaxNestingLevel,\n\t\t\t\tisTopLevelItem:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length === 0,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\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\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t// Store the colors from context as attributes for rendering.\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelItem } );\n\t}, [ isTopLevelItem ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelItem );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks = isAtMaxNesting\n\t\t? without( ALLOWED_BLOCKS, 'core/navigation-submenu' )\n\t\t: ALLOWED_BLOCKS;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: classnames( 'wp-block-navigation__submenu-container', {\n\t\t\t\t'is-parent-of-selected-block': isParentOfSelectedBlock,\n\t\t\t\t'has-text-color': !! (\n\t\t\t\t\tinnerBlocksColors.textColor ||\n\t\t\t\t\tinnerBlocksColors.customTextColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.textColor }-color` ]:\n\t\t\t\t\t!! innerBlocksColors.textColor,\n\t\t\t\t'has-background': !! (\n\t\t\t\t\tinnerBlocksColors.backgroundColor ||\n\t\t\t\t\tinnerBlocksColors.customBackgroundColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.backgroundColor }-background-color` ]:\n\t\t\t\t\t!! innerBlocksColors.backgroundColor,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: innerBlocksColors.customTextColor,\n\t\t\t\tbackgroundColor: innerBlocksColors.customBackgroundColor,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tallowedBlocks,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: true,\n\n\t\t\t// Ensure block toolbar is not too far removed from item\n\t\t\t// being edited.\n\t\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t\t__experimentalCaptureToolbars: true,\n\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\thasChildren\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\t\t}\n\t);\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tisDisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t\tshift\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\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\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
|
|
@@ -6,6 +6,7 @@ import { addSubmenu } from '@wordpress/icons';
|
|
|
6
6
|
* Internal dependencies
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import initBlock from '../utils/init-block';
|
|
9
10
|
const metadata = {
|
|
10
11
|
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
11
12
|
apiVersion: 2,
|
|
@@ -75,4 +76,9 @@ export const settings = {
|
|
|
75
76
|
save,
|
|
76
77
|
transforms
|
|
77
78
|
};
|
|
79
|
+
export const init = () => initBlock({
|
|
80
|
+
name,
|
|
81
|
+
metadata,
|
|
82
|
+
settings
|
|
83
|
+
});
|
|
78
84
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/index.js"],"names":["addSubmenu","edit","save","transforms","name","metadata","settings","icon","__experimentalLabel","label"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,kBAA3B;AAEA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/index.js"],"names":["addSubmenu","initBlock","edit","save","transforms","name","metadata","settings","icon","__experimentalLabel","label","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,kBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAER,UADiB;AAGvBS,EAAAA,mBAAmB,EAAE;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WAAiBA,KAAjB;AAAA,GAHE;AAKvBR,EAAAA,IALuB;AAOvBC,EAAAA,IAPuB;AASvBC,EAAAA;AATuB,CAAjB;AAYP,OAAO,MAAMO,IAAI,GAAG,MAAMV,SAAS,CAAE;AAAEI,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addSubmenu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: addSubmenu,\n\n\t__experimentalLabel: ( { label } ) => label,\n\n\tedit,\n\n\tsave,\n\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
|