@wordpress/block-library 8.0.0 → 8.2.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/LICENSE.md +1 -1
- package/build/archives/edit.js +1 -0
- package/build/archives/edit.js.map +1 -1
- package/build/audio/edit.js +2 -0
- package/build/audio/edit.js.map +1 -1
- package/build/categories/edit.js +1 -1
- package/build/categories/edit.js.map +1 -1
- package/build/comments/edit/comments-inspector-controls.js +9 -3
- package/build/comments/edit/comments-inspector-controls.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/embed/embed-preview.js +1 -0
- package/build/embed/embed-preview.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/freeform/edit.js +21 -6
- package/build/freeform/edit.js.map +1 -1
- package/build/freeform/modal.js +97 -0
- package/build/freeform/modal.js.map +1 -0
- package/build/gallery/edit.js +15 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +3 -16
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/v1/edit.js +2 -0
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/group/edit.js +1 -0
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -0
- package/build/group/index.js.map +1 -1
- package/build/image/image.js +7 -10
- package/build/image/image.js.map +1 -1
- package/build/latest-posts/edit.js +11 -8
- package/build/latest-posts/edit.js.map +1 -1
- package/build/media-text/edit.js +1 -0
- package/build/media-text/edit.js.map +1 -1
- package/build/missing/edit.native.js +2 -2
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/edit/index.js +9 -7
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +81 -22
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +15 -10
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/utils.js +81 -0
- package/build/navigation/edit/utils.js.map +1 -1
- package/build/navigation/leaf-more-menu.js +95 -0
- package/build/navigation/leaf-more-menu.js.map +1 -0
- package/build/navigation-link/edit.js +10 -61
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/update-attributes.js +3 -3
- package/build/navigation-link/update-attributes.js.map +1 -1
- package/build/navigation-submenu/edit.js +7 -72
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +16 -15
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +29 -2
- package/build/page-list/index.js.map +1 -1
- package/build/page-list-item/edit.js +9 -5
- package/build/page-list-item/edit.js.map +1 -1
- package/build/page-list-item/index.js +2 -1
- package/build/page-list-item/index.js.map +1 -1
- package/build/post-author/edit.js +2 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +1 -0
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/overlay.js +0 -1
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/query/edit/index.js +2 -1
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +11 -5
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/order-control.js +1 -0
- package/build/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build/query/edit/inspector-controls/sticky-control.js +1 -0
- package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +101 -37
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/edit/query-content.js +10 -4
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +17 -12
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +73 -1
- package/build/query/utils.js.map +1 -1
- package/build/search/edit.js +2 -2
- package/build/search/edit.js.map +1 -1
- package/build/social-link/edit.js +2 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.js +0 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/table/edit.js +1 -0
- package/build/table/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +1 -1
- package/build/table-of-contents/edit.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/advanced-controls.js +23 -2
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/import-controls.js +160 -0
- package/build/template-part/edit/import-controls.js.map +1 -0
- package/build/template-part/edit/index.js +2 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +48 -0
- package/build/template-part/edit/utils/transformers.js.map +1 -0
- package/build/video/edit-common-settings.js +6 -5
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +1 -0
- package/build/video/edit.js.map +1 -1
- package/build/video/tracks-editor.js +1 -0
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/archives/edit.js +1 -0
- package/build-module/archives/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -0
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/categories/edit.js +1 -1
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/comments/edit/comments-inspector-controls.js +9 -3
- package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +3 -3
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/embed/embed-preview.js +1 -0
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/freeform/edit.js +22 -8
- package/build-module/freeform/edit.js.map +1 -1
- package/build-module/freeform/modal.js +90 -0
- package/build-module/freeform/modal.js.map +1 -0
- package/build-module/gallery/edit.js +16 -3
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +4 -16
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/v1/edit.js +2 -0
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/group/edit.js +1 -0
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/image.js +7 -10
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-posts/edit.js +12 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/media-text/edit.js +1 -0
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/missing/edit.native.js +2 -2
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/edit/index.js +9 -7
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +80 -25
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +16 -11
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/utils.js +75 -0
- package/build-module/navigation/edit/utils.js.map +1 -1
- package/build-module/navigation/leaf-more-menu.js +76 -0
- package/build-module/navigation/leaf-more-menu.js.map +1 -0
- package/build-module/navigation-link/edit.js +10 -62
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +3 -3
- package/build-module/navigation-link/update-attributes.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +6 -72
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +17 -15
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +30 -3
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list-item/edit.js +9 -6
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/page-list-item/index.js +2 -1
- package/build-module/page-list-item/index.js.map +1 -1
- package/build-module/post-author/edit.js +2 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +1 -0
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +0 -1
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/query/edit/index.js +2 -1
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +11 -5
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/order-control.js +1 -0
- package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +99 -35
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/edit/query-content.js +9 -2
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +16 -12
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +69 -0
- package/build-module/query/utils.js.map +1 -1
- package/build-module/search/edit.js +2 -2
- package/build-module/search/edit.js.map +1 -1
- package/build-module/social-link/edit.js +4 -3
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.js +0 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/table/edit.js +1 -0
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +1 -1
- package/build-module/table-of-contents/edit.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/advanced-controls.js +22 -2
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +146 -0
- package/build-module/template-part/edit/import-controls.js.map +1 -0
- package/build-module/template-part/edit/index.js +2 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +40 -0
- package/build-module/template-part/edit/utils/transformers.js.map +1 -0
- package/build-module/video/edit-common-settings.js +6 -5
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +1 -0
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/tracks-editor.js +1 -0
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/archives/editor-rtl.css +3 -3
- package/build-style/archives/editor.css +3 -3
- package/build-style/archives/style-rtl.css +3 -3
- package/build-style/archives/style.css +3 -3
- package/build-style/audio/editor-rtl.css +3 -3
- package/build-style/audio/editor.css +3 -3
- package/build-style/audio/style-rtl.css +3 -3
- package/build-style/audio/style.css +3 -3
- package/build-style/audio/theme-rtl.css +3 -3
- package/build-style/audio/theme.css +3 -3
- package/build-style/avatar/editor-rtl.css +3 -3
- package/build-style/avatar/editor.css +3 -3
- package/build-style/avatar/style-rtl.css +3 -3
- package/build-style/avatar/style.css +3 -3
- package/build-style/block/editor-rtl.css +3 -3
- package/build-style/block/editor.css +3 -3
- package/build-style/button/editor-rtl.css +3 -3
- package/build-style/button/editor.css +3 -3
- package/build-style/button/style-rtl.css +3 -3
- package/build-style/button/style.css +3 -3
- package/build-style/buttons/editor-rtl.css +3 -3
- package/build-style/buttons/editor.css +3 -3
- package/build-style/buttons/style-rtl.css +3 -3
- package/build-style/buttons/style.css +3 -3
- package/build-style/calendar/style-rtl.css +3 -3
- package/build-style/calendar/style.css +3 -3
- package/build-style/categories/editor-rtl.css +3 -3
- package/build-style/categories/editor.css +3 -3
- package/build-style/categories/style-rtl.css +3 -3
- package/build-style/categories/style.css +3 -3
- package/build-style/classic-rtl.css +3 -3
- package/build-style/classic.css +3 -3
- package/build-style/code/editor-rtl.css +3 -3
- package/build-style/code/editor.css +3 -3
- package/build-style/code/style-rtl.css +3 -3
- package/build-style/code/style.css +3 -3
- package/build-style/code/theme-rtl.css +3 -3
- package/build-style/code/theme.css +3 -3
- package/build-style/columns/editor-rtl.css +3 -3
- package/build-style/columns/editor.css +3 -3
- package/build-style/columns/style-rtl.css +3 -3
- package/build-style/columns/style.css +3 -3
- package/build-style/comment-author-avatar/editor-rtl.css +3 -3
- package/build-style/comment-author-avatar/editor.css +3 -3
- package/build-style/comment-content/style-rtl.css +3 -3
- package/build-style/comment-content/style.css +3 -3
- package/build-style/comment-template/style-rtl.css +3 -3
- package/build-style/comment-template/style.css +3 -3
- package/build-style/comments/editor-rtl.css +3 -3
- package/build-style/comments/editor.css +3 -3
- package/build-style/comments/style-rtl.css +3 -3
- package/build-style/comments/style.css +3 -3
- package/build-style/comments-pagination/editor-rtl.css +3 -3
- package/build-style/comments-pagination/editor.css +3 -3
- package/build-style/comments-pagination/style-rtl.css +3 -3
- package/build-style/comments-pagination/style.css +3 -3
- package/build-style/comments-pagination-numbers/editor-rtl.css +3 -3
- package/build-style/comments-pagination-numbers/editor.css +3 -3
- package/build-style/comments-title/editor-rtl.css +3 -3
- package/build-style/comments-title/editor.css +3 -3
- package/build-style/common-rtl.css +3 -3
- package/build-style/common.css +3 -3
- package/build-style/cover/editor-rtl.css +3 -3
- package/build-style/cover/editor.css +3 -3
- package/build-style/cover/style-rtl.css +3 -3
- package/build-style/cover/style.css +3 -3
- package/build-style/editor-elements-rtl.css +3 -3
- package/build-style/editor-elements.css +3 -3
- package/build-style/editor-rtl.css +7 -9
- package/build-style/editor.css +7 -9
- package/build-style/elements-rtl.css +3 -3
- package/build-style/elements.css +3 -3
- package/build-style/embed/editor-rtl.css +3 -3
- package/build-style/embed/editor.css +3 -3
- package/build-style/embed/style-rtl.css +3 -3
- package/build-style/embed/style.css +3 -3
- package/build-style/embed/theme-rtl.css +3 -3
- package/build-style/embed/theme.css +3 -3
- package/build-style/file/editor-rtl.css +3 -3
- package/build-style/file/editor.css +3 -3
- package/build-style/file/style-rtl.css +3 -3
- package/build-style/file/style.css +3 -3
- package/build-style/freeform/editor-rtl.css +3 -3
- package/build-style/freeform/editor.css +3 -3
- package/build-style/gallery/editor-rtl.css +3 -3
- package/build-style/gallery/editor.css +3 -3
- package/build-style/gallery/style-rtl.css +3 -3
- package/build-style/gallery/style.css +3 -3
- package/build-style/gallery/theme-rtl.css +3 -3
- package/build-style/gallery/theme.css +3 -3
- package/build-style/group/editor-rtl.css +3 -3
- package/build-style/group/editor.css +3 -3
- package/build-style/group/style-rtl.css +3 -3
- package/build-style/group/style.css +3 -3
- package/build-style/group/theme-rtl.css +3 -3
- package/build-style/group/theme.css +3 -3
- package/build-style/heading/style-rtl.css +3 -3
- package/build-style/heading/style.css +3 -3
- package/build-style/html/editor-rtl.css +3 -3
- package/build-style/html/editor.css +3 -3
- package/build-style/image/editor-rtl.css +3 -3
- package/build-style/image/editor.css +3 -3
- package/build-style/image/style-rtl.css +3 -3
- package/build-style/image/style.css +3 -3
- package/build-style/image/theme-rtl.css +3 -3
- package/build-style/image/theme.css +3 -3
- package/build-style/latest-comments/style-rtl.css +3 -3
- package/build-style/latest-comments/style.css +3 -3
- package/build-style/latest-posts/editor-rtl.css +3 -3
- package/build-style/latest-posts/editor.css +3 -3
- package/build-style/latest-posts/style-rtl.css +3 -3
- package/build-style/latest-posts/style.css +3 -3
- package/build-style/list/style-rtl.css +3 -3
- package/build-style/list/style.css +3 -3
- package/build-style/media-text/editor-rtl.css +3 -3
- package/build-style/media-text/editor.css +3 -3
- package/build-style/media-text/style-rtl.css +3 -3
- package/build-style/media-text/style.css +3 -3
- package/build-style/more/editor-rtl.css +3 -3
- package/build-style/more/editor.css +3 -3
- package/build-style/navigation/editor-rtl.css +3 -9
- package/build-style/navigation/editor.css +3 -9
- package/build-style/navigation/style-rtl.css +3 -4
- package/build-style/navigation/style.css +3 -4
- package/build-style/navigation-link/editor-rtl.css +3 -3
- package/build-style/navigation-link/editor.css +3 -3
- package/build-style/navigation-link/style-rtl.css +3 -3
- package/build-style/navigation-link/style.css +3 -3
- package/build-style/navigation-submenu/editor-rtl.css +3 -3
- package/build-style/navigation-submenu/editor.css +3 -3
- package/build-style/nextpage/editor-rtl.css +3 -3
- package/build-style/nextpage/editor.css +3 -3
- package/build-style/page-list/editor-rtl.css +7 -3
- package/build-style/page-list/editor.css +7 -3
- package/build-style/page-list/style-rtl.css +3 -3
- package/build-style/page-list/style.css +3 -3
- package/build-style/paragraph/editor-rtl.css +3 -3
- package/build-style/paragraph/editor.css +3 -3
- package/build-style/paragraph/style-rtl.css +3 -3
- package/build-style/paragraph/style.css +3 -3
- package/build-style/post-author/style-rtl.css +3 -3
- package/build-style/post-author/style.css +3 -3
- package/build-style/post-comments-form/editor-rtl.css +3 -3
- package/build-style/post-comments-form/editor.css +3 -3
- package/build-style/post-comments-form/style-rtl.css +3 -3
- package/build-style/post-comments-form/style.css +3 -3
- package/build-style/post-date/style-rtl.css +3 -3
- package/build-style/post-date/style.css +3 -3
- package/build-style/post-excerpt/editor-rtl.css +3 -3
- package/build-style/post-excerpt/editor.css +3 -3
- package/build-style/post-excerpt/style-rtl.css +3 -3
- package/build-style/post-excerpt/style.css +3 -3
- package/build-style/post-featured-image/editor-rtl.css +3 -3
- package/build-style/post-featured-image/editor.css +3 -3
- package/build-style/post-featured-image/style-rtl.css +3 -3
- package/build-style/post-featured-image/style.css +3 -3
- package/build-style/post-navigation-link/style-rtl.css +3 -3
- package/build-style/post-navigation-link/style.css +3 -3
- package/build-style/post-template/editor-rtl.css +3 -3
- package/build-style/post-template/editor.css +3 -3
- package/build-style/post-template/style-rtl.css +3 -3
- package/build-style/post-template/style.css +3 -3
- package/build-style/post-terms/style-rtl.css +3 -3
- package/build-style/post-terms/style.css +3 -3
- package/build-style/post-title/style-rtl.css +3 -3
- package/build-style/post-title/style.css +3 -3
- package/build-style/preformatted/style-rtl.css +3 -3
- package/build-style/preformatted/style.css +3 -3
- package/build-style/pullquote/editor-rtl.css +3 -3
- package/build-style/pullquote/editor.css +3 -3
- package/build-style/pullquote/style-rtl.css +3 -3
- package/build-style/pullquote/style.css +3 -3
- package/build-style/pullquote/theme-rtl.css +3 -3
- package/build-style/pullquote/theme.css +3 -3
- package/build-style/query/editor-rtl.css +3 -3
- package/build-style/query/editor.css +3 -3
- package/build-style/query-pagination/editor-rtl.css +3 -3
- package/build-style/query-pagination/editor.css +3 -3
- package/build-style/query-pagination/style-rtl.css +3 -3
- package/build-style/query-pagination/style.css +3 -3
- package/build-style/query-pagination-numbers/editor-rtl.css +3 -3
- package/build-style/query-pagination-numbers/editor.css +3 -3
- package/build-style/query-title/style-rtl.css +3 -3
- package/build-style/query-title/style.css +3 -3
- package/build-style/quote/style-rtl.css +3 -3
- package/build-style/quote/style.css +3 -3
- package/build-style/quote/theme-rtl.css +3 -3
- package/build-style/quote/theme.css +3 -3
- package/build-style/read-more/style-rtl.css +3 -3
- package/build-style/read-more/style.css +3 -3
- package/build-style/reset-rtl.css +3 -3
- package/build-style/reset.css +3 -3
- package/build-style/rss/editor-rtl.css +3 -3
- package/build-style/rss/editor.css +3 -3
- package/build-style/rss/style-rtl.css +3 -3
- package/build-style/rss/style.css +3 -3
- package/build-style/search/editor-rtl.css +3 -3
- package/build-style/search/editor.css +3 -3
- package/build-style/search/style-rtl.css +3 -3
- package/build-style/search/style.css +3 -3
- package/build-style/search/theme-rtl.css +3 -3
- package/build-style/search/theme.css +3 -3
- package/build-style/separator/editor-rtl.css +3 -3
- package/build-style/separator/editor.css +3 -3
- package/build-style/separator/style-rtl.css +3 -3
- package/build-style/separator/style.css +3 -3
- package/build-style/separator/theme-rtl.css +3 -3
- package/build-style/separator/theme.css +3 -3
- package/build-style/shortcode/editor-rtl.css +3 -3
- package/build-style/shortcode/editor.css +3 -3
- package/build-style/site-logo/editor-rtl.css +3 -3
- package/build-style/site-logo/editor.css +3 -3
- package/build-style/site-logo/style-rtl.css +3 -3
- package/build-style/site-logo/style.css +3 -3
- package/build-style/site-tagline/editor-rtl.css +3 -3
- package/build-style/site-tagline/editor.css +3 -3
- package/build-style/site-title/editor-rtl.css +3 -3
- package/build-style/site-title/editor.css +3 -3
- package/build-style/site-title/style-rtl.css +3 -3
- package/build-style/site-title/style.css +3 -3
- package/build-style/social-link/editor-rtl.css +3 -3
- package/build-style/social-link/editor.css +3 -3
- package/build-style/social-links/editor-rtl.css +3 -3
- package/build-style/social-links/editor.css +3 -3
- package/build-style/social-links/style-rtl.css +3 -3
- package/build-style/social-links/style.css +3 -3
- package/build-style/spacer/editor-rtl.css +3 -3
- package/build-style/spacer/editor.css +3 -3
- package/build-style/spacer/style-rtl.css +3 -3
- package/build-style/spacer/style.css +3 -3
- package/build-style/style-rtl.css +13 -5
- package/build-style/style.css +13 -5
- package/build-style/table/editor-rtl.css +3 -3
- package/build-style/table/editor.css +3 -3
- package/build-style/table/style-rtl.css +9 -3
- package/build-style/table/style.css +9 -3
- package/build-style/table/theme-rtl.css +3 -9
- package/build-style/table/theme.css +3 -9
- package/build-style/tag-cloud/style-rtl.css +3 -3
- package/build-style/tag-cloud/style.css +3 -3
- package/build-style/template-part/editor-rtl.css +3 -3
- package/build-style/template-part/editor.css +3 -3
- package/build-style/template-part/theme-rtl.css +3 -3
- package/build-style/template-part/theme.css +3 -3
- package/build-style/text-columns/editor-rtl.css +3 -3
- package/build-style/text-columns/editor.css +3 -3
- package/build-style/text-columns/style-rtl.css +3 -3
- package/build-style/text-columns/style.css +3 -3
- package/build-style/theme-rtl.css +3 -9
- package/build-style/theme.css +3 -9
- package/build-style/verse/style-rtl.css +7 -4
- package/build-style/verse/style.css +7 -4
- package/build-style/video/editor-rtl.css +3 -3
- package/build-style/video/editor.css +3 -3
- package/build-style/video/style-rtl.css +3 -3
- package/build-style/video/style.css +3 -3
- package/build-style/video/theme-rtl.css +3 -3
- package/build-style/video/theme.css +3 -3
- package/package.json +29 -29
- package/src/archives/edit.js +1 -0
- package/src/audio/edit.js +2 -0
- package/src/categories/edit.js +1 -1
- package/src/comments/edit/comments-inspector-controls.js +12 -2
- package/src/comments/index.php +0 -1
- package/src/cover/edit/inspector-controls.js +4 -4
- package/src/embed/embed-preview.js +1 -0
- package/src/file/inspector.js +1 -0
- package/src/freeform/edit.js +48 -29
- package/src/freeform/modal.js +111 -0
- package/src/gallery/edit.js +19 -2
- package/src/gallery/gallery.js +4 -13
- package/src/gallery/v1/edit.js +2 -0
- package/src/group/block.json +3 -0
- package/src/group/edit.js +1 -0
- package/src/image/image.js +27 -36
- package/src/latest-posts/edit.js +6 -7
- package/src/latest-posts/test/__snapshots__/edit.native.js.snap +3 -0
- package/src/latest-posts/test/edit.native.js +49 -0
- package/src/media-text/edit.js +1 -0
- package/src/missing/edit.native.js +13 -6
- package/src/more/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/more/test/edit.native.js +41 -0
- package/src/navigation/edit/index.js +6 -4
- package/src/navigation/edit/menu-inspector-controls.js +115 -44
- package/src/navigation/edit/navigation-menu-selector.js +24 -11
- package/src/navigation/edit/utils.js +82 -0
- package/src/navigation/editor.scss +0 -7
- package/src/navigation/index.php +32 -0
- package/src/navigation/leaf-more-menu.js +93 -0
- package/src/navigation/style.scss +0 -1
- package/src/navigation-link/edit.js +23 -65
- package/src/navigation-link/index.php +62 -3
- package/src/navigation-link/update-attributes.js +1 -1
- package/src/navigation-submenu/edit.js +29 -100
- package/src/navigation-submenu/index.php +34 -2
- package/src/page-list/block.json +18 -1
- package/src/page-list/edit.js +30 -22
- package/src/page-list/editor.scss +4 -0
- package/src/page-list/index.js +8 -2
- package/src/page-list/index.php +14 -10
- package/src/page-list-item/block.json +2 -1
- package/src/page-list-item/edit.js +17 -9
- package/src/post-author/edit.js +2 -0
- package/src/post-featured-image/dimension-controls.js +1 -0
- package/src/post-featured-image/overlay.js +0 -1
- package/src/query/edit/index.js +1 -0
- package/src/query/edit/inspector-controls/index.js +50 -38
- package/src/query/edit/inspector-controls/order-control.js +1 -0
- package/src/query/edit/inspector-controls/sticky-control.js +1 -0
- package/src/query/edit/inspector-controls/taxonomy-controls.js +102 -38
- package/src/query/edit/query-content.js +15 -1
- package/src/query/edit/query-placeholder.js +15 -14
- package/src/query/utils.js +59 -1
- package/src/rss/index.php +1 -1
- package/src/search/edit.js +2 -2
- package/src/separator/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/separator/test/edit.native.js +41 -0
- package/src/social-link/edit.js +5 -4
- package/src/social-links/edit.js +0 -1
- package/src/table/edit.js +1 -0
- package/src/table/style.scss +8 -0
- package/src/table/theme.scss +0 -8
- package/src/table-of-contents/edit.js +1 -1
- package/src/tag-cloud/edit.js +1 -0
- package/src/template-part/edit/advanced-controls.js +36 -0
- package/src/template-part/edit/import-controls.js +180 -0
- package/src/template-part/edit/index.js +1 -0
- package/src/template-part/edit/utils/transformers.js +37 -0
- package/src/verse/style.scss +4 -1
- package/src/verse/test/__snapshots__/edit.native.js.snap +13 -0
- package/src/verse/test/edit.native.js +40 -33
- package/src/video/edit-common-settings.js +6 -5
- package/src/video/edit.js +1 -0
- package/src/video/tracks-editor.js +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/query/constants.js +0 -16
- package/build/query/constants.js.map +0 -1
- package/build-module/query/constants.js +0 -7
- package/build-module/query/constants.js.map +0 -1
- package/src/query/constants.js +0 -7
package/src/page-list/index.php
CHANGED
|
@@ -139,13 +139,14 @@ function block_core_page_list_build_css_font_sizes( $context ) {
|
|
|
139
139
|
* @param boolean $show_submenu_icons Whether to show submenu indicator icons.
|
|
140
140
|
* @param boolean $is_navigation_child If block is a child of Navigation block.
|
|
141
141
|
* @param array $nested_pages The array of nested pages.
|
|
142
|
+
* @param boolean $is_nested Whether the submenu is nested or not.
|
|
142
143
|
* @param array $active_page_ancestor_ids An array of ancestor ids for active page.
|
|
143
144
|
* @param array $colors Color information for overlay styles.
|
|
144
145
|
* @param integer $depth The nesting depth.
|
|
145
146
|
*
|
|
146
147
|
* @return string List markup.
|
|
147
148
|
*/
|
|
148
|
-
function block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $active_page_ancestor_ids = array(), $colors = array(), $depth = 0 ) {
|
|
149
|
+
function block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids = array(), $colors = array(), $depth = 0 ) {
|
|
149
150
|
if ( empty( $nested_pages ) ) {
|
|
150
151
|
return;
|
|
151
152
|
}
|
|
@@ -173,7 +174,7 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
|
|
|
173
174
|
$navigation_child_content_class = $is_navigation_child ? ' wp-block-navigation-item__content' : '';
|
|
174
175
|
|
|
175
176
|
// If this is the first level of submenus, include the overlay colors.
|
|
176
|
-
if (
|
|
177
|
+
if ( ( ( 0 < $depth && ! $is_nested ) || $is_nested ) && isset( $colors['overlay_css_classes'], $colors['overlay_inline_styles'] ) ) {
|
|
177
178
|
$css_class .= ' ' . trim( implode( ' ', $colors['overlay_css_classes'] ) );
|
|
178
179
|
if ( '' !== $colors['overlay_inline_styles'] ) {
|
|
179
180
|
$style_attribute = sprintf( ' style="%s"', esc_attr( $colors['overlay_inline_styles'] ) );
|
|
@@ -207,12 +208,9 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
|
|
|
207
208
|
$markup .= '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>';
|
|
208
209
|
$markup .= '</button>';
|
|
209
210
|
}
|
|
210
|
-
$markup .= '<ul class="
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
$markup .= ' wp-block-navigation__submenu-container';
|
|
214
|
-
}
|
|
215
|
-
$markup .= '">' . block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $page['children'], $active_page_ancestor_ids, $colors, $depth + 1 ) . '</ul>';
|
|
211
|
+
$markup .= '<ul class="wp-block-navigation__submenu-container">';
|
|
212
|
+
$markup .= block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $page['children'], $is_nested, $active_page_ancestor_ids, $colors, $depth + 1 );
|
|
213
|
+
$markup .= '</ul>';
|
|
216
214
|
}
|
|
217
215
|
$markup .= '</li>';
|
|
218
216
|
}
|
|
@@ -253,6 +251,7 @@ function render_block_core_page_list( $attributes, $content, $block ) {
|
|
|
253
251
|
++$block_id;
|
|
254
252
|
|
|
255
253
|
$parent_page_id = $attributes['parentPageID'];
|
|
254
|
+
$is_nested = $attributes['isNested'];
|
|
256
255
|
|
|
257
256
|
$all_pages = get_pages(
|
|
258
257
|
array(
|
|
@@ -309,6 +308,11 @@ function render_block_core_page_list( $attributes, $content, $block ) {
|
|
|
309
308
|
$nested_pages = block_core_page_list_nest_pages( $top_level_pages, $pages_with_children );
|
|
310
309
|
|
|
311
310
|
if ( 0 !== $parent_page_id ) {
|
|
311
|
+
// If the parent page has no child pages, there is nothing to show.
|
|
312
|
+
if ( ! array_key_exists( $parent_page_id, $pages_with_children ) ) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
|
|
312
316
|
$nested_pages = block_core_page_list_nest_pages(
|
|
313
317
|
$pages_with_children[ $parent_page_id ],
|
|
314
318
|
$pages_with_children
|
|
@@ -321,9 +325,9 @@ function render_block_core_page_list( $attributes, $content, $block ) {
|
|
|
321
325
|
|
|
322
326
|
$show_submenu_icons = array_key_exists( 'showSubmenuIcon', $block->context ) ? $block->context['showSubmenuIcon'] : false;
|
|
323
327
|
|
|
324
|
-
$wrapper_markup = '<ul %1$s>%2$s</ul>';
|
|
328
|
+
$wrapper_markup = $is_nested ? '%2$s' : '<ul %1$s>%2$s</ul>';
|
|
325
329
|
|
|
326
|
-
$items_markup = block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $active_page_ancestor_ids, $colors );
|
|
330
|
+
$items_markup = block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids, $colors );
|
|
327
331
|
|
|
328
332
|
$wrapper_attributes = get_block_wrapper_attributes(
|
|
329
333
|
array(
|
|
@@ -6,7 +6,7 @@ import classnames from 'classnames';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
|
|
10
10
|
import { useSelect } from '@wordpress/data';
|
|
11
11
|
import { store as coreStore } from '@wordpress/core-data';
|
|
12
12
|
|
|
@@ -14,6 +14,10 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
16
16
|
import { ItemSubmenuIcon } from '../navigation-link/icons';
|
|
17
|
+
import {
|
|
18
|
+
getColors,
|
|
19
|
+
getNavigationChildBlockProps,
|
|
20
|
+
} from '../navigation/edit/utils';
|
|
17
21
|
|
|
18
22
|
function useFrontPageId() {
|
|
19
23
|
return useSelect( ( select ) => {
|
|
@@ -34,6 +38,17 @@ export default function PageListItemEdit( { context, attributes } ) {
|
|
|
34
38
|
const { id, label, link, hasChildren } = attributes;
|
|
35
39
|
const isNavigationChild = 'showSubmenuIcon' in context;
|
|
36
40
|
const frontPageId = useFrontPageId();
|
|
41
|
+
|
|
42
|
+
const innerBlocksColors = getColors( context, true );
|
|
43
|
+
|
|
44
|
+
const navigationChildBlockProps =
|
|
45
|
+
getNavigationChildBlockProps( innerBlocksColors );
|
|
46
|
+
const blockProps = useBlockProps( navigationChildBlockProps, {
|
|
47
|
+
className: 'wp-block-pages-list__item',
|
|
48
|
+
} );
|
|
49
|
+
|
|
50
|
+
const innerBlocksProps = useInnerBlocksProps( blockProps );
|
|
51
|
+
|
|
37
52
|
return (
|
|
38
53
|
<li
|
|
39
54
|
key={ id }
|
|
@@ -79,14 +94,7 @@ export default function PageListItemEdit( { context, attributes } ) {
|
|
|
79
94
|
<ItemSubmenuIcon />
|
|
80
95
|
</button>
|
|
81
96
|
) }
|
|
82
|
-
<ul
|
|
83
|
-
className={ classnames( 'submenu-container', {
|
|
84
|
-
'wp-block-navigation__submenu-container':
|
|
85
|
-
isNavigationChild,
|
|
86
|
-
} ) }
|
|
87
|
-
>
|
|
88
|
-
<InnerBlocks />
|
|
89
|
-
</ul>
|
|
97
|
+
<ul { ...innerBlocksProps }></ul>
|
|
90
98
|
</>
|
|
91
99
|
) }
|
|
92
100
|
</li>
|
package/src/post-author/edit.js
CHANGED
|
@@ -112,6 +112,7 @@ function PostAuthorEdit( {
|
|
|
112
112
|
/>
|
|
113
113
|
) ) || (
|
|
114
114
|
<SelectControl
|
|
115
|
+
__nextHasNoMarginBottom
|
|
115
116
|
label={ __( 'Author' ) }
|
|
116
117
|
value={ authorId }
|
|
117
118
|
options={ authorOptions }
|
|
@@ -127,6 +128,7 @@ function PostAuthorEdit( {
|
|
|
127
128
|
/>
|
|
128
129
|
{ showAvatar && (
|
|
129
130
|
<SelectControl
|
|
131
|
+
__nextHasNoMarginBottom
|
|
130
132
|
label={ __( 'Avatar size' ) }
|
|
131
133
|
value={ attributes.avatarSize }
|
|
132
134
|
options={ avatarSizes }
|
package/src/query/edit/index.js
CHANGED
|
@@ -110,6 +110,21 @@ export default function QueryInspectorControls( {
|
|
|
110
110
|
showColumnsControl ||
|
|
111
111
|
showOrderControl ||
|
|
112
112
|
showStickyControl;
|
|
113
|
+
const showTaxControl =
|
|
114
|
+
!! taxonomies?.length &&
|
|
115
|
+
isControlAllowed( allowedControls, 'taxQuery' );
|
|
116
|
+
const showAuthorControl = isControlAllowed( allowedControls, 'author' );
|
|
117
|
+
const showSearchControl = isControlAllowed( allowedControls, 'search' );
|
|
118
|
+
const showParentControl =
|
|
119
|
+
isControlAllowed( allowedControls, 'parents' ) &&
|
|
120
|
+
isPostTypeHierarchical;
|
|
121
|
+
|
|
122
|
+
const showFiltersPanel =
|
|
123
|
+
showTaxControl ||
|
|
124
|
+
showAuthorControl ||
|
|
125
|
+
showSearchControl ||
|
|
126
|
+
showParentControl;
|
|
127
|
+
|
|
113
128
|
return (
|
|
114
129
|
<>
|
|
115
130
|
{ showSettingsPanel && (
|
|
@@ -129,6 +144,7 @@ export default function QueryInspectorControls( {
|
|
|
129
144
|
) }
|
|
130
145
|
{ showPostTypeControl && (
|
|
131
146
|
<SelectControl
|
|
147
|
+
__nextHasNoMarginBottom
|
|
132
148
|
options={ postTypesSelectOptions }
|
|
133
149
|
value={ postType }
|
|
134
150
|
label={ __( 'Post type' ) }
|
|
@@ -179,7 +195,7 @@ export default function QueryInspectorControls( {
|
|
|
179
195
|
</PanelBody>
|
|
180
196
|
</InspectorControls>
|
|
181
197
|
) }
|
|
182
|
-
{ ! inherit && (
|
|
198
|
+
{ ! inherit && showFiltersPanel && (
|
|
183
199
|
<InspectorControls>
|
|
184
200
|
<ToolsPanel
|
|
185
201
|
className="block-library-query-toolspanel__filters"
|
|
@@ -194,26 +210,25 @@ export default function QueryInspectorControls( {
|
|
|
194
210
|
setQuerySearch( '' );
|
|
195
211
|
} }
|
|
196
212
|
>
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
{ isControlAllowed( allowedControls, 'author' ) && (
|
|
213
|
+
{ showTaxControl && (
|
|
214
|
+
<ToolsPanelItem
|
|
215
|
+
label={ __( 'Taxonomies' ) }
|
|
216
|
+
hasValue={ () =>
|
|
217
|
+
Object.values( taxQuery || {} ).some(
|
|
218
|
+
( terms ) => !! terms.length
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
onDeselect={ () =>
|
|
222
|
+
setQuery( { taxQuery: null } )
|
|
223
|
+
}
|
|
224
|
+
>
|
|
225
|
+
<TaxonomyControls
|
|
226
|
+
onChange={ setQuery }
|
|
227
|
+
query={ query }
|
|
228
|
+
/>
|
|
229
|
+
</ToolsPanelItem>
|
|
230
|
+
) }
|
|
231
|
+
{ showAuthorControl && (
|
|
217
232
|
<ToolsPanelItem
|
|
218
233
|
hasValue={ () => !! authorIds }
|
|
219
234
|
label={ __( 'Authors' ) }
|
|
@@ -225,7 +240,7 @@ export default function QueryInspectorControls( {
|
|
|
225
240
|
/>
|
|
226
241
|
</ToolsPanelItem>
|
|
227
242
|
) }
|
|
228
|
-
{
|
|
243
|
+
{ showSearchControl && (
|
|
229
244
|
<ToolsPanelItem
|
|
230
245
|
hasValue={ () => !! querySearch }
|
|
231
246
|
label={ __( 'Keyword' ) }
|
|
@@ -238,22 +253,19 @@ export default function QueryInspectorControls( {
|
|
|
238
253
|
/>
|
|
239
254
|
</ToolsPanelItem>
|
|
240
255
|
) }
|
|
241
|
-
{
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
/>
|
|
255
|
-
</ToolsPanelItem>
|
|
256
|
-
) }
|
|
256
|
+
{ showParentControl && (
|
|
257
|
+
<ToolsPanelItem
|
|
258
|
+
hasValue={ () => !! parents?.length }
|
|
259
|
+
label={ __( 'Parents' ) }
|
|
260
|
+
onDeselect={ () => setQuery( { parents: [] } ) }
|
|
261
|
+
>
|
|
262
|
+
<ParentControl
|
|
263
|
+
parents={ parents }
|
|
264
|
+
postType={ postType }
|
|
265
|
+
onChange={ setQuery }
|
|
266
|
+
/>
|
|
267
|
+
</ToolsPanelItem>
|
|
268
|
+
) }
|
|
257
269
|
</ToolsPanel>
|
|
258
270
|
</InspectorControls>
|
|
259
271
|
) }
|
|
@@ -4,12 +4,20 @@
|
|
|
4
4
|
import { FormTokenField } from '@wordpress/components';
|
|
5
5
|
import { useSelect } from '@wordpress/data';
|
|
6
6
|
import { store as coreStore } from '@wordpress/core-data';
|
|
7
|
+
import { useState, useEffect } from '@wordpress/element';
|
|
8
|
+
import { useDebounce } from '@wordpress/compose';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Internal dependencies
|
|
10
12
|
*/
|
|
11
13
|
import { useTaxonomies } from '../../utils';
|
|
12
|
-
|
|
14
|
+
|
|
15
|
+
const EMPTY_ARRAY = [];
|
|
16
|
+
const BASE_QUERY = {
|
|
17
|
+
order: 'asc',
|
|
18
|
+
_fields: 'id,name',
|
|
19
|
+
context: 'view',
|
|
20
|
+
};
|
|
13
21
|
|
|
14
22
|
// Helper function to get the term id based on user input in terms `FormTokenField`.
|
|
15
23
|
const getTermIdByTermValue = ( terms, termValue ) => {
|
|
@@ -35,20 +43,6 @@ const getTermIdByTermValue = ( terms, termValue ) => {
|
|
|
35
43
|
)?.id;
|
|
36
44
|
};
|
|
37
45
|
|
|
38
|
-
const useTaxonomyTerms = ( slug ) => {
|
|
39
|
-
return useSelect(
|
|
40
|
-
( select ) => {
|
|
41
|
-
const terms = select( coreStore ).getEntityRecords(
|
|
42
|
-
'taxonomy',
|
|
43
|
-
slug,
|
|
44
|
-
{ context: 'view', per_page: MAX_FETCHED_TERMS }
|
|
45
|
-
);
|
|
46
|
-
return { terms };
|
|
47
|
-
},
|
|
48
|
-
[ slug ]
|
|
49
|
-
);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
46
|
export function TaxonomyControls( { onChange, query } ) {
|
|
53
47
|
const { postType, taxQuery } = query;
|
|
54
48
|
|
|
@@ -60,7 +54,7 @@ export function TaxonomyControls( { onChange, query } ) {
|
|
|
60
54
|
return (
|
|
61
55
|
<>
|
|
62
56
|
{ taxonomies.map( ( taxonomy ) => {
|
|
63
|
-
const
|
|
57
|
+
const termIds = taxQuery?.[ taxonomy.slug ] || [];
|
|
64
58
|
const handleChange = ( newTermIds ) =>
|
|
65
59
|
onChange( {
|
|
66
60
|
taxQuery: {
|
|
@@ -73,7 +67,7 @@ export function TaxonomyControls( { onChange, query } ) {
|
|
|
73
67
|
<TaxonomyItem
|
|
74
68
|
key={ taxonomy.slug }
|
|
75
69
|
taxonomy={ taxonomy }
|
|
76
|
-
|
|
70
|
+
termIds={ termIds }
|
|
77
71
|
onChange={ handleChange }
|
|
78
72
|
/>
|
|
79
73
|
);
|
|
@@ -81,38 +75,108 @@ export function TaxonomyControls( { onChange, query } ) {
|
|
|
81
75
|
</>
|
|
82
76
|
);
|
|
83
77
|
}
|
|
84
|
-
function TaxonomyItem( { taxonomy, value, onChange } ) {
|
|
85
|
-
const { terms } = useTaxonomyTerms( taxonomy.slug );
|
|
86
|
-
if ( ! terms?.length ) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Renders a `FormTokenField` for a given taxonomy.
|
|
81
|
+
*
|
|
82
|
+
* @param {Object} props The props for the component.
|
|
83
|
+
* @param {Object} props.taxonomy The taxonomy object.
|
|
84
|
+
* @param {number[]} props.termIds An array with the block's term ids for the given taxonomy.
|
|
85
|
+
* @param {Function} props.onChange Callback `onChange` function.
|
|
86
|
+
* @return {JSX.Element} The rendered component.
|
|
87
|
+
*/
|
|
88
|
+
function TaxonomyItem( { taxonomy, termIds, onChange } ) {
|
|
89
|
+
const [ search, setSearch ] = useState( '' );
|
|
90
|
+
const [ value, setValue ] = useState( EMPTY_ARRAY );
|
|
91
|
+
const [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );
|
|
92
|
+
const debouncedSearch = useDebounce( setSearch, 250 );
|
|
93
|
+
const { searchResults, searchHasResolved } = useSelect(
|
|
94
|
+
( select ) => {
|
|
95
|
+
if ( ! search ) {
|
|
96
|
+
return { searchResults: EMPTY_ARRAY, searchHasResolved: true };
|
|
97
|
+
}
|
|
98
|
+
const { getEntityRecords, hasFinishedResolution } =
|
|
99
|
+
select( coreStore );
|
|
100
|
+
const selectorArgs = [
|
|
101
|
+
'taxonomy',
|
|
102
|
+
taxonomy.slug,
|
|
103
|
+
{
|
|
104
|
+
...BASE_QUERY,
|
|
105
|
+
search,
|
|
106
|
+
orderby: 'name',
|
|
107
|
+
exclude: termIds,
|
|
108
|
+
per_page: 20,
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
return {
|
|
112
|
+
searchResults: getEntityRecords( ...selectorArgs ),
|
|
113
|
+
searchHasResolved: hasFinishedResolution(
|
|
114
|
+
'getEntityRecords',
|
|
115
|
+
selectorArgs
|
|
116
|
+
),
|
|
117
|
+
};
|
|
118
|
+
},
|
|
119
|
+
[ search, termIds ]
|
|
120
|
+
);
|
|
121
|
+
// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.
|
|
122
|
+
// They are used to extract the terms' names to populate the `FormTokenField` properly
|
|
123
|
+
// and to sanitize the provided `termIds`, by setting only the ones that exist.
|
|
124
|
+
const existingTerms = useSelect(
|
|
125
|
+
( select ) => {
|
|
126
|
+
if ( ! termIds?.length ) return EMPTY_ARRAY;
|
|
127
|
+
const { getEntityRecords } = select( coreStore );
|
|
128
|
+
return getEntityRecords( 'taxonomy', taxonomy.slug, {
|
|
129
|
+
...BASE_QUERY,
|
|
130
|
+
include: termIds,
|
|
131
|
+
per_page: termIds.length,
|
|
132
|
+
} );
|
|
133
|
+
},
|
|
134
|
+
[ termIds ]
|
|
135
|
+
);
|
|
136
|
+
// Update the `value` state only after the selectors are resolved
|
|
137
|
+
// to avoid emptying the input when we're changing terms.
|
|
138
|
+
useEffect( () => {
|
|
139
|
+
if ( ! termIds?.length ) {
|
|
140
|
+
setValue( EMPTY_ARRAY );
|
|
141
|
+
}
|
|
142
|
+
if ( ! existingTerms?.length ) return;
|
|
143
|
+
// Returns only the existing entity ids. This prevents the component
|
|
144
|
+
// from crashing in the editor, when non existing ids are provided.
|
|
145
|
+
const sanitizedValue = termIds.reduce( ( accumulator, id ) => {
|
|
146
|
+
const entity = existingTerms.find( ( term ) => term.id === id );
|
|
147
|
+
if ( entity ) {
|
|
148
|
+
accumulator.push( {
|
|
149
|
+
id,
|
|
150
|
+
value: entity.name,
|
|
151
|
+
} );
|
|
152
|
+
}
|
|
153
|
+
return accumulator;
|
|
154
|
+
}, [] );
|
|
155
|
+
setValue( sanitizedValue );
|
|
156
|
+
}, [ termIds, existingTerms ] );
|
|
157
|
+
// Update suggestions only when the query has resolved.
|
|
158
|
+
useEffect( () => {
|
|
159
|
+
if ( ! searchHasResolved ) return;
|
|
160
|
+
setSuggestions( searchResults.map( ( result ) => result.name ) );
|
|
161
|
+
}, [ searchResults, searchHasResolved ] );
|
|
90
162
|
const onTermsChange = ( newTermValues ) => {
|
|
91
|
-
const
|
|
163
|
+
const newTermIds = new Set();
|
|
92
164
|
for ( const termValue of newTermValues ) {
|
|
93
|
-
const termId = getTermIdByTermValue(
|
|
165
|
+
const termId = getTermIdByTermValue( searchResults, termValue );
|
|
94
166
|
if ( termId ) {
|
|
95
|
-
|
|
167
|
+
newTermIds.add( termId );
|
|
96
168
|
}
|
|
97
169
|
}
|
|
98
|
-
|
|
99
|
-
onChange( Array.from(
|
|
170
|
+
setSuggestions( EMPTY_ARRAY );
|
|
171
|
+
onChange( Array.from( newTermIds ) );
|
|
100
172
|
};
|
|
101
|
-
|
|
102
|
-
// Selects only the existing term ids in proper format to be
|
|
103
|
-
// used in `FormTokenField`. This prevents the component from
|
|
104
|
-
// crashing in the editor, when non existing term ids were provided.
|
|
105
|
-
const taxQueryValue = value
|
|
106
|
-
.map( ( termId ) => terms.find( ( t ) => t.id === termId ) )
|
|
107
|
-
.filter( Boolean )
|
|
108
|
-
.map( ( term ) => ( { id: term.id, value: term.name } ) );
|
|
109
|
-
|
|
110
173
|
return (
|
|
111
174
|
<div className="block-library-query-inspector__taxonomy-control">
|
|
112
175
|
<FormTokenField
|
|
113
176
|
label={ taxonomy.name }
|
|
114
|
-
value={
|
|
115
|
-
|
|
177
|
+
value={ value }
|
|
178
|
+
onInputChange={ debouncedSearch }
|
|
179
|
+
suggestions={ suggestions }
|
|
116
180
|
onChange={ onTermsChange }
|
|
117
181
|
__experimentalShowHowTo={ false }
|
|
118
182
|
/>
|
|
@@ -20,7 +20,8 @@ import { __ } from '@wordpress/i18n';
|
|
|
20
20
|
*/
|
|
21
21
|
import QueryToolbar from './query-toolbar';
|
|
22
22
|
import QueryInspectorControls from './inspector-controls';
|
|
23
|
-
|
|
23
|
+
|
|
24
|
+
const DEFAULTS_POSTS_PER_PAGE = 3;
|
|
24
25
|
|
|
25
26
|
const TEMPLATE = [ [ 'core/post-template' ] ];
|
|
26
27
|
export default function QueryContent( {
|
|
@@ -93,6 +94,17 @@ export default function QueryContent( {
|
|
|
93
94
|
setAttributes( {
|
|
94
95
|
displayLayout: { ...displayLayout, ...newDisplayLayout },
|
|
95
96
|
} );
|
|
97
|
+
const htmlElementMessages = {
|
|
98
|
+
main: __(
|
|
99
|
+
'The <main> element should be used for the primary content of your document only. '
|
|
100
|
+
),
|
|
101
|
+
section: __(
|
|
102
|
+
"The <section> element should represent a standalone portion of the document that can't be better represented by another element."
|
|
103
|
+
),
|
|
104
|
+
aside: __(
|
|
105
|
+
"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."
|
|
106
|
+
),
|
|
107
|
+
};
|
|
96
108
|
return (
|
|
97
109
|
<>
|
|
98
110
|
<QueryInspectorControls
|
|
@@ -112,6 +124,7 @@ export default function QueryContent( {
|
|
|
112
124
|
</BlockControls>
|
|
113
125
|
<InspectorControls __experimentalGroup="advanced">
|
|
114
126
|
<SelectControl
|
|
127
|
+
__nextHasNoMarginBottom
|
|
115
128
|
label={ __( 'HTML element' ) }
|
|
116
129
|
options={ [
|
|
117
130
|
{ label: __( 'Default (<div>)' ), value: 'div' },
|
|
@@ -123,6 +136,7 @@ export default function QueryContent( {
|
|
|
123
136
|
onChange={ ( value ) =>
|
|
124
137
|
setAttributes( { tagName: value } )
|
|
125
138
|
}
|
|
139
|
+
help={ htmlElementMessages[ TagName ] }
|
|
126
140
|
/>
|
|
127
141
|
</InspectorControls>
|
|
128
142
|
<TagName { ...innerBlocksProps } />
|
|
@@ -16,6 +16,11 @@ import {
|
|
|
16
16
|
import { Button, Placeholder } from '@wordpress/components';
|
|
17
17
|
import { __ } from '@wordpress/i18n';
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Internal dependencies
|
|
21
|
+
*/
|
|
22
|
+
import { useScopedBlockVariations } from '../utils';
|
|
23
|
+
|
|
19
24
|
export default function QueryPlaceholder( {
|
|
20
25
|
attributes,
|
|
21
26
|
clientId,
|
|
@@ -57,7 +62,6 @@ export default function QueryPlaceholder( {
|
|
|
57
62
|
return (
|
|
58
63
|
<QueryVariationPicker
|
|
59
64
|
clientId={ clientId }
|
|
60
|
-
name={ name }
|
|
61
65
|
attributes={ attributes }
|
|
62
66
|
setAttributes={ setAttributes }
|
|
63
67
|
icon={ icon }
|
|
@@ -98,16 +102,12 @@ export default function QueryPlaceholder( {
|
|
|
98
102
|
|
|
99
103
|
function QueryVariationPicker( {
|
|
100
104
|
clientId,
|
|
101
|
-
name,
|
|
102
105
|
attributes,
|
|
103
106
|
setAttributes,
|
|
104
107
|
icon,
|
|
105
108
|
label,
|
|
106
109
|
} ) {
|
|
107
|
-
const
|
|
108
|
-
( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),
|
|
109
|
-
[ name ]
|
|
110
|
-
);
|
|
110
|
+
const scopeVariations = useScopedBlockVariations( attributes );
|
|
111
111
|
const { replaceInnerBlocks } = useDispatch( blockEditorStore );
|
|
112
112
|
const blockProps = useBlockProps();
|
|
113
113
|
return (
|
|
@@ -115,24 +115,25 @@ function QueryVariationPicker( {
|
|
|
115
115
|
<__experimentalBlockVariationPicker
|
|
116
116
|
icon={ icon }
|
|
117
117
|
label={ label }
|
|
118
|
-
variations={
|
|
119
|
-
onSelect={ (
|
|
120
|
-
if (
|
|
118
|
+
variations={ scopeVariations }
|
|
119
|
+
onSelect={ ( variation ) => {
|
|
120
|
+
if ( variation.attributes ) {
|
|
121
121
|
setAttributes( {
|
|
122
|
-
...
|
|
122
|
+
...variation.attributes,
|
|
123
123
|
query: {
|
|
124
|
-
...
|
|
124
|
+
...variation.attributes.query,
|
|
125
125
|
postType:
|
|
126
126
|
attributes.query.postType ||
|
|
127
|
-
|
|
127
|
+
variation.attributes.query.postType,
|
|
128
128
|
},
|
|
129
|
+
namespace: attributes.namespace,
|
|
129
130
|
} );
|
|
130
131
|
}
|
|
131
|
-
if (
|
|
132
|
+
if ( variation.innerBlocks ) {
|
|
132
133
|
replaceInnerBlocks(
|
|
133
134
|
clientId,
|
|
134
135
|
createBlocksFromInnerBlocksTemplate(
|
|
135
|
-
|
|
136
|
+
variation.innerBlocks
|
|
136
137
|
),
|
|
137
138
|
false
|
|
138
139
|
);
|