@wordpress/block-library 8.13.0 → 8.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/archives/index.js +5 -1
- package/build/archives/index.js.map +1 -1
- package/build/audio/index.js +5 -1
- package/build/audio/index.js.map +1 -1
- package/build/avatar/edit.js +1 -0
- package/build/avatar/edit.js.map +1 -1
- package/build/avatar/index.js +1 -1
- package/build/block/edit.js +1 -1
- package/build/block/edit.js.map +1 -1
- package/build/block/edit.native.js +6 -9
- package/build/block/edit.native.js.map +1 -1
- package/build/block/index.js +2 -1
- package/build/block/index.js.map +1 -1
- package/build/buttons/edit.js +7 -3
- package/build/buttons/edit.js.map +1 -1
- package/build/categories/index.js +5 -1
- package/build/categories/index.js.map +1 -1
- package/build/code/index.js +5 -1
- package/build/code/index.js.map +1 -1
- package/build/column/edit.native.js +1 -4
- package/build/column/edit.native.js.map +1 -1
- package/build/column/index.js +1 -0
- package/build/column/index.js.map +1 -1
- package/build/columns/edit.js +1 -0
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -0
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/comments/index.js +1 -0
- package/build/comments/index.js.map +1 -1
- package/build/cover/deprecated.js +4 -2
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +1 -0
- package/build/cover/index.js.map +1 -1
- package/build/details/index.js +5 -1
- package/build/details/index.js.map +1 -1
- package/build/embed/embed-placeholder.native.js +37 -13
- package/build/embed/embed-placeholder.native.js.map +1 -1
- package/build/embed/util.js +9 -8
- package/build/embed/util.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/file/{interactivity.js → view-interactivity.js} +6 -2
- package/build/file/view-interactivity.js.map +1 -0
- package/build/footnotes/edit.js +20 -1
- package/build/footnotes/edit.js.map +1 -1
- package/build/footnotes/format.js +19 -16
- package/build/footnotes/format.js.map +1 -1
- package/build/footnotes/index.js +0 -1
- package/build/footnotes/index.js.map +1 -1
- package/build/gallery/edit.js +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/index.js +3 -1
- package/build/gallery/index.js.map +1 -1
- package/build/group/index.js +1 -0
- package/build/group/index.js.map +1 -1
- package/build/heading/index.js +5 -1
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +5 -1
- package/build/heading/transforms.js.map +1 -1
- package/build/image/deprecated.js +453 -175
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +0 -4
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +96 -43
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +6 -0
- package/build/image/index.js.map +1 -1
- package/build/image/save.js +8 -1
- package/build/image/save.js.map +1 -1
- package/build/image/utils.js +18 -0
- package/build/image/utils.js.map +1 -1
- package/build/image/{interactivity.js → view-interactivity.js} +86 -44
- package/build/image/view-interactivity.js.map +1 -0
- package/build/index.js +12 -3
- package/build/index.js.map +1 -1
- package/build/latest-comments/edit.js +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +2 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/edit.js +4 -4
- package/build/list/edit.js.map +1 -1
- package/build/list/index.js +5 -1
- package/build/list/index.js.map +1 -1
- package/build/list-item/utils.js +6 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/index.js +1 -0
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/media-container.native.js +2 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/missing/edit.js +22 -8
- package/build/missing/edit.js.map +1 -1
- package/build/missing/edit.native.js +7 -5
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/constants.js +10 -4
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/index.js +17 -3
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +2 -2
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +0 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +33 -45
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view-interactivity.js +185 -0
- package/build/navigation/view-interactivity.js.map +1 -0
- package/build/navigation-link/edit.js +12 -18
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +12 -2
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +2 -2
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +3 -3
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +34 -39
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/use-convert-to-navigation-links.js +2 -15
- package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
- package/build/paragraph/index.js +1 -0
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +1 -0
- package/build/paragraph/transforms.js.map +1 -1
- package/build/post-comments-form/index.js +1 -0
- package/build/post-comments-form/index.js.map +1 -1
- package/build/post-navigation-link/index.js +1 -0
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-time-to-read/index.js +5 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/query-pagination/edit.js +1 -1
- package/build/query-pagination/edit.js.map +1 -1
- package/build/query-pagination-numbers/index.js +1 -1
- package/build/query-title/edit.js +43 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/quote/index.js +1 -0
- package/build/quote/index.js.map +1 -1
- package/build/quote/transforms.js +8 -0
- package/build/quote/transforms.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.js +4 -3
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +1 -0
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +1 -0
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +5 -1
- package/build/site-logo/index.js.map +1 -1
- package/build/site-tagline/icon.js +1 -1
- package/build/site-tagline/icon.js.map +1 -1
- package/build/site-tagline/index.js +5 -1
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-title/index.js +5 -1
- package/build/site-title/index.js.map +1 -1
- package/build/social-links/index.js +3 -1
- package/build/social-links/index.js.map +1 -1
- package/build/table/index.js +5 -1
- package/build/table/index.js.map +1 -1
- package/build/tag-cloud/edit.js +1 -0
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/term-description/index.js +1 -0
- package/build/term-description/index.js.map +1 -1
- package/build/text-columns/edit.js +1 -0
- package/build/text-columns/edit.js.map +1 -1
- package/build/verse/index.js +5 -1
- package/build/verse/index.js.map +1 -1
- package/build/video/deprecated.js +5 -1
- package/build/video/deprecated.js.map +1 -1
- package/build/video/index.js +5 -1
- package/build/video/index.js.map +1 -1
- package/build-module/archives/index.js +5 -1
- package/build-module/archives/index.js.map +1 -1
- package/build-module/audio/index.js +5 -1
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/edit.js +1 -0
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/avatar/index.js +1 -1
- package/build-module/block/edit.js +1 -1
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/edit.native.js +7 -9
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/block/index.js +2 -1
- package/build-module/block/index.js.map +1 -1
- package/build-module/buttons/edit.js +7 -3
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/categories/index.js +5 -1
- package/build-module/categories/index.js.map +1 -1
- package/build-module/code/index.js +5 -1
- package/build-module/code/index.js.map +1 -1
- package/build-module/column/edit.native.js +1 -4
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/column/index.js +1 -0
- package/build-module/column/index.js.map +1 -1
- package/build-module/columns/edit.js +1 -0
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -0
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/comments/index.js +1 -0
- package/build-module/comments/index.js.map +1 -1
- package/build-module/cover/deprecated.js +4 -2
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +1 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/details/index.js +5 -1
- package/build-module/details/index.js.map +1 -1
- package/build-module/embed/embed-placeholder.native.js +37 -14
- package/build-module/embed/embed-placeholder.native.js.map +1 -1
- package/build-module/embed/util.js +6 -6
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/file/{interactivity.js → view-interactivity.js} +6 -2
- package/build-module/file/view-interactivity.js.map +1 -0
- package/build-module/footnotes/edit.js +18 -2
- package/build-module/footnotes/edit.js.map +1 -1
- package/build-module/footnotes/format.js +19 -16
- package/build-module/footnotes/format.js.map +1 -1
- package/build-module/footnotes/index.js +0 -1
- package/build-module/footnotes/index.js.map +1 -1
- package/build-module/gallery/edit.js +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/index.js +3 -1
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/group/index.js +1 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/index.js +5 -1
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +5 -1
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/deprecated.js +454 -176
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +0 -4
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +96 -46
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +6 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/save.js +8 -1
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/utils.js +16 -0
- package/build-module/image/utils.js.map +1 -1
- package/build-module/image/{interactivity.js → view-interactivity.js} +86 -44
- package/build-module/image/view-interactivity.js.map +1 -0
- package/build-module/index.js +12 -3
- package/build-module/index.js.map +1 -1
- package/build-module/latest-comments/edit.js +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/edit.js +4 -4
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/index.js +5 -1
- package/build-module/list/index.js.map +1 -1
- package/build-module/list-item/utils.js +6 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/index.js +1 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/media-container.native.js +2 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/missing/edit.js +22 -8
- package/build-module/missing/edit.js.map +1 -1
- package/build-module/missing/edit.native.js +8 -6
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/constants.js +8 -3
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/index.js +18 -4
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -2
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +0 -1
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
- 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 +10 -14
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +35 -47
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view-interactivity.js +182 -0
- package/build-module/navigation/view-interactivity.js.map +1 -0
- package/build-module/navigation-link/edit.js +13 -19
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +13 -3
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +2 -2
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +3 -3
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +34 -39
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/use-convert-to-navigation-links.js +3 -16
- package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
- package/build-module/paragraph/index.js +1 -0
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +1 -0
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/post-comments-form/index.js +1 -0
- package/build-module/post-comments-form/index.js.map +1 -1
- package/build-module/post-navigation-link/index.js +1 -0
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-time-to-read/index.js +5 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/query-pagination/edit.js +1 -1
- package/build-module/query-pagination/edit.js.map +1 -1
- package/build-module/query-pagination-numbers/index.js +1 -1
- package/build-module/query-title/edit.js +44 -3
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -0
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/transforms.js +8 -0
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.js +4 -3
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +1 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +1 -0
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +5 -1
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/site-tagline/icon.js +1 -1
- package/build-module/site-tagline/icon.js.map +1 -1
- package/build-module/site-tagline/index.js +5 -1
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/index.js +5 -1
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-links/index.js +3 -1
- package/build-module/social-links/index.js.map +1 -1
- package/build-module/table/index.js +5 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/tag-cloud/edit.js +1 -0
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/term-description/index.js +1 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/text-columns/edit.js +1 -0
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/verse/index.js +5 -1
- package/build-module/verse/index.js.map +1 -1
- package/build-module/video/deprecated.js +5 -1
- package/build-module/video/deprecated.js.map +1 -1
- package/build-module/video/index.js +5 -1
- package/build-module/video/index.js.map +1 -1
- package/build-style/details/style-rtl.css +4 -2
- package/build-style/details/style.css +4 -2
- package/build-style/footnotes/style-rtl.css +4 -3
- package/build-style/footnotes/style.css +4 -3
- package/build-style/image/style-rtl.css +16 -2
- package/build-style/image/style.css +16 -2
- package/build-style/navigation/style-rtl.css +14 -2
- package/build-style/navigation/style.css +14 -2
- package/build-style/query-pagination/style-rtl.css +4 -2
- package/build-style/query-pagination/style.css +4 -2
- package/build-style/style-rtl.css +42 -11
- package/build-style/style.css +42 -11
- package/package.json +33 -37
- package/src/archives/block.json +5 -1
- package/src/audio/block.json +5 -1
- package/src/audio/test/__snapshots__/edit.native.js.snap +58 -33
- package/src/avatar/block.json +1 -1
- package/src/avatar/edit.js +1 -0
- package/src/block/block.json +2 -1
- package/src/block/edit.js +2 -2
- package/src/block/edit.native.js +8 -12
- package/src/block/editor.native.scss +2 -2
- package/src/block/test/edit.native.js +4 -4
- package/src/buttons/edit.js +4 -4
- package/src/categories/block.json +5 -1
- package/src/code/block.json +5 -1
- package/src/column/block.json +1 -0
- package/src/column/edit.native.js +4 -10
- package/src/column/editor.native.scss +0 -4
- package/src/columns/edit.js +1 -0
- package/src/comment-author-avatar/edit.js +1 -0
- package/src/comment-template/index.php +5 -2
- package/src/comments/block.json +1 -0
- package/src/cover/block.json +1 -0
- package/src/cover/deprecated.js +2 -0
- package/src/cover/edit/inspector-controls.js +1 -0
- package/src/details/block.json +5 -1
- package/src/embed/embed-placeholder.native.js +80 -47
- package/src/embed/styles.native.scss +54 -18
- package/src/embed/test/index.native.js +5 -5
- package/src/embed/util.js +4 -6
- package/src/file/index.php +4 -3
- package/src/file/inspector.js +1 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +58 -33
- package/src/file/{interactivity.js → view-interactivity.js} +4 -1
- package/src/footnotes/block.json +0 -1
- package/src/footnotes/edit.js +21 -2
- package/src/footnotes/format.js +22 -20
- package/src/footnotes/index.php +11 -9
- package/src/footnotes/style.scss +6 -3
- package/src/gallery/block.json +3 -1
- package/src/gallery/edit.js +1 -1
- package/src/gallery/test/index.native.js +17 -16
- package/src/group/block.json +1 -0
- package/src/heading/block.json +5 -1
- package/src/heading/test/index.native.js +18 -0
- package/src/home-link/index.php +15 -2
- package/src/image/block.json +6 -0
- package/src/image/deprecated.js +597 -320
- package/src/image/edit.js +0 -4
- package/src/image/image.js +131 -62
- package/src/image/index.php +47 -8
- package/src/image/save.js +9 -1
- package/src/image/style.scss +15 -2
- package/src/image/test/edit.native.js +1 -1
- package/src/image/utils.js +16 -0
- package/src/image/{interactivity.js → view-interactivity.js} +99 -50
- package/src/index.js +18 -1
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-posts/edit.js +2 -0
- package/src/latest-posts/index.php +1 -1
- package/src/list/block.json +5 -1
- package/src/list/edit.js +6 -4
- package/src/list/test/edit.native.js +129 -33
- package/src/media-text/block.json +1 -0
- package/src/media-text/media-container.native.js +1 -0
- package/src/missing/edit.js +31 -11
- package/src/missing/edit.native.js +12 -10
- package/src/missing/style.native.scss +19 -12
- package/src/missing/test/__snapshots__/edit.native.js.snap +21 -13
- package/src/navigation/constants.js +12 -6
- package/src/navigation/edit/index.js +30 -3
- package/src/navigation/edit/inner-blocks.js +2 -2
- package/src/navigation/edit/menu-inspector-controls.js +0 -1
- package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
- package/src/navigation/index.php +43 -16
- package/src/navigation/style.scss +27 -8
- package/src/navigation/use-navigation-menu.js +39 -63
- package/src/navigation/view-interactivity.js +196 -0
- package/src/navigation-link/edit.js +61 -61
- package/src/navigation-link/link-ui.js +14 -2
- package/src/navigation-submenu/edit.js +2 -2
- package/src/navigation-submenu/index.php +2 -12
- package/src/page-list/convert-to-links-modal.js +3 -3
- package/src/page-list/edit.js +65 -62
- package/src/page-list/use-convert-to-navigation-links.js +3 -20
- package/src/paragraph/block.json +1 -0
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
- package/src/paragraph/test/edit.native.js +26 -0
- package/src/post-comments-form/block.json +1 -0
- package/src/post-navigation-link/block.json +1 -0
- package/src/post-template/index.php +4 -2
- package/src/post-time-to-read/block.json +5 -1
- package/src/post-title/index.php +6 -3
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
- package/src/query-pagination/edit.js +17 -14
- package/src/query-pagination-numbers/block.json +1 -1
- package/src/query-title/edit.js +48 -6
- package/src/quote/block.json +1 -0
- package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
- package/src/quote/test/transforms.native.js +5 -1
- package/src/quote/transforms.js +13 -0
- package/src/rss/edit.js +3 -0
- package/src/search/block.json +1 -0
- package/src/search/edit.js +4 -3
- package/src/search/index.php +22 -4
- package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/site-logo/block.json +5 -1
- package/src/site-logo/edit.js +1 -0
- package/src/site-tagline/block.json +5 -1
- package/src/site-tagline/icon.js +1 -1
- package/src/site-title/block.json +5 -1
- package/src/social-links/block.json +3 -1
- package/src/table/block.json +5 -1
- package/src/tag-cloud/edit.js +1 -0
- package/src/template-part/edit/index.js +1 -1
- package/src/template-part/index.php +9 -15
- package/src/term-description/block.json +1 -0
- package/src/text-columns/edit.js +1 -0
- package/src/verse/block.json +5 -1
- package/src/video/block.json +5 -1
- package/build/file/interactivity.js.map +0 -1
- package/build/gallery/shared-icon.native.js +0 -38
- package/build/gallery/shared-icon.native.js.map +0 -1
- package/build/heading/heading-level-icon.js +0 -61
- package/build/heading/heading-level-icon.js.map +0 -1
- package/build/image/interactivity.js.map +0 -1
- package/build/navigation/interactivity.js +0 -167
- package/build/navigation/interactivity.js.map +0 -1
- package/build/utils/interactivity/constants.js +0 -9
- package/build/utils/interactivity/constants.js.map +0 -1
- package/build/utils/interactivity/directives.js +0 -222
- package/build/utils/interactivity/directives.js.map +0 -1
- package/build/utils/interactivity/hooks.js +0 -159
- package/build/utils/interactivity/hooks.js.map +0 -1
- package/build/utils/interactivity/hydration.js +0 -34
- package/build/utils/interactivity/hydration.js.map +0 -1
- package/build/utils/interactivity/index.js +0 -32
- package/build/utils/interactivity/index.js.map +0 -1
- package/build/utils/interactivity/portals.js +0 -108
- package/build/utils/interactivity/portals.js.map +0 -1
- package/build/utils/interactivity/store.js +0 -66
- package/build/utils/interactivity/store.js.map +0 -1
- package/build/utils/interactivity/utils.js +0 -87
- package/build/utils/interactivity/utils.js.map +0 -1
- package/build/utils/interactivity/vdom.js +0 -119
- package/build/utils/interactivity/vdom.js.map +0 -1
- package/build-module/file/interactivity.js.map +0 -1
- package/build-module/gallery/shared-icon.native.js +0 -24
- package/build-module/gallery/shared-icon.native.js.map +0 -1
- package/build-module/heading/heading-level-icon.js +0 -53
- package/build-module/heading/heading-level-icon.js.map +0 -1
- package/build-module/image/interactivity.js.map +0 -1
- package/build-module/navigation/interactivity.js +0 -164
- package/build-module/navigation/interactivity.js.map +0 -1
- package/build-module/utils/interactivity/constants.js +0 -2
- package/build-module/utils/interactivity/constants.js.map +0 -1
- package/build-module/utils/interactivity/directives.js +0 -209
- package/build-module/utils/interactivity/directives.js.map +0 -1
- package/build-module/utils/interactivity/hooks.js +0 -145
- package/build-module/utils/interactivity/hooks.js.map +0 -1
- package/build-module/utils/interactivity/hydration.js +0 -21
- package/build-module/utils/interactivity/hydration.js.map +0 -1
- package/build-module/utils/interactivity/index.js +0 -15
- package/build-module/utils/interactivity/index.js.map +0 -1
- package/build-module/utils/interactivity/portals.js +0 -100
- package/build-module/utils/interactivity/portals.js.map +0 -1
- package/build-module/utils/interactivity/store.js +0 -55
- package/build-module/utils/interactivity/store.js.map +0 -1
- package/build-module/utils/interactivity/utils.js +0 -75
- package/build-module/utils/interactivity/utils.js.map +0 -1
- package/build-module/utils/interactivity/vdom.js +0 -107
- package/build-module/utils/interactivity/vdom.js.map +0 -1
- package/src/gallery/shared-icon.native.js +0 -23
- package/src/heading/heading-level-icon.js +0 -48
- package/src/navigation/interactivity.js +0 -169
- package/src/utils/interactivity/constants.js +0 -1
- package/src/utils/interactivity/directives.js +0 -200
- package/src/utils/interactivity/hooks.js +0 -145
- package/src/utils/interactivity/hydration.js +0 -22
- package/src/utils/interactivity/index.js +0 -15
- package/src/utils/interactivity/portals.js +0 -98
- package/src/utils/interactivity/store.js +0 -45
- package/src/utils/interactivity/utils.js +0 -66
- package/src/utils/interactivity/vdom.js +0 -111
|
@@ -4,85 +4,61 @@
|
|
|
4
4
|
import {
|
|
5
5
|
store as coreStore,
|
|
6
6
|
useResourcePermissions,
|
|
7
|
+
useEntityRecords,
|
|
7
8
|
} from '@wordpress/core-data';
|
|
8
9
|
import { useSelect } from '@wordpress/data';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Internal dependencies
|
|
12
13
|
*/
|
|
13
|
-
import {
|
|
14
|
+
import { PRELOADED_NAVIGATION_MENUS_QUERY } from './constants';
|
|
14
15
|
|
|
15
16
|
export default function useNavigationMenu( ref ) {
|
|
16
17
|
const permissions = useResourcePermissions( 'navigation', ref );
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
const {
|
|
20
|
+
navigationMenu,
|
|
21
|
+
isNavigationMenuResolved,
|
|
22
|
+
isNavigationMenuMissing,
|
|
23
|
+
} = useSelect(
|
|
19
24
|
( select ) => {
|
|
20
|
-
|
|
21
|
-
canCreate,
|
|
22
|
-
canUpdate,
|
|
23
|
-
canDelete,
|
|
24
|
-
isResolving,
|
|
25
|
-
hasResolved,
|
|
26
|
-
} = permissions;
|
|
27
|
-
|
|
28
|
-
const {
|
|
29
|
-
navigationMenus,
|
|
30
|
-
isResolvingNavigationMenus,
|
|
31
|
-
hasResolvedNavigationMenus,
|
|
32
|
-
} = selectNavigationMenus( select );
|
|
33
|
-
|
|
34
|
-
const {
|
|
35
|
-
navigationMenu,
|
|
36
|
-
isNavigationMenuResolved,
|
|
37
|
-
isNavigationMenuMissing,
|
|
38
|
-
} = selectExistingMenu( select, ref );
|
|
39
|
-
|
|
40
|
-
return {
|
|
41
|
-
navigationMenus,
|
|
42
|
-
isResolvingNavigationMenus,
|
|
43
|
-
hasResolvedNavigationMenus,
|
|
44
|
-
|
|
45
|
-
navigationMenu,
|
|
46
|
-
isNavigationMenuResolved,
|
|
47
|
-
isNavigationMenuMissing,
|
|
48
|
-
|
|
49
|
-
canSwitchNavigationMenu: ref
|
|
50
|
-
? navigationMenus?.length > 1
|
|
51
|
-
: navigationMenus?.length > 0,
|
|
52
|
-
|
|
53
|
-
canUserCreateNavigationMenu: canCreate,
|
|
54
|
-
isResolvingCanUserCreateNavigationMenu: isResolving,
|
|
55
|
-
hasResolvedCanUserCreateNavigationMenu: hasResolved,
|
|
56
|
-
|
|
57
|
-
canUserUpdateNavigationMenu: canUpdate,
|
|
58
|
-
hasResolvedCanUserUpdateNavigationMenu: ref
|
|
59
|
-
? hasResolved
|
|
60
|
-
: undefined,
|
|
61
|
-
|
|
62
|
-
canUserDeleteNavigationMenu: canDelete,
|
|
63
|
-
hasResolvedCanUserDeleteNavigationMenu: ref
|
|
64
|
-
? hasResolved
|
|
65
|
-
: undefined,
|
|
66
|
-
};
|
|
25
|
+
return selectExistingMenu( select, ref );
|
|
67
26
|
},
|
|
68
|
-
[ ref
|
|
27
|
+
[ ref ]
|
|
69
28
|
);
|
|
70
|
-
}
|
|
71
29
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
30
|
+
const { canCreate, canUpdate, canDelete, isResolving, hasResolved } =
|
|
31
|
+
permissions;
|
|
32
|
+
|
|
33
|
+
const {
|
|
34
|
+
records: navigationMenus,
|
|
35
|
+
isResolving: isResolvingNavigationMenus,
|
|
36
|
+
hasResolved: hasResolvedNavigationMenus,
|
|
37
|
+
} = useEntityRecords(
|
|
38
|
+
'postType',
|
|
39
|
+
`wp_navigation`,
|
|
40
|
+
PRELOADED_NAVIGATION_MENUS_QUERY
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const canSwitchNavigationMenu = ref
|
|
44
|
+
? navigationMenus?.length > 1
|
|
45
|
+
: navigationMenus?.length > 0;
|
|
75
46
|
|
|
76
47
|
return {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
hasResolvedNavigationMenus
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
48
|
+
navigationMenu,
|
|
49
|
+
isNavigationMenuResolved,
|
|
50
|
+
isNavigationMenuMissing,
|
|
51
|
+
navigationMenus,
|
|
52
|
+
isResolvingNavigationMenus,
|
|
53
|
+
hasResolvedNavigationMenus,
|
|
54
|
+
canSwitchNavigationMenu,
|
|
55
|
+
canUserCreateNavigationMenu: canCreate,
|
|
56
|
+
isResolvingCanUserCreateNavigationMenu: isResolving,
|
|
57
|
+
hasResolvedCanUserCreateNavigationMenu: hasResolved,
|
|
58
|
+
canUserUpdateNavigationMenu: canUpdate,
|
|
59
|
+
hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolved : undefined,
|
|
60
|
+
canUserDeleteNavigationMenu: canDelete,
|
|
61
|
+
hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolved : undefined,
|
|
86
62
|
};
|
|
87
63
|
}
|
|
88
64
|
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { store as wpStore } from '@wordpress/interactivity';
|
|
5
|
+
|
|
6
|
+
const focusableSelectors = [
|
|
7
|
+
'a[href]',
|
|
8
|
+
'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
|
|
9
|
+
'select:not([disabled]):not([aria-hidden])',
|
|
10
|
+
'textarea:not([disabled]):not([aria-hidden])',
|
|
11
|
+
'button:not([disabled]):not([aria-hidden])',
|
|
12
|
+
'[contenteditable]',
|
|
13
|
+
'[tabindex]:not([tabindex^="-"])',
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
const openMenu = ( store, menuOpenedOn ) => {
|
|
17
|
+
const { context, ref, selectors } = store;
|
|
18
|
+
selectors.core.navigation.menuOpenedBy( store )[ menuOpenedOn ] = true;
|
|
19
|
+
context.core.navigation.previousFocus = ref;
|
|
20
|
+
if ( context.core.navigation.type === 'overlay' ) {
|
|
21
|
+
// Add a `has-modal-open` class to the <html> root.
|
|
22
|
+
document.documentElement.classList.add( 'has-modal-open' );
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const closeMenu = ( store, menuClosedOn ) => {
|
|
27
|
+
const { context, selectors } = store;
|
|
28
|
+
selectors.core.navigation.menuOpenedBy( store )[ menuClosedOn ] = false;
|
|
29
|
+
// Check if the menu is still open or not.
|
|
30
|
+
if ( ! selectors.core.navigation.isMenuOpen( store ) ) {
|
|
31
|
+
if (
|
|
32
|
+
context.core.navigation.modal?.contains(
|
|
33
|
+
window.document.activeElement
|
|
34
|
+
)
|
|
35
|
+
) {
|
|
36
|
+
context.core.navigation.previousFocus.focus();
|
|
37
|
+
}
|
|
38
|
+
context.core.navigation.modal = null;
|
|
39
|
+
context.core.navigation.previousFocus = null;
|
|
40
|
+
if ( context.core.navigation.type === 'overlay' ) {
|
|
41
|
+
document.documentElement.classList.remove( 'has-modal-open' );
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
wpStore( {
|
|
47
|
+
effects: {
|
|
48
|
+
core: {
|
|
49
|
+
navigation: {
|
|
50
|
+
initMenu: ( store ) => {
|
|
51
|
+
const { context, selectors, ref } = store;
|
|
52
|
+
if ( selectors.core.navigation.isMenuOpen( store ) ) {
|
|
53
|
+
const focusableElements =
|
|
54
|
+
ref.querySelectorAll( focusableSelectors );
|
|
55
|
+
context.core.navigation.modal = ref;
|
|
56
|
+
context.core.navigation.firstFocusableElement =
|
|
57
|
+
focusableElements[ 0 ];
|
|
58
|
+
context.core.navigation.lastFocusableElement =
|
|
59
|
+
focusableElements[ focusableElements.length - 1 ];
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
focusFirstElement: ( store ) => {
|
|
63
|
+
const { selectors, ref } = store;
|
|
64
|
+
if ( selectors.core.navigation.isMenuOpen( store ) ) {
|
|
65
|
+
ref.querySelector(
|
|
66
|
+
'.wp-block-navigation-item > *:first-child'
|
|
67
|
+
).focus();
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
selectors: {
|
|
74
|
+
core: {
|
|
75
|
+
navigation: {
|
|
76
|
+
roleAttribute: ( store ) => {
|
|
77
|
+
const { context, selectors } = store;
|
|
78
|
+
return context.core.navigation.type === 'overlay' &&
|
|
79
|
+
selectors.core.navigation.isMenuOpen( store )
|
|
80
|
+
? 'dialog'
|
|
81
|
+
: '';
|
|
82
|
+
},
|
|
83
|
+
isMenuOpen: ( { context } ) =>
|
|
84
|
+
// The menu is opened if either `click`, `hover` or `focus` is true.
|
|
85
|
+
Object.values(
|
|
86
|
+
context.core.navigation[
|
|
87
|
+
context.core.navigation.type === 'overlay'
|
|
88
|
+
? 'overlayOpenedBy'
|
|
89
|
+
: 'submenuOpenedBy'
|
|
90
|
+
]
|
|
91
|
+
).filter( Boolean ).length > 0,
|
|
92
|
+
menuOpenedBy: ( { context } ) =>
|
|
93
|
+
context.core.navigation[
|
|
94
|
+
context.core.navigation.type === 'overlay'
|
|
95
|
+
? 'overlayOpenedBy'
|
|
96
|
+
: 'submenuOpenedBy'
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
actions: {
|
|
102
|
+
core: {
|
|
103
|
+
navigation: {
|
|
104
|
+
openMenuOnHover( store ) {
|
|
105
|
+
const { navigation } = store.context.core;
|
|
106
|
+
if (
|
|
107
|
+
navigation.type === 'submenu' &&
|
|
108
|
+
// Only open on hover if the overlay is closed.
|
|
109
|
+
Object.values(
|
|
110
|
+
navigation.overlayOpenedBy || {}
|
|
111
|
+
).filter( Boolean ).length === 0
|
|
112
|
+
)
|
|
113
|
+
openMenu( store, 'hover' );
|
|
114
|
+
},
|
|
115
|
+
closeMenuOnHover( store ) {
|
|
116
|
+
closeMenu( store, 'hover' );
|
|
117
|
+
},
|
|
118
|
+
openMenuOnClick( store ) {
|
|
119
|
+
openMenu( store, 'click' );
|
|
120
|
+
},
|
|
121
|
+
closeMenuOnClick( store ) {
|
|
122
|
+
closeMenu( store, 'click' );
|
|
123
|
+
closeMenu( store, 'focus' );
|
|
124
|
+
},
|
|
125
|
+
openMenuOnFocus( store ) {
|
|
126
|
+
openMenu( store, 'focus' );
|
|
127
|
+
},
|
|
128
|
+
toggleMenuOnClick: ( store ) => {
|
|
129
|
+
const { selectors } = store;
|
|
130
|
+
const menuOpenedBy =
|
|
131
|
+
selectors.core.navigation.menuOpenedBy( store );
|
|
132
|
+
if ( menuOpenedBy.click || menuOpenedBy.focus ) {
|
|
133
|
+
closeMenu( store, 'click' );
|
|
134
|
+
closeMenu( store, 'focus' );
|
|
135
|
+
} else {
|
|
136
|
+
openMenu( store, 'click' );
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
handleMenuKeydown: ( store ) => {
|
|
140
|
+
const { context, selectors, event } = store;
|
|
141
|
+
if (
|
|
142
|
+
selectors.core.navigation.menuOpenedBy( store ).click
|
|
143
|
+
) {
|
|
144
|
+
// If Escape close the menu.
|
|
145
|
+
if ( event?.key === 'Escape' ) {
|
|
146
|
+
closeMenu( store, 'click' );
|
|
147
|
+
closeMenu( store, 'focus' );
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Trap focus if it is an overlay (main menu).
|
|
152
|
+
if (
|
|
153
|
+
context.core.navigation.type === 'overlay' &&
|
|
154
|
+
event.key === 'Tab'
|
|
155
|
+
) {
|
|
156
|
+
// If shift + tab it change the direction.
|
|
157
|
+
if (
|
|
158
|
+
event.shiftKey &&
|
|
159
|
+
window.document.activeElement ===
|
|
160
|
+
context.core.navigation
|
|
161
|
+
.firstFocusableElement
|
|
162
|
+
) {
|
|
163
|
+
event.preventDefault();
|
|
164
|
+
context.core.navigation.lastFocusableElement.focus();
|
|
165
|
+
} else if (
|
|
166
|
+
! event.shiftKey &&
|
|
167
|
+
window.document.activeElement ===
|
|
168
|
+
context.core.navigation.lastFocusableElement
|
|
169
|
+
) {
|
|
170
|
+
event.preventDefault();
|
|
171
|
+
context.core.navigation.firstFocusableElement.focus();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
handleMenuFocusout: ( store ) => {
|
|
177
|
+
const { context, event } = store;
|
|
178
|
+
// If focus is outside modal, and in the document, close menu
|
|
179
|
+
// event.target === The element losing focus
|
|
180
|
+
// event.relatedTarget === The element receiving focus (if any)
|
|
181
|
+
// When focusout is outsite the document,
|
|
182
|
+
// `window.document.activeElement` doesn't change.
|
|
183
|
+
if (
|
|
184
|
+
! context.core.navigation.modal?.contains(
|
|
185
|
+
event.relatedTarget
|
|
186
|
+
) &&
|
|
187
|
+
event.target !== window.document.activeElement
|
|
188
|
+
) {
|
|
189
|
+
closeMenu( store, 'click' );
|
|
190
|
+
closeMenu( store, 'focus' );
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
} );
|
|
@@ -35,10 +35,7 @@ import {
|
|
|
35
35
|
} from '@wordpress/dom';
|
|
36
36
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
37
37
|
import { link as linkIcon, addSubmenu } from '@wordpress/icons';
|
|
38
|
-
import {
|
|
39
|
-
store as coreStore,
|
|
40
|
-
useResourcePermissions,
|
|
41
|
-
} from '@wordpress/core-data';
|
|
38
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
42
39
|
import { useMergeRefs } from '@wordpress/compose';
|
|
43
40
|
|
|
44
41
|
/**
|
|
@@ -184,8 +181,9 @@ export default function NavigationLinkEdit( {
|
|
|
184
181
|
const itemLabelPlaceholder = __( 'Add label…' );
|
|
185
182
|
const ref = useRef();
|
|
186
183
|
|
|
187
|
-
|
|
188
|
-
|
|
184
|
+
// Change the label using inspector causes rich text to change focus on firefox.
|
|
185
|
+
// This is a workaround to keep the focus on the label field when label filed is focused we don't render the rich text.
|
|
186
|
+
const [ isLabelFieldFocused, setIsLabelFieldFocused ] = useState( false );
|
|
189
187
|
|
|
190
188
|
const {
|
|
191
189
|
innerBlocks,
|
|
@@ -322,13 +320,6 @@ export default function NavigationLinkEdit( {
|
|
|
322
320
|
setIsLinkOpen( false );
|
|
323
321
|
}
|
|
324
322
|
|
|
325
|
-
let userCanCreate = false;
|
|
326
|
-
if ( ! type || type === 'page' ) {
|
|
327
|
-
userCanCreate = pagesPermissions.canCreate;
|
|
328
|
-
} else if ( type === 'post' ) {
|
|
329
|
-
userCanCreate = postsPermissions.canCreate;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
323
|
const {
|
|
333
324
|
textColor,
|
|
334
325
|
customTextColor,
|
|
@@ -381,8 +372,8 @@ export default function NavigationLinkEdit( {
|
|
|
381
372
|
},
|
|
382
373
|
{
|
|
383
374
|
allowedBlocks: ALLOWED_BLOCKS,
|
|
384
|
-
|
|
385
|
-
|
|
375
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
376
|
+
directInsert: true,
|
|
386
377
|
renderAppender: false,
|
|
387
378
|
}
|
|
388
379
|
);
|
|
@@ -437,6 +428,8 @@ export default function NavigationLinkEdit( {
|
|
|
437
428
|
} }
|
|
438
429
|
label={ __( 'Label' ) }
|
|
439
430
|
autoComplete="off"
|
|
431
|
+
onFocus={ () => setIsLabelFieldFocused( true ) }
|
|
432
|
+
onBlur={ () => setIsLabelFieldFocused( false ) }
|
|
440
433
|
/>
|
|
441
434
|
<TextControl
|
|
442
435
|
__nextHasNoMarginBottom
|
|
@@ -505,52 +498,56 @@ export default function NavigationLinkEdit( {
|
|
|
505
498
|
</div>
|
|
506
499
|
) : (
|
|
507
500
|
<>
|
|
508
|
-
{ ! isInvalid &&
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
501
|
+
{ ! isInvalid &&
|
|
502
|
+
! isDraft &&
|
|
503
|
+
! isLabelFieldFocused && (
|
|
504
|
+
<>
|
|
505
|
+
<RichText
|
|
506
|
+
ref={ ref }
|
|
507
|
+
identifier="label"
|
|
508
|
+
className="wp-block-navigation-item__label"
|
|
509
|
+
value={ label }
|
|
510
|
+
onChange={ ( labelValue ) =>
|
|
511
|
+
setAttributes( {
|
|
512
|
+
label: labelValue,
|
|
513
|
+
} )
|
|
514
|
+
}
|
|
515
|
+
onMerge={ mergeBlocks }
|
|
516
|
+
onReplace={ onReplace }
|
|
517
|
+
__unstableOnSplitAtEnd={ () =>
|
|
518
|
+
insertBlocksAfter(
|
|
519
|
+
createBlock(
|
|
520
|
+
'core/navigation-link'
|
|
521
|
+
)
|
|
526
522
|
)
|
|
527
|
-
)
|
|
528
|
-
}
|
|
529
|
-
aria-label={ __(
|
|
530
|
-
'Navigation link text'
|
|
531
|
-
) }
|
|
532
|
-
placeholder={ itemLabelPlaceholder }
|
|
533
|
-
withoutInteractiveFormatting
|
|
534
|
-
allowedFormats={ [
|
|
535
|
-
'core/bold',
|
|
536
|
-
'core/italic',
|
|
537
|
-
'core/image',
|
|
538
|
-
'core/strikethrough',
|
|
539
|
-
] }
|
|
540
|
-
onClick={ () => {
|
|
541
|
-
if ( ! url ) {
|
|
542
|
-
setIsLinkOpen( true );
|
|
543
523
|
}
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
524
|
+
aria-label={ __(
|
|
525
|
+
'Navigation link text'
|
|
526
|
+
) }
|
|
527
|
+
placeholder={ itemLabelPlaceholder }
|
|
528
|
+
withoutInteractiveFormatting
|
|
529
|
+
allowedFormats={ [
|
|
530
|
+
'core/bold',
|
|
531
|
+
'core/italic',
|
|
532
|
+
'core/image',
|
|
533
|
+
'core/strikethrough',
|
|
534
|
+
] }
|
|
535
|
+
onClick={ () => {
|
|
536
|
+
if ( ! url ) {
|
|
537
|
+
setIsLinkOpen( true );
|
|
538
|
+
}
|
|
539
|
+
} }
|
|
540
|
+
/>
|
|
541
|
+
{ description && (
|
|
542
|
+
<span className="wp-block-navigation-item__description">
|
|
543
|
+
{ description }
|
|
544
|
+
</span>
|
|
545
|
+
) }
|
|
546
|
+
</>
|
|
547
|
+
) }
|
|
548
|
+
{ ( isInvalid ||
|
|
549
|
+
isDraft ||
|
|
550
|
+
isLabelFieldFocused ) && (
|
|
554
551
|
<div className="wp-block-navigation-link__placeholder-text wp-block-navigation-link__label">
|
|
555
552
|
<Tooltip
|
|
556
553
|
position="top center"
|
|
@@ -570,7 +567,11 @@ export default function NavigationLinkEdit( {
|
|
|
570
567
|
// See `updateAttributes` for more details.
|
|
571
568
|
`${ decodeEntities(
|
|
572
569
|
label
|
|
573
|
-
) } ${
|
|
570
|
+
) } ${
|
|
571
|
+
isInvalid || isDraft
|
|
572
|
+
? placeholderText
|
|
573
|
+
: ''
|
|
574
|
+
}`.trim()
|
|
574
575
|
}
|
|
575
576
|
</span>
|
|
576
577
|
<span className="wp-block-navigation-link__missing_text-tooltip">
|
|
@@ -589,7 +590,6 @@ export default function NavigationLinkEdit( {
|
|
|
589
590
|
link={ attributes }
|
|
590
591
|
onClose={ () => setIsLinkOpen( false ) }
|
|
591
592
|
anchor={ popoverAnchor }
|
|
592
|
-
hasCreateSuggestion={ userCanCreate }
|
|
593
593
|
onRemove={ removeLink }
|
|
594
594
|
onChange={ ( updatedValue ) => {
|
|
595
595
|
updateAttributes(
|
|
@@ -10,7 +10,10 @@ import {
|
|
|
10
10
|
store as blockEditorStore,
|
|
11
11
|
} from '@wordpress/block-editor';
|
|
12
12
|
import { createInterpolateElement, useMemo } from '@wordpress/element';
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
store as coreStore,
|
|
15
|
+
useResourcePermissions,
|
|
16
|
+
} from '@wordpress/core-data';
|
|
14
17
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
15
18
|
import { switchToBlockType } from '@wordpress/blocks';
|
|
16
19
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
@@ -125,6 +128,8 @@ function LinkControlTransforms( { clientId } ) {
|
|
|
125
128
|
|
|
126
129
|
export function LinkUI( props ) {
|
|
127
130
|
const { saveEntityRecord } = useDispatch( coreStore );
|
|
131
|
+
const pagesPermissions = useResourcePermissions( 'pages' );
|
|
132
|
+
const postsPermissions = useResourcePermissions( 'posts' );
|
|
128
133
|
|
|
129
134
|
async function handleCreate( pageTitle ) {
|
|
130
135
|
const postType = props.link.type || 'page';
|
|
@@ -155,6 +160,13 @@ export function LinkUI( props ) {
|
|
|
155
160
|
|
|
156
161
|
const { label, url, opensInNewTab, type, kind } = props.link;
|
|
157
162
|
|
|
163
|
+
let userCanCreate = false;
|
|
164
|
+
if ( ! type || type === 'page' ) {
|
|
165
|
+
userCanCreate = pagesPermissions.canCreate;
|
|
166
|
+
} else if ( type === 'post' ) {
|
|
167
|
+
userCanCreate = postsPermissions.canCreate;
|
|
168
|
+
}
|
|
169
|
+
|
|
158
170
|
// Memoize link value to avoid overriding the LinkControl's internal state.
|
|
159
171
|
// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.
|
|
160
172
|
const link = useMemo(
|
|
@@ -179,7 +191,7 @@ export function LinkUI( props ) {
|
|
|
179
191
|
className={ props.className }
|
|
180
192
|
value={ link }
|
|
181
193
|
showInitialSuggestions={ true }
|
|
182
|
-
withCreateSuggestion={
|
|
194
|
+
withCreateSuggestion={ userCanCreate }
|
|
183
195
|
createSuggestion={ handleCreate }
|
|
184
196
|
createSuggestionButtonText={ ( searchTerm ) => {
|
|
185
197
|
let format;
|
|
@@ -320,8 +320,8 @@ export default function NavigationSubmenuEdit( {
|
|
|
320
320
|
getNavigationChildBlockProps( innerBlocksColors );
|
|
321
321
|
const innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {
|
|
322
322
|
allowedBlocks,
|
|
323
|
-
|
|
324
|
-
|
|
323
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
324
|
+
directInsert: true,
|
|
325
325
|
|
|
326
326
|
// Ensure block toolbar is not too far removed from item
|
|
327
327
|
// being edited.
|
|
@@ -5,16 +5,6 @@
|
|
|
5
5
|
* @package WordPress
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* Build an array with CSS classes and inline styles defining the colors
|
|
10
|
-
* which will be applied to the navigation markup in the front-end.
|
|
11
|
-
*
|
|
12
|
-
* @param array $context Navigation block context.
|
|
13
|
-
* @param array $attributes Block attributes.
|
|
14
|
-
* @param bool $is_sub_menu Whether the block is a sub-menu.
|
|
15
|
-
* @return array Colors CSS classes and inline styles.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
8
|
/**
|
|
19
9
|
* Build an array with CSS classes and inline styles defining the font sizes
|
|
20
10
|
* which will be applied to the navigation markup in the front-end.
|
|
@@ -199,9 +189,9 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
|
|
|
199
189
|
$attributes['style']['color']['background'] = $block->context['customOverlayBackgroundColor'];
|
|
200
190
|
}
|
|
201
191
|
|
|
202
|
-
// This allows us to be able to get a response from
|
|
192
|
+
// This allows us to be able to get a response from wp_apply_colors_support.
|
|
203
193
|
$block->block_type->supports['color'] = true;
|
|
204
|
-
$colors_supports =
|
|
194
|
+
$colors_supports = wp_apply_colors_support( $block->block_type, $attributes );
|
|
205
195
|
$css_classes = 'wp-block-navigation__submenu-container';
|
|
206
196
|
if ( array_key_exists( 'class', $colors_supports ) ) {
|
|
207
197
|
$css_classes .= ' ' . $colors_supports['class'];
|
|
@@ -5,14 +5,14 @@ import { Button, Modal } from '@wordpress/components';
|
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
6
|
|
|
7
7
|
export const convertDescription = __(
|
|
8
|
-
'This
|
|
8
|
+
'This page list is synced with the published pages on your site. Detach the page list to add, delete, or reorder pages yourself.'
|
|
9
9
|
);
|
|
10
10
|
|
|
11
11
|
export function ConvertToLinksModal( { onClick, onClose, disabled } ) {
|
|
12
12
|
return (
|
|
13
13
|
<Modal
|
|
14
14
|
onRequestClose={ onClose }
|
|
15
|
-
title={ __( 'Edit
|
|
15
|
+
title={ __( 'Edit Page List' ) }
|
|
16
16
|
className={ 'wp-block-page-list-modal' }
|
|
17
17
|
aria={ {
|
|
18
18
|
describedby: 'wp-block-page-list-modal__description',
|
|
@@ -30,7 +30,7 @@ export function ConvertToLinksModal( { onClick, onClose, disabled } ) {
|
|
|
30
30
|
disabled={ disabled }
|
|
31
31
|
onClick={ onClick }
|
|
32
32
|
>
|
|
33
|
-
{ __( '
|
|
33
|
+
{ __( 'Detach' ) }
|
|
34
34
|
</Button>
|
|
35
35
|
</div>
|
|
36
36
|
</Modal>
|