@wordpress/block-library 8.33.0 → 8.35.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 +10 -3
- package/build/audio/edit.js +2 -2
- package/build/audio/edit.js.map +1 -1
- package/build/avatar/edit.js +2 -2
- package/build/avatar/edit.js.map +1 -1
- package/build/block/edit.js +25 -160
- package/build/block/edit.js.map +1 -1
- package/build/block-keyboard-shortcuts/index.js +95 -0
- package/build/block-keyboard-shortcuts/index.js.map +1 -0
- package/build/button/deprecated.js +16 -16
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +3 -7
- package/build/button/edit.js.map +1 -1
- package/build/button/index.js +1 -0
- package/build/button/index.js.map +1 -1
- package/build/button/save.js +3 -3
- package/build/button/save.js.map +1 -1
- package/build/buttons/deprecated.js +2 -2
- package/build/buttons/deprecated.js.map +1 -1
- package/build/buttons/edit.js +2 -2
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/save.js +2 -2
- package/build/buttons/save.js.map +1 -1
- package/build/categories/edit.js +2 -2
- package/build/categories/edit.js.map +1 -1
- package/build/column/deprecated.js +2 -2
- package/build/column/deprecated.js.map +1 -1
- package/build/column/edit.js +30 -21
- package/build/column/edit.js.map +1 -1
- package/build/column/edit.native.js +3 -1
- package/build/column/edit.native.js.map +1 -1
- package/build/column/save.js +2 -2
- package/build/column/save.js.map +1 -1
- package/build/columns/deprecated.js +3 -3
- package/build/columns/deprecated.js.map +1 -1
- package/build/columns/edit.js +70 -54
- package/build/columns/edit.js.map +1 -1
- package/build/columns/save.js +2 -2
- package/build/columns/save.js.map +1 -1
- package/build/columns/variations.js +18 -28
- package/build/columns/variations.js.map +1 -1
- package/build/comment-author-name/edit.js +2 -2
- package/build/comment-author-name/edit.js.map +1 -1
- package/build/comment-content/edit.js +2 -2
- package/build/comment-content/edit.js.map +1 -1
- package/build/comment-edit-link/edit.js +2 -2
- package/build/comment-edit-link/edit.js.map +1 -1
- package/build/comment-reply-link/edit.js +2 -2
- package/build/comment-reply-link/edit.js.map +1 -1
- package/build/comment-template/util.js +3 -1
- package/build/comment-template/util.js.map +1 -1
- package/build/comments/edit/comments-legacy.js +2 -2
- package/build/comments/edit/comments-legacy.js.map +1 -1
- package/build/comments-title/edit.js +2 -2
- package/build/comments-title/edit.js.map +1 -1
- package/build/cover/deprecated.js +38 -38
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/index.js +6 -6
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +2 -2
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/edit.native.js +2 -2
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/save.js +5 -5
- package/build/cover/save.js.map +1 -1
- package/build/cover/shared.js +3 -1
- package/build/cover/shared.js.map +1 -1
- package/build/embed/deprecated.js +3 -3
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/edit.js +2 -2
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +2 -2
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/embed-placeholder.js +8 -3
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/embed-preview.js +3 -3
- package/build/embed/embed-preview.js.map +1 -1
- package/build/embed/embed-preview.native.js +2 -2
- package/build/embed/embed-preview.native.js.map +1 -1
- package/build/embed/icons.js +7 -1
- package/build/embed/icons.js.map +1 -1
- package/build/embed/save.js +2 -2
- package/build/embed/save.js.map +1 -1
- package/build/embed/util.js +13 -9
- package/build/embed/util.js.map +1 -1
- package/build/embed/variations.js +12 -1
- package/build/embed/variations.js.map +1 -1
- package/build/embed/wp-embed-preview.js +6 -2
- package/build/embed/wp-embed-preview.js.map +1 -1
- package/build/file/deprecated.js +2 -2
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +3 -3
- package/build/file/edit.js.map +1 -1
- package/build/file/save.js +2 -2
- package/build/file/save.js.map +1 -1
- package/build/form-input/deprecated.js +3 -3
- package/build/form-input/deprecated.js.map +1 -1
- package/build/form-input/edit.js +4 -4
- package/build/form-input/edit.js.map +1 -1
- package/build/form-input/save.js +3 -3
- package/build/form-input/save.js.map +1 -1
- package/build/form-submission-notification/edit.js +2 -2
- package/build/form-submission-notification/edit.js.map +1 -1
- package/build/form-submission-notification/save.js +2 -2
- package/build/form-submission-notification/save.js.map +1 -1
- package/build/gallery/deprecated.js +3 -3
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/edit.js +2 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +2 -2
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/save.js +3 -3
- package/build/gallery/save.js.map +1 -1
- package/build/gallery/v1/gallery-image.js +2 -2
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/gallery/v1/gallery.js +3 -3
- package/build/gallery/v1/gallery.js.map +1 -1
- package/build/gallery/v1/save.js +3 -3
- package/build/gallery/v1/save.js.map +1 -1
- package/build/group/deprecated.js +4 -4
- package/build/group/deprecated.js.map +1 -1
- package/build/group/index.js +0 -8
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +18 -19
- package/build/group/placeholder.js.map +1 -1
- package/build/heading/deprecated.js +6 -6
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/edit.js +2 -19
- package/build/heading/edit.js.map +1 -1
- package/build/heading/edit.native.js +2 -2
- package/build/heading/edit.native.js.map +1 -1
- package/build/heading/index.js +1 -0
- package/build/heading/index.js.map +1 -1
- package/build/heading/save.js +2 -2
- package/build/heading/save.js.map +1 -1
- package/build/home-link/edit.js +2 -2
- package/build/home-link/edit.js.map +1 -1
- package/build/html/edit.js +0 -2
- package/build/html/edit.js.map +1 -1
- package/build/image/deprecated.js +10 -10
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +7 -5
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +8 -4
- package/build/image/image.js.map +1 -1
- package/build/image/save.js +3 -3
- package/build/image/save.js.map +1 -1
- package/build/image/view.js +3 -1
- package/build/image/view.js.map +1 -1
- package/build/index.js +9 -1
- package/build/index.js.map +1 -1
- package/build/latest-posts/edit.js +5 -5
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/deprecated.js +90 -1
- package/build/list/deprecated.js.map +1 -1
- package/build/list/index.js +0 -2
- package/build/list/index.js.map +1 -1
- package/build/list-item/edit.js +1 -8
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-merge.js +12 -4
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +15 -5
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/index.js +2 -1
- package/build/list-item/index.js.map +1 -1
- package/build/media-text/deprecated.js +10 -10
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +2 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/media-container.js +2 -2
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/save.js +3 -3
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/edit/are-blocks-dirty.js +9 -3
- package/build/navigation/edit/are-blocks-dirty.js.map +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build/navigation/edit/index.js +3 -3
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +3 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +1 -1
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +3 -3
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/utils.js +2 -2
- package/build/navigation/edit/utils.js.map +1 -1
- package/build/navigation/index.js +0 -9
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/view.js +3 -1
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +97 -88
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +2 -7
- 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/edit.js +2 -2
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +3 -3
- package/build/page-list-item/edit.js.map +1 -1
- package/build/paragraph/deprecated.js +6 -6
- package/build/paragraph/deprecated.js.map +1 -1
- package/build/paragraph/edit.js +2 -18
- package/build/paragraph/edit.js.map +1 -1
- package/build/paragraph/index.js +1 -1
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/save.js +2 -2
- package/build/paragraph/save.js.map +1 -1
- package/build/paragraph/transforms.js +1 -1
- package/build/paragraph/transforms.js.map +1 -1
- package/build/pattern/edit.js +1 -1
- package/build/pattern/edit.js.map +1 -1
- package/build/post-author/edit.js +2 -2
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author-biography/edit.js +2 -2
- package/build/post-author-biography/edit.js.map +1 -1
- package/build/post-author-name/edit.js +2 -2
- package/build/post-author-name/edit.js.map +1 -1
- package/build/post-comments-count/edit.js +2 -2
- package/build/post-comments-count/edit.js.map +1 -1
- package/build/post-comments-form/edit.js +2 -2
- package/build/post-comments-form/edit.js.map +1 -1
- package/build/post-comments-form/form.js +2 -2
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-comments-link/edit.js +2 -2
- package/build/post-comments-link/edit.js.map +1 -1
- package/build/post-date/edit.js +2 -2
- package/build/post-date/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +6 -4
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +23 -29
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +3 -3
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/overlay.js +2 -2
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-navigation-link/edit.js +2 -2
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-navigation-link/variations.js +3 -1
- package/build/post-navigation-link/variations.js.map +1 -1
- package/build/post-template/edit.js +22 -12
- package/build/post-template/edit.js.map +1 -1
- package/build/post-terms/edit.js +5 -3
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +3 -3
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-title/edit.js +2 -2
- package/build/post-title/edit.js.map +1 -1
- package/build/private-apis.js +21 -0
- package/build/private-apis.js.map +1 -0
- package/build/pullquote/deprecated.js +7 -7
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/pullquote/edit.js +2 -2
- package/build/pullquote/edit.js.map +1 -1
- package/build/pullquote/save.js +2 -2
- package/build/pullquote/save.js.map +1 -1
- package/build/query/edit/enhanced-pagination-modal.js +1 -1
- package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build/query/edit/inspector-controls/author-control.js +6 -2
- package/build/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js +3 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +18 -6
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +9 -3
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/utils.js +3 -1
- package/build/query/utils.js.map +1 -1
- package/build/query-title/edit.js +2 -2
- package/build/query-title/edit.js.map +1 -1
- package/build/query-title/variations.js +3 -1
- package/build/query-title/variations.js.map +1 -1
- package/build/quote/deprecated.js +3 -3
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/edit.js +2 -2
- package/build/quote/edit.js.map +1 -1
- package/build/quote/save.js +2 -2
- package/build/quote/save.js.map +1 -1
- package/build/rss/edit.js +8 -6
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.js +6 -6
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js +2 -2
- package/build/search/edit.native.js.map +1 -1
- package/build/separator/deprecated.js +2 -2
- package/build/separator/deprecated.js.map +1 -1
- package/build/separator/edit.js +2 -2
- package/build/separator/edit.js.map +1 -1
- package/build/separator/save.js +2 -2
- package/build/separator/save.js.map +1 -1
- package/build/shortcode/edit.js +7 -10
- package/build/shortcode/edit.js.map +1 -1
- package/build/site-logo/edit.js +4 -4
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-tagline/edit.js +2 -2
- package/build/site-tagline/edit.js.map +1 -1
- package/build/site-title/edit.js +2 -2
- package/build/site-title/edit.js.map +1 -1
- package/build/social-link/edit.js +4 -4
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/variations.js +3 -1
- package/build/social-link/variations.js.map +1 -1
- package/build/social-links/deprecated.js +2 -2
- package/build/social-links/deprecated.js.map +1 -1
- package/build/social-links/edit.js +2 -2
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/save.js +2 -2
- package/build/social-links/save.js.map +1 -1
- package/build/spacer/edit.js +3 -3
- package/build/spacer/edit.js.map +1 -1
- package/build/table/deprecated.js +8 -8
- package/build/table/deprecated.js.map +1 -1
- package/build/table/edit.js +3 -3
- package/build/table/edit.js.map +1 -1
- package/build/table/save.js +3 -3
- package/build/table/save.js.map +1 -1
- package/build/template-part/variations.js +6 -2
- package/build/template-part/variations.js.map +1 -1
- package/build/term-description/edit.js +2 -2
- package/build/term-description/edit.js.map +1 -1
- package/build/utils/caption.js +2 -2
- package/build/utils/caption.js.map +1 -1
- package/build/verse/deprecated.js +2 -2
- package/build/verse/deprecated.js.map +1 -1
- package/build/verse/edit.js +2 -2
- package/build/verse/edit.js.map +1 -1
- package/build/verse/save.js +2 -2
- package/build/verse/save.js.map +1 -1
- package/build/video/edit.js +2 -2
- package/build/video/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -2
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/avatar/edit.js +2 -2
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/block/edit.js +29 -164
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block-keyboard-shortcuts/index.js +88 -0
- package/build-module/block-keyboard-shortcuts/index.js.map +1 -0
- package/build-module/button/deprecated.js +16 -16
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +3 -7
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/index.js +1 -0
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/save.js +3 -3
- package/build-module/button/save.js.map +1 -1
- package/build-module/buttons/deprecated.js +2 -2
- package/build-module/buttons/deprecated.js.map +1 -1
- package/build-module/buttons/edit.js +2 -2
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/save.js +2 -2
- package/build-module/buttons/save.js.map +1 -1
- package/build-module/categories/edit.js +2 -2
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/column/deprecated.js +2 -2
- package/build-module/column/deprecated.js.map +1 -1
- package/build-module/column/edit.js +30 -21
- package/build-module/column/edit.js.map +1 -1
- package/build-module/column/edit.native.js +3 -1
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/column/save.js +2 -2
- package/build-module/column/save.js.map +1 -1
- package/build-module/columns/deprecated.js +3 -3
- package/build-module/columns/deprecated.js.map +1 -1
- package/build-module/columns/edit.js +70 -54
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/save.js +2 -2
- package/build-module/columns/save.js.map +1 -1
- package/build-module/columns/variations.js +18 -28
- package/build-module/columns/variations.js.map +1 -1
- package/build-module/comment-author-name/edit.js +2 -2
- package/build-module/comment-author-name/edit.js.map +1 -1
- package/build-module/comment-content/edit.js +2 -2
- package/build-module/comment-content/edit.js.map +1 -1
- package/build-module/comment-edit-link/edit.js +2 -2
- package/build-module/comment-edit-link/edit.js.map +1 -1
- package/build-module/comment-reply-link/edit.js +2 -2
- package/build-module/comment-reply-link/edit.js.map +1 -1
- package/build-module/comment-template/util.js +3 -1
- package/build-module/comment-template/util.js.map +1 -1
- package/build-module/comments/edit/comments-legacy.js +2 -2
- package/build-module/comments/edit/comments-legacy.js.map +1 -1
- package/build-module/comments-title/edit.js +2 -2
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/cover/deprecated.js +38 -38
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/index.js +6 -6
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +2 -2
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/edit.native.js +2 -2
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/save.js +5 -5
- package/build-module/cover/save.js.map +1 -1
- package/build-module/cover/shared.js +3 -1
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/embed/deprecated.js +3 -3
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/edit.js +2 -2
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +2 -2
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +9 -4
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/embed-preview.js +3 -3
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/embed/embed-preview.native.js +2 -2
- package/build-module/embed/embed-preview.native.js.map +1 -1
- package/build-module/embed/icons.js +6 -0
- package/build-module/embed/icons.js.map +1 -1
- package/build-module/embed/save.js +2 -2
- package/build-module/embed/save.js.map +1 -1
- package/build-module/embed/util.js +13 -9
- package/build-module/embed/util.js.map +1 -1
- package/build-module/embed/variations.js +13 -2
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/embed/wp-embed-preview.js +6 -2
- package/build-module/embed/wp-embed-preview.js.map +1 -1
- package/build-module/file/deprecated.js +2 -2
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +3 -3
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/save.js +2 -2
- package/build-module/file/save.js.map +1 -1
- package/build-module/form-input/deprecated.js +3 -3
- package/build-module/form-input/deprecated.js.map +1 -1
- package/build-module/form-input/edit.js +4 -4
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/form-input/save.js +3 -3
- package/build-module/form-input/save.js.map +1 -1
- package/build-module/form-submission-notification/edit.js +2 -2
- package/build-module/form-submission-notification/edit.js.map +1 -1
- package/build-module/form-submission-notification/save.js +2 -2
- package/build-module/form-submission-notification/save.js.map +1 -1
- package/build-module/gallery/deprecated.js +3 -3
- package/build-module/gallery/deprecated.js.map +1 -1
- package/build-module/gallery/edit.js +2 -2
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +2 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/save.js +3 -3
- package/build-module/gallery/save.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js +2 -2
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/gallery/v1/gallery.js +3 -3
- package/build-module/gallery/v1/gallery.js.map +1 -1
- package/build-module/gallery/v1/save.js +3 -3
- package/build-module/gallery/v1/save.js.map +1 -1
- package/build-module/group/deprecated.js +4 -4
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/group/index.js +0 -8
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +18 -19
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/heading/deprecated.js +6 -6
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/edit.js +2 -19
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/heading/edit.native.js +2 -2
- package/build-module/heading/edit.native.js.map +1 -1
- package/build-module/heading/index.js +1 -0
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/save.js +2 -2
- package/build-module/heading/save.js.map +1 -1
- package/build-module/home-link/edit.js +2 -2
- package/build-module/home-link/edit.js.map +1 -1
- package/build-module/html/edit.js +0 -2
- package/build-module/html/edit.js.map +1 -1
- package/build-module/image/deprecated.js +10 -10
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +7 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +8 -4
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/save.js +3 -3
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/view.js +3 -1
- package/build-module/image/view.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/latest-posts/edit.js +6 -6
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/deprecated.js +90 -1
- package/build-module/list/deprecated.js.map +1 -1
- package/build-module/list/index.js +0 -2
- package/build-module/list/index.js.map +1 -1
- package/build-module/list-item/edit.js +2 -9
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-merge.js +12 -4
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +15 -5
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/index.js +2 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/media-text/deprecated.js +10 -10
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +2 -2
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/media-container.js +2 -2
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/save.js +3 -3
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/edit/are-blocks-dirty.js +9 -3
- package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build-module/navigation/edit/index.js +3 -3
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +3 -1
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +3 -3
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/utils.js +2 -2
- package/build-module/navigation/edit/utils.js.map +1 -1
- package/build-module/navigation/index.js +0 -9
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/view.js +3 -1
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +97 -88
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +3 -8
- 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/edit.js +2 -2
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -3
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/paragraph/deprecated.js +6 -6
- package/build-module/paragraph/deprecated.js.map +1 -1
- package/build-module/paragraph/edit.js +2 -18
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/paragraph/index.js +1 -1
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/save.js +2 -2
- package/build-module/paragraph/save.js.map +1 -1
- package/build-module/paragraph/transforms.js +1 -1
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/pattern/edit.js +1 -1
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-author/edit.js +2 -2
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author-biography/edit.js +2 -2
- package/build-module/post-author-biography/edit.js.map +1 -1
- package/build-module/post-author-name/edit.js +2 -2
- package/build-module/post-author-name/edit.js.map +1 -1
- package/build-module/post-comments-count/edit.js +2 -2
- package/build-module/post-comments-count/edit.js.map +1 -1
- package/build-module/post-comments-form/edit.js +2 -2
- package/build-module/post-comments-form/edit.js.map +1 -1
- package/build-module/post-comments-form/form.js +2 -2
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-comments-link/edit.js +2 -2
- package/build-module/post-comments-link/edit.js.map +1 -1
- package/build-module/post-date/edit.js +2 -2
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +6 -4
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +23 -29
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +3 -3
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +2 -2
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +2 -2
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-navigation-link/variations.js +3 -1
- package/build-module/post-navigation-link/variations.js.map +1 -1
- package/build-module/post-template/edit.js +23 -13
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +5 -3
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +3 -3
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-title/edit.js +2 -2
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/private-apis.js +14 -0
- package/build-module/private-apis.js.map +1 -0
- package/build-module/pullquote/deprecated.js +7 -7
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/pullquote/edit.js +2 -2
- package/build-module/pullquote/edit.js.map +1 -1
- package/build-module/pullquote/save.js +2 -2
- package/build-module/pullquote/save.js.map +1 -1
- package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
- package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build-module/query/edit/inspector-controls/author-control.js +6 -2
- package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/create-new-post-link.js +3 -1
- package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +18 -6
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +9 -3
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/utils.js +3 -1
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/edit.js +2 -2
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/query-title/variations.js +3 -1
- package/build-module/query-title/variations.js.map +1 -1
- package/build-module/quote/deprecated.js +3 -3
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/edit.js +2 -2
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/save.js +2 -2
- package/build-module/quote/save.js.map +1 -1
- package/build-module/rss/edit.js +10 -8
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.js +6 -6
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js +2 -2
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/separator/deprecated.js +2 -2
- package/build-module/separator/deprecated.js.map +1 -1
- package/build-module/separator/edit.js +2 -2
- package/build-module/separator/edit.js.map +1 -1
- package/build-module/separator/save.js +2 -2
- package/build-module/separator/save.js.map +1 -1
- package/build-module/shortcode/edit.js +8 -11
- package/build-module/shortcode/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +4 -4
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-tagline/edit.js +2 -2
- package/build-module/site-tagline/edit.js.map +1 -1
- package/build-module/site-title/edit.js +2 -2
- package/build-module/site-title/edit.js.map +1 -1
- package/build-module/social-link/edit.js +4 -4
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/variations.js +3 -1
- package/build-module/social-link/variations.js.map +1 -1
- package/build-module/social-links/deprecated.js +2 -2
- package/build-module/social-links/deprecated.js.map +1 -1
- package/build-module/social-links/edit.js +2 -2
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/save.js +2 -2
- package/build-module/social-links/save.js.map +1 -1
- package/build-module/spacer/edit.js +3 -3
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table/deprecated.js +8 -8
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/edit.js +3 -3
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/save.js +3 -3
- package/build-module/table/save.js.map +1 -1
- package/build-module/template-part/variations.js +6 -2
- package/build-module/template-part/variations.js.map +1 -1
- package/build-module/term-description/edit.js +2 -2
- package/build-module/term-description/edit.js.map +1 -1
- package/build-module/utils/caption.js +2 -2
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/verse/deprecated.js +2 -2
- package/build-module/verse/deprecated.js.map +1 -1
- package/build-module/verse/edit.js +2 -2
- package/build-module/verse/edit.js.map +1 -1
- package/build-module/verse/save.js +2 -2
- package/build-module/verse/save.js.map +1 -1
- package/build-module/video/edit.js +2 -2
- package/build-module/video/edit.js.map +1 -1
- package/build-style/block/editor-rtl.css +4 -4
- package/build-style/block/editor.css +4 -4
- package/build-style/buttons/editor-rtl.css +1 -1
- package/build-style/buttons/editor.css +1 -1
- package/build-style/buttons/style-rtl.css +1 -1
- package/build-style/buttons/style.css +1 -1
- package/build-style/common-rtl.css +3 -7
- package/build-style/common.css +3 -7
- package/build-style/editor-rtl.css +30 -81
- package/build-style/editor.css +30 -81
- package/build-style/embed/editor-rtl.css +0 -3
- package/build-style/embed/editor.css +0 -3
- package/build-style/group/editor-rtl.css +2 -45
- package/build-style/group/editor.css +2 -45
- package/build-style/group/style-rtl.css +4 -0
- package/build-style/group/style.css +4 -0
- package/build-style/image/editor-rtl.css +3 -0
- package/build-style/image/editor.css +3 -0
- package/build-style/image/style-rtl.css +1 -2
- package/build-style/image/style.css +1 -2
- package/build-style/navigation-link/style-rtl.css +0 -8
- package/build-style/navigation-link/style.css +0 -8
- package/build-style/post-featured-image/editor-rtl.css +1 -0
- package/build-style/post-featured-image/editor.css +1 -0
- package/build-style/post-template/style-rtl.css +0 -3
- package/build-style/post-template/style.css +0 -3
- package/build-style/rss/editor-rtl.css +1 -10
- package/build-style/rss/editor.css +1 -10
- package/build-style/shortcode/editor-rtl.css +0 -4
- package/build-style/shortcode/editor.css +0 -4
- package/build-style/site-logo/editor-rtl.css +1 -0
- package/build-style/site-logo/editor.css +1 -0
- package/build-style/social-link/editor-rtl.css +13 -2
- package/build-style/social-link/editor.css +13 -2
- package/build-style/style-rtl.css +9 -21
- package/build-style/style.css +9 -21
- package/build-style/template-part/editor-rtl.css +3 -7
- package/build-style/template-part/editor.css +3 -7
- package/package.json +36 -35
- package/src/audio/edit.js +2 -2
- package/src/avatar/edit.js +2 -2
- package/src/block/edit.js +32 -240
- package/src/block/editor.scss +7 -5
- package/src/block-keyboard-shortcuts/index.js +113 -0
- package/src/button/block.json +1 -0
- package/src/button/deprecated.js +16 -16
- package/src/button/edit.js +3 -9
- package/src/button/save.js +3 -3
- package/src/buttons/deprecated.js +2 -2
- package/src/buttons/edit.js +2 -2
- package/src/buttons/editor.scss +1 -3
- package/src/buttons/save.js +2 -2
- package/src/buttons/style.scss +1 -3
- package/src/categories/edit.js +2 -2
- package/src/code/theme.native.scss +1 -1
- package/src/column/deprecated.js +2 -2
- package/src/column/edit.js +28 -22
- package/src/column/edit.native.js +3 -1
- package/src/column/save.js +2 -2
- package/src/columns/deprecated.js +3 -3
- package/src/columns/edit.js +94 -84
- package/src/columns/save.js +2 -2
- package/src/columns/variations.js +12 -34
- package/src/comment-author-name/edit.js +2 -2
- package/src/comment-content/edit.js +2 -2
- package/src/comment-edit-link/edit.js +2 -2
- package/src/comment-reply-link/edit.js +2 -2
- package/src/comment-template/util.js +3 -1
- package/src/comments/edit/comments-legacy.js +2 -2
- package/src/comments-title/edit.js +2 -2
- package/src/common.scss +4 -4
- package/src/cover/deprecated.js +38 -38
- package/src/cover/edit/index.js +6 -9
- package/src/cover/edit/resizable-cover-popover.js +2 -2
- package/src/cover/edit.native.js +2 -2
- package/src/cover/save.js +5 -5
- package/src/cover/shared.js +3 -1
- package/src/embed/deprecated.js +3 -3
- package/src/embed/edit.js +2 -2
- package/src/embed/edit.native.js +2 -2
- package/src/embed/editor.scss +0 -2
- package/src/embed/embed-placeholder.js +21 -9
- package/src/embed/embed-preview.js +3 -3
- package/src/embed/embed-preview.native.js +2 -2
- package/src/embed/icons.js +9 -0
- package/src/embed/save.js +2 -2
- package/src/embed/util.js +13 -7
- package/src/embed/variations.js +12 -1
- package/src/embed/wp-embed-preview.js +6 -2
- package/src/file/deprecated.js +2 -2
- package/src/file/edit.js +3 -3
- package/src/file/save.js +2 -2
- package/src/form-input/deprecated.js +3 -3
- package/src/form-input/edit.js +4 -4
- package/src/form-input/save.js +3 -3
- package/src/form-submission-notification/edit.js +2 -2
- package/src/form-submission-notification/save.js +4 -7
- package/src/gallery/deprecated.js +3 -3
- package/src/gallery/edit.js +2 -2
- package/src/gallery/gallery.js +2 -2
- package/src/gallery/save.js +3 -3
- package/src/gallery/v1/gallery-image.js +2 -2
- package/src/gallery/v1/gallery.js +3 -3
- package/src/gallery/v1/save.js +3 -3
- package/src/group/deprecated.js +4 -4
- package/src/group/editor.scss +2 -48
- package/src/group/index.js +0 -8
- package/src/group/placeholder.js +18 -18
- package/src/group/style.scss +5 -0
- package/src/heading/block.json +1 -0
- package/src/heading/deprecated.js +6 -6
- package/src/heading/edit.js +2 -23
- package/src/heading/edit.native.js +2 -2
- package/src/heading/save.js +2 -2
- package/src/heading/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/home-link/edit.js +2 -2
- package/src/html/edit.js +0 -2
- package/src/image/deprecated.js +10 -10
- package/src/image/edit.js +5 -3
- package/src/image/editor.scss +13 -7
- package/src/image/image.js +8 -3
- package/src/image/save.js +3 -3
- package/src/image/style.scss +1 -3
- package/src/image/view.js +3 -1
- package/src/index.js +2 -0
- package/src/latest-posts/edit.js +6 -6
- package/src/latest-posts/index.php +1 -0
- package/src/list/block.json +0 -2
- package/src/list/deprecated.js +88 -1
- package/src/list/index.php +54 -0
- package/src/list/test/__snapshots__/edit.native.js.snap +11 -11
- package/src/list/test/__snapshots__/transforms.native.js.snap +3 -3
- package/src/list/test/edit.native.js +24 -24
- package/src/list/test/transforms.native.js +1 -1
- package/src/list-item/block.json +2 -1
- package/src/list-item/edit.js +0 -15
- package/src/list-item/hooks/use-merge.js +12 -4
- package/src/list-item/hooks/use-outdent-list-item.js +15 -5
- package/src/media-text/deprecated.js +10 -10
- package/src/media-text/edit.js +2 -2
- package/src/media-text/media-container.js +2 -2
- package/src/media-text/save.js +3 -3
- package/src/navigation/block.json +0 -9
- package/src/navigation/edit/are-blocks-dirty.js +8 -3
- package/src/navigation/edit/deleted-navigation-warning.js +1 -1
- package/src/navigation/edit/index.js +3 -3
- package/src/navigation/edit/menu-inspector-controls.js +3 -1
- package/src/navigation/edit/navigation-menu-selector.js +1 -1
- package/src/navigation/edit/responsive-wrapper.js +3 -3
- package/src/navigation/edit/test/navigation-menu-selector.js +5 -5
- package/src/navigation/edit/utils.js +2 -2
- package/src/navigation/index.php +52 -1
- package/src/navigation/view.js +3 -1
- package/src/navigation-link/edit.js +94 -94
- package/src/navigation-link/link-ui.js +74 -89
- package/src/navigation-link/style.scss +0 -12
- package/src/navigation-submenu/edit.js +2 -2
- package/src/page-list/edit.js +2 -2
- package/src/page-list-item/edit.js +3 -3
- package/src/paragraph/block.json +1 -1
- package/src/paragraph/deprecated.js +6 -6
- package/src/paragraph/edit.js +2 -23
- package/src/paragraph/save.js +2 -2
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/pattern/edit.js +1 -1
- package/src/post-author/edit.js +2 -2
- package/src/post-author-biography/edit.js +2 -2
- package/src/post-author-name/edit.js +2 -2
- package/src/post-comments-count/edit.js +2 -2
- package/src/post-comments-form/edit.js +2 -2
- package/src/post-comments-form/form.js +2 -2
- package/src/post-comments-link/edit.js +2 -2
- package/src/post-date/edit.js +2 -2
- package/src/post-excerpt/edit.js +6 -4
- package/src/post-featured-image/dimension-controls.js +33 -37
- package/src/post-featured-image/edit.js +3 -3
- package/src/post-featured-image/editor.scss +1 -0
- package/src/post-featured-image/overlay.js +2 -2
- package/src/post-navigation-link/edit.js +2 -2
- package/src/post-navigation-link/variations.js +3 -1
- package/src/post-template/edit.js +14 -9
- package/src/post-template/style.scss +0 -4
- package/src/post-terms/edit.js +5 -3
- package/src/post-time-to-read/edit.js +3 -3
- package/src/post-title/edit.js +2 -2
- package/src/private-apis.js +13 -0
- package/src/pullquote/deprecated.js +7 -7
- package/src/pullquote/edit.js +2 -2
- package/src/pullquote/save.js +2 -2
- package/src/query/edit/enhanced-pagination-modal.js +5 -1
- package/src/query/edit/inspector-controls/author-control.js +6 -2
- package/src/query/edit/inspector-controls/create-new-post-link.js +3 -1
- package/src/query/edit/inspector-controls/enhanced-pagination-control.js +13 -3
- package/src/query/edit/inspector-controls/parent-control.js +18 -6
- package/src/query/edit/inspector-controls/taxonomy-controls.js +9 -3
- package/src/query/index.php +1 -1
- package/src/query/utils.js +3 -1
- package/src/query-title/edit.js +2 -2
- package/src/query-title/variations.js +3 -1
- package/src/quote/deprecated.js +3 -3
- package/src/quote/edit.js +2 -2
- package/src/quote/save.js +2 -2
- package/src/rss/edit.js +30 -23
- package/src/rss/editor.scss +2 -16
- package/src/search/edit.js +6 -6
- package/src/search/edit.native.js +2 -2
- package/src/separator/deprecated.js +2 -2
- package/src/separator/edit.js +2 -2
- package/src/separator/save.js +2 -2
- package/src/shortcode/edit.js +13 -17
- package/src/shortcode/editor.scss +0 -6
- package/src/site-logo/edit.js +4 -4
- package/src/site-logo/editor.scss +1 -0
- package/src/site-logo/index.php +2 -0
- package/src/site-tagline/edit.js +2 -2
- package/src/site-title/edit.js +2 -2
- package/src/social-link/edit.js +5 -5
- package/src/social-link/editor.scss +25 -11
- package/src/social-link/variations.js +3 -1
- package/src/social-links/deprecated.js +2 -2
- package/src/social-links/edit.js +2 -2
- package/src/social-links/save.js +2 -2
- package/src/spacer/edit.js +3 -3
- package/src/table/deprecated.js +12 -20
- package/src/table/edit.js +3 -3
- package/src/table/save.js +3 -3
- package/src/template-part/editor.scss +5 -8
- package/src/template-part/variations.js +6 -2
- package/src/term-description/edit.js +2 -2
- package/src/utils/caption.js +2 -2
- package/src/verse/deprecated.js +2 -2
- package/src/verse/edit.js +2 -2
- package/src/verse/save.js +2 -2
- package/src/video/edit.js +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -2,20 +2,19 @@ import { createElement, Fragment } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
11
11
|
import { useRef, useMemo, useEffect } from '@wordpress/element';
|
|
12
|
-
import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
|
|
12
|
+
import { useEntityRecord, store as coreStore, useEntityBlockEditor } from '@wordpress/core-data';
|
|
13
13
|
import { Placeholder, Spinner, ToolbarButton, ToolbarGroup } from '@wordpress/components';
|
|
14
14
|
import { __ } from '@wordpress/i18n';
|
|
15
|
-
import { useInnerBlocksProps, RecursionProvider, useHasRecursion,
|
|
15
|
+
import { useInnerBlocksProps, RecursionProvider, useHasRecursion, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
|
|
16
16
|
import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
|
|
17
|
-
import {
|
|
18
|
-
import { RichTextData } from '@wordpress/rich-text';
|
|
17
|
+
import { store as blocksStore } from '@wordpress/blocks';
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
20
|
* Internal dependencies
|
|
@@ -29,23 +28,6 @@ const {
|
|
|
29
28
|
isOverridableBlock
|
|
30
29
|
} = unlock(patternsPrivateApis);
|
|
31
30
|
const fullAlignments = ['full', 'wide', 'left', 'right'];
|
|
32
|
-
function getLegacyIdMap(blocks, content, nameCount = {}) {
|
|
33
|
-
let idToClientIdMap = {};
|
|
34
|
-
for (const block of blocks) {
|
|
35
|
-
if (block?.innerBlocks?.length) {
|
|
36
|
-
idToClientIdMap = {
|
|
37
|
-
...idToClientIdMap,
|
|
38
|
-
...getLegacyIdMap(block.innerBlocks, content, nameCount)
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
const id = block.attributes.metadata?.id;
|
|
42
|
-
const clientId = block.clientId;
|
|
43
|
-
if (id && content?.[id]) {
|
|
44
|
-
idToClientIdMap[clientId] = id;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return idToClientIdMap;
|
|
48
|
-
}
|
|
49
31
|
const useInferredLayout = (blocks, parentLayout) => {
|
|
50
32
|
const initialInferredAlignmentRef = useRef();
|
|
51
33
|
return useMemo(() => {
|
|
@@ -72,80 +54,12 @@ const useInferredLayout = (blocks, parentLayout) => {
|
|
|
72
54
|
};
|
|
73
55
|
function hasOverridableBlocks(blocks) {
|
|
74
56
|
return blocks.some(block => {
|
|
75
|
-
if (isOverridableBlock(block))
|
|
76
|
-
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
function getOverridableAttributes(block) {
|
|
80
|
-
return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source === 'core/pattern-overrides').map(([attributeKey]) => attributeKey);
|
|
81
|
-
}
|
|
82
|
-
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues, legacyIdMap) {
|
|
83
|
-
return blocks.map(block => {
|
|
84
|
-
var _legacyIdMap$block$cl;
|
|
85
|
-
const innerBlocks = applyInitialContentValuesToInnerBlocks(block.innerBlocks, content, defaultValues, legacyIdMap);
|
|
86
|
-
const metadataName = (_legacyIdMap$block$cl = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl !== void 0 ? _legacyIdMap$block$cl : block.attributes.metadata?.name;
|
|
87
|
-
if (!metadataName || !isOverridableBlock(block)) {
|
|
88
|
-
return {
|
|
89
|
-
...block,
|
|
90
|
-
innerBlocks
|
|
91
|
-
};
|
|
57
|
+
if (isOverridableBlock(block)) {
|
|
58
|
+
return true;
|
|
92
59
|
}
|
|
93
|
-
|
|
94
|
-
const newAttributes = {
|
|
95
|
-
...block.attributes
|
|
96
|
-
};
|
|
97
|
-
for (const attributeKey of attributes) {
|
|
98
|
-
var _defaultValues$metada;
|
|
99
|
-
(_defaultValues$metada = defaultValues[metadataName]) !== null && _defaultValues$metada !== void 0 ? _defaultValues$metada : defaultValues[metadataName] = {};
|
|
100
|
-
defaultValues[metadataName][attributeKey] = block.attributes[attributeKey];
|
|
101
|
-
const contentValues = content[metadataName];
|
|
102
|
-
if (contentValues?.[attributeKey] !== undefined) {
|
|
103
|
-
newAttributes[attributeKey] = contentValues[attributeKey];
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
...block,
|
|
108
|
-
attributes: newAttributes,
|
|
109
|
-
innerBlocks
|
|
110
|
-
};
|
|
60
|
+
return hasOverridableBlocks(block.innerBlocks);
|
|
111
61
|
});
|
|
112
62
|
}
|
|
113
|
-
function isAttributeEqual(attribute1, attribute2) {
|
|
114
|
-
if (attribute1 instanceof RichTextData && attribute2 instanceof RichTextData) {
|
|
115
|
-
return attribute1.toString() === attribute2.toString();
|
|
116
|
-
}
|
|
117
|
-
return attribute1 === attribute2;
|
|
118
|
-
}
|
|
119
|
-
function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
|
|
120
|
-
/** @type {Record<string, { values: Record<string, unknown>}>} */
|
|
121
|
-
const content = {};
|
|
122
|
-
for (const block of blocks) {
|
|
123
|
-
var _legacyIdMap$block$cl2;
|
|
124
|
-
if (block.name === patternBlockName) continue;
|
|
125
|
-
if (block.innerBlocks.length) {
|
|
126
|
-
Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
|
|
127
|
-
}
|
|
128
|
-
const metadataName = (_legacyIdMap$block$cl2 = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl2 !== void 0 ? _legacyIdMap$block$cl2 : block.attributes.metadata?.name;
|
|
129
|
-
if (!metadataName || !isOverridableBlock(block)) {
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
const attributes = getOverridableAttributes(block);
|
|
133
|
-
for (const attributeKey of attributes) {
|
|
134
|
-
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues?.[metadataName]?.[attributeKey])) {
|
|
135
|
-
var _content$metadataName;
|
|
136
|
-
(_content$metadataName = content[metadataName]) !== null && _content$metadataName !== void 0 ? _content$metadataName : content[metadataName] = {};
|
|
137
|
-
// TODO: We need a way to represent `undefined` in the serialized overrides.
|
|
138
|
-
// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871
|
|
139
|
-
content[metadataName][attributeKey] = block.attributes[attributeKey] === undefined ?
|
|
140
|
-
// TODO: We use an empty string to represent undefined for now until
|
|
141
|
-
// we support a richer format for overrides and the block binding API.
|
|
142
|
-
// Currently only the `linkTarget` attribute of `core/button` is affected.
|
|
143
|
-
'' : block.attributes[attributeKey];
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return Object.keys(content).length > 0 ? content : undefined;
|
|
148
|
-
}
|
|
149
63
|
function setBlockEditMode(setEditMode, blocks, mode) {
|
|
150
64
|
blocks.forEach(block => {
|
|
151
65
|
const editMode = mode || (isOverridableBlock(block) ? 'contentOnly' : 'disabled');
|
|
@@ -161,6 +75,7 @@ function RecursionWarning() {
|
|
|
161
75
|
...blockProps
|
|
162
76
|
}, createElement(Warning, null, __('Block cannot be rendered inside itself.')));
|
|
163
77
|
}
|
|
78
|
+
const NOOP = () => {};
|
|
164
79
|
|
|
165
80
|
// Wrap the main Edit function for the pattern block with a recursion wrapper
|
|
166
81
|
// that allows short-circuiting rendering as early as possible, before any
|
|
@@ -189,32 +104,21 @@ function ReusableBlockEdit({
|
|
|
189
104
|
clientId: patternClientId,
|
|
190
105
|
setAttributes
|
|
191
106
|
}) {
|
|
192
|
-
const registry = useRegistry();
|
|
193
107
|
const {
|
|
194
108
|
record,
|
|
195
|
-
editedRecord,
|
|
196
109
|
hasResolved
|
|
197
110
|
} = useEntityRecord('postType', 'wp_block', ref);
|
|
111
|
+
const [blocks] = useEntityBlockEditor('postType', 'wp_block', {
|
|
112
|
+
id: ref
|
|
113
|
+
});
|
|
198
114
|
const isMissing = hasResolved && !record;
|
|
199
|
-
|
|
200
|
-
// The initial value of the `content` attribute.
|
|
201
|
-
const initialContent = useRef(content);
|
|
202
|
-
|
|
203
|
-
// The default content values from the original pattern for overridable attributes.
|
|
204
|
-
// Set by the `applyInitialContentValuesToInnerBlocks` function.
|
|
205
|
-
const defaultContent = useRef({});
|
|
206
115
|
const {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
setBlockEditingMode
|
|
116
|
+
setBlockEditingMode,
|
|
117
|
+
__unstableMarkLastChangeAsPersistent
|
|
210
118
|
} = useDispatch(blockEditorStore);
|
|
211
|
-
const {
|
|
212
|
-
syncDerivedUpdates
|
|
213
|
-
} = unlock(useDispatch(blockEditorStore));
|
|
214
119
|
const {
|
|
215
120
|
innerBlocks,
|
|
216
121
|
userCanEdit,
|
|
217
|
-
getBlockEditingMode,
|
|
218
122
|
onNavigateToEntityRecord,
|
|
219
123
|
editingMode,
|
|
220
124
|
hasPatternOverridesSource
|
|
@@ -230,12 +134,11 @@ function ReusableBlockEdit({
|
|
|
230
134
|
const {
|
|
231
135
|
getBlockBindingsSource
|
|
232
136
|
} = unlock(select(blocksStore));
|
|
233
|
-
const blocks = getBlocks(patternClientId);
|
|
234
137
|
const canEdit = canUser('update', 'blocks', ref);
|
|
235
138
|
|
|
236
139
|
// For editing link to the site editor if the theme and user permissions support it.
|
|
237
140
|
return {
|
|
238
|
-
innerBlocks:
|
|
141
|
+
innerBlocks: getBlocks(patternClientId),
|
|
239
142
|
userCanEdit: canEdit,
|
|
240
143
|
getBlockEditingMode: _getBlockEditingMode,
|
|
241
144
|
onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
|
|
@@ -250,71 +153,29 @@ function ReusableBlockEdit({
|
|
|
250
153
|
// Disable editing if the pattern itself is disabled.
|
|
251
154
|
editingMode === 'disabled' || !hasPatternOverridesSource ? 'disabled' : undefined);
|
|
252
155
|
}, [editingMode, innerBlocks, setBlockEditingMode, hasPatternOverridesSource]);
|
|
253
|
-
const canOverrideBlocks = useMemo(() => hasPatternOverridesSource && hasOverridableBlocks(
|
|
254
|
-
const initialBlocks = useMemo(() => {
|
|
255
|
-
var _editedRecord$blocks$;
|
|
256
|
-
return (// Clone the blocks to generate new client IDs.
|
|
257
|
-
(_editedRecord$blocks$ = editedRecord.blocks?.map(block => cloneBlock(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? parse(editedRecord.content) : []
|
|
258
|
-
);
|
|
259
|
-
}, [editedRecord.blocks, editedRecord.content]);
|
|
260
|
-
const legacyIdMap = useRef({});
|
|
261
|
-
|
|
262
|
-
// Apply the initial overrides from the pattern block to the inner blocks.
|
|
263
|
-
useEffect(() => {
|
|
264
|
-
// Build a map of clientIds to the old nano id system to provide back compat.
|
|
265
|
-
legacyIdMap.current = getLegacyIdMap(initialBlocks, initialContent.current);
|
|
266
|
-
defaultContent.current = {};
|
|
267
|
-
const originalEditingMode = getBlockEditingMode(patternClientId);
|
|
268
|
-
// Replace the contents of the blocks with the overrides.
|
|
269
|
-
registry.batch(() => {
|
|
270
|
-
setBlockEditingMode(patternClientId, 'default');
|
|
271
|
-
syncDerivedUpdates(() => {
|
|
272
|
-
const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
|
|
273
|
-
replaceInnerBlocks(patternClientId, blocks);
|
|
274
|
-
});
|
|
275
|
-
setBlockEditingMode(patternClientId, originalEditingMode);
|
|
276
|
-
});
|
|
277
|
-
}, [hasPatternOverridesSource, __unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
|
|
156
|
+
const canOverrideBlocks = useMemo(() => hasPatternOverridesSource && hasOverridableBlocks(blocks), [hasPatternOverridesSource, blocks]);
|
|
278
157
|
const {
|
|
279
158
|
alignment,
|
|
280
159
|
layout
|
|
281
|
-
} = useInferredLayout(
|
|
160
|
+
} = useInferredLayout(blocks, parentLayout);
|
|
282
161
|
const layoutClasses = useLayoutClasses({
|
|
283
162
|
layout
|
|
284
163
|
}, name);
|
|
285
164
|
const blockProps = useBlockProps({
|
|
286
|
-
className:
|
|
165
|
+
className: clsx('block-library-block__reusable-block-container', layout && layoutClasses, {
|
|
287
166
|
[`align${alignment}`]: alignment
|
|
288
167
|
})
|
|
289
168
|
});
|
|
169
|
+
|
|
170
|
+
// Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.
|
|
290
171
|
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
291
172
|
templateLock: 'all',
|
|
292
173
|
layout,
|
|
293
|
-
|
|
174
|
+
value: innerBlocks.length > 0 ? innerBlocks : blocks,
|
|
175
|
+
onInput: NOOP,
|
|
176
|
+
onChange: NOOP,
|
|
177
|
+
renderAppender: blocks?.length ? undefined : blocks.ButtonBlockAppender
|
|
294
178
|
});
|
|
295
|
-
|
|
296
|
-
// Sync the `content` attribute from the updated blocks to the pattern block.
|
|
297
|
-
// `syncDerivedUpdates` is used here to avoid creating an additional undo level.
|
|
298
|
-
useEffect(() => {
|
|
299
|
-
if (!hasPatternOverridesSource) {
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
const {
|
|
303
|
-
getBlocks
|
|
304
|
-
} = registry.select(blockEditorStore);
|
|
305
|
-
let prevBlocks = getBlocks(patternClientId);
|
|
306
|
-
return registry.subscribe(() => {
|
|
307
|
-
const blocks = getBlocks(patternClientId);
|
|
308
|
-
if (blocks !== prevBlocks) {
|
|
309
|
-
prevBlocks = blocks;
|
|
310
|
-
syncDerivedUpdates(() => {
|
|
311
|
-
setAttributes({
|
|
312
|
-
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current)
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
}, blockEditorStore);
|
|
317
|
-
}, [hasPatternOverridesSource, syncDerivedUpdates, patternClientId, registry, setAttributes]);
|
|
318
179
|
const handleEditOriginal = () => {
|
|
319
180
|
onNavigateToEntityRecord({
|
|
320
181
|
postId: ref,
|
|
@@ -323,7 +184,11 @@ function ReusableBlockEdit({
|
|
|
323
184
|
};
|
|
324
185
|
const resetContent = () => {
|
|
325
186
|
if (content) {
|
|
326
|
-
|
|
187
|
+
// Make sure any previous changes are persisted before resetting.
|
|
188
|
+
__unstableMarkLastChangeAsPersistent();
|
|
189
|
+
setAttributes({
|
|
190
|
+
content: undefined
|
|
191
|
+
});
|
|
327
192
|
}
|
|
328
193
|
};
|
|
329
194
|
let children = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","blocksStore","RichTextData","name","patternBlockName","unlock","useLayoutClasses","isOverridableBlock","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableBlocks","getOverridableAttributes","Object","entries","bindings","filter","binding","source","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","RecursionWarning","blockProps","createElement","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","__unstableParentLayout","patternClientId","setAttributes","registry","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","Fragment","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","useEntityBlockEditor","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","blocksStore","name","patternBlockName","unlock","useLayoutClasses","isOverridableBlock","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","hasOverridableBlocks","innerBlocks","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","RecursionWarning","blockProps","createElement","NOOP","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","content","__unstableParentLayout","patternClientId","setAttributes","record","hasResolved","id","isMissing","setBlockEditingMode","__unstableMarkLastChangeAsPersistent","userCanEdit","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","layoutClasses","className","innerBlocksProps","templateLock","value","onInput","onChange","renderAppender","ButtonBlockAppender","handleEditOriginal","postId","postType","resetContent","children","Fragment","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport {\n\tuseEntityRecord,\n\tstore as coreStore,\n\tuseEntityBlockEditor,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nconst NOOP = () => {};\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', 'wp_block', {\n\t\tid: ref,\n\t} );\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { setBlockEditingMode, __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( patternClientId ),\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( blocks ),\n\t\t[ hasPatternOverridesSource, blocks ]\n\t);\n\n\tconst { alignment, layout } = useInferredLayout( blocks, parentLayout );\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\t// Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\tvalue: innerBlocks.length > 0 ? innerBlocks : blocks,\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\trenderAppender: blocks?.length ? undefined : blocks.ButtonBlockAppender,\n\t} );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\t// Make sure any previous changes are persisted before resetting.\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tsetAttributes( { content: undefined } );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect } from '@wordpress/element';
|
|
5
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
6
|
+
import { useShortcut, store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
import { createBlock } from '@wordpress/blocks';
|
|
9
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
10
|
+
function BlockKeyboardShortcuts() {
|
|
11
|
+
const {
|
|
12
|
+
registerShortcut
|
|
13
|
+
} = useDispatch(keyboardShortcutsStore);
|
|
14
|
+
const {
|
|
15
|
+
replaceBlocks
|
|
16
|
+
} = useDispatch(blockEditorStore);
|
|
17
|
+
const {
|
|
18
|
+
getBlockName,
|
|
19
|
+
getSelectedBlockClientId,
|
|
20
|
+
getBlockAttributes
|
|
21
|
+
} = useSelect(blockEditorStore);
|
|
22
|
+
const handleTransformHeadingAndParagraph = (event, level) => {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
const currentClientId = getSelectedBlockClientId();
|
|
25
|
+
if (currentClientId === null) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const blockName = getBlockName(currentClientId);
|
|
29
|
+
const isParagraph = blockName === 'core/paragraph';
|
|
30
|
+
const isHeading = blockName === 'core/heading';
|
|
31
|
+
if (!isParagraph && !isHeading) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
|
|
35
|
+
const attributes = getBlockAttributes(currentClientId);
|
|
36
|
+
|
|
37
|
+
// Avoid unnecessary block transform when attempting to transform to
|
|
38
|
+
// the same block type and/or same level.
|
|
39
|
+
if (isParagraph && level === 0 || isHeading && attributes.level === level) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
43
|
+
const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
44
|
+
replaceBlocks(currentClientId, createBlock(destinationBlockName, {
|
|
45
|
+
level,
|
|
46
|
+
content: attributes.content,
|
|
47
|
+
...{
|
|
48
|
+
[destinationTextAlign]: attributes[textAlign]
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
};
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
registerShortcut({
|
|
54
|
+
name: 'core/block-editor/transform-heading-to-paragraph',
|
|
55
|
+
category: 'block-library',
|
|
56
|
+
description: __('Transform heading to paragraph.'),
|
|
57
|
+
keyCombination: {
|
|
58
|
+
modifier: 'access',
|
|
59
|
+
character: '0'
|
|
60
|
+
},
|
|
61
|
+
aliases: [{
|
|
62
|
+
modifier: 'access',
|
|
63
|
+
character: '7'
|
|
64
|
+
}]
|
|
65
|
+
});
|
|
66
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
67
|
+
registerShortcut({
|
|
68
|
+
name: `core/block-editor/transform-paragraph-to-heading-${level}`,
|
|
69
|
+
category: 'block-library',
|
|
70
|
+
description: __('Transform paragraph to heading.'),
|
|
71
|
+
keyCombination: {
|
|
72
|
+
modifier: 'access',
|
|
73
|
+
character: `${level}`
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}, []);
|
|
78
|
+
useShortcut('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
|
|
79
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
80
|
+
//the loop is based off on a constant therefore
|
|
81
|
+
//the hook will execute the same way every time
|
|
82
|
+
//eslint-disable-next-line react-hooks/rules-of-hooks
|
|
83
|
+
useShortcut(`core/block-editor/transform-paragraph-to-heading-${level}`, event => handleTransformHeadingAndParagraph(event, level));
|
|
84
|
+
});
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
export default BlockKeyboardShortcuts;
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useSelect","useDispatch","useShortcut","store","keyboardShortcutsStore","__","createBlock","blockEditorStore","BlockKeyboardShortcuts","registerShortcut","replaceBlocks","getBlockName","getSelectedBlockClientId","getBlockAttributes","handleTransformHeadingAndParagraph","event","level","preventDefault","currentClientId","blockName","isParagraph","isHeading","destinationBlockName","attributes","textAlign","destinationTextAlign","content","name","category","description","keyCombination","modifier","character","aliases","forEach"],"sources":["@wordpress/block-library/src/block-keyboard-shortcuts/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction BlockKeyboardShortcuts() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTransformHeadingAndParagraph = ( event, level ) => {\n\t\tevent.preventDefault();\n\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tconst isParagraph = blockName === 'core/paragraph';\n\t\tconst isHeading = blockName === 'core/heading';\n\n\t\tif ( ! isParagraph && ! isHeading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\n\t\t// Avoid unnecessary block transform when attempting to transform to\n\t\t// the same block type and/or same level.\n\t\tif (\n\t\t\t( isParagraph && level === 0 ) ||\n\t\t\t( isHeading && attributes.level === level )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: '0',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: '7',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t}, [] );\n\n\tuseShortcut(\n\t\t'core/block-editor/transform-heading-to-paragraph',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTransformHeadingAndParagraph( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nexport default BlockKeyboardShortcuts;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SACCC,WAAW,EACXC,KAAK,IAAIC,sBAAsB,QACzB,+BAA+B;AACtC,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASH,KAAK,IAAII,gBAAgB,QAAQ,yBAAyB;AAEnE,SAASC,sBAAsBA,CAAA,EAAG;EACjC,MAAM;IAAEC;EAAiB,CAAC,GAAGR,WAAW,CAAEG,sBAAuB,CAAC;EAClE,MAAM;IAAEM;EAAc,CAAC,GAAGT,WAAW,CAAEM,gBAAiB,CAAC;EACzD,MAAM;IAAEI,YAAY;IAAEC,wBAAwB;IAAEC;EAAmB,CAAC,GACnEb,SAAS,CAAEO,gBAAiB,CAAC;EAE9B,MAAMO,kCAAkC,GAAGA,CAAEC,KAAK,EAAEC,KAAK,KAAM;IAC9DD,KAAK,CAACE,cAAc,CAAC,CAAC;IAEtB,MAAMC,eAAe,GAAGN,wBAAwB,CAAC,CAAC;IAClD,IAAKM,eAAe,KAAK,IAAI,EAAG;MAC/B;IACD;IAEA,MAAMC,SAAS,GAAGR,YAAY,CAAEO,eAAgB,CAAC;IACjD,MAAME,WAAW,GAAGD,SAAS,KAAK,gBAAgB;IAClD,MAAME,SAAS,GAAGF,SAAS,KAAK,cAAc;IAE9C,IAAK,CAAEC,WAAW,IAAI,CAAEC,SAAS,EAAG;MACnC;IACD;IAEA,MAAMC,oBAAoB,GACzBN,KAAK,KAAK,CAAC,GAAG,gBAAgB,GAAG,cAAc;IAEhD,MAAMO,UAAU,GAAGV,kBAAkB,CAAEK,eAAgB,CAAC;;IAExD;IACA;IACA,IACGE,WAAW,IAAIJ,KAAK,KAAK,CAAC,IAC1BK,SAAS,IAAIE,UAAU,CAACP,KAAK,KAAKA,KAAO,EAC1C;MACD;IACD;IAEA,MAAMQ,SAAS,GACdL,SAAS,KAAK,gBAAgB,GAAG,OAAO,GAAG,WAAW;IACvD,MAAMM,oBAAoB,GACzBH,oBAAoB,KAAK,gBAAgB,GAAG,OAAO,GAAG,WAAW;IAElEZ,aAAa,CACZQ,eAAe,EACfZ,WAAW,CAAEgB,oBAAoB,EAAE;MAClCN,KAAK;MACLU,OAAO,EAAEH,UAAU,CAACG,OAAO;MAC3B,GAAG;QAAE,CAAED,oBAAoB,GAAIF,UAAU,CAAEC,SAAS;MAAG;IACxD,CAAE,CACH,CAAC;EACF,CAAC;EAEDzB,SAAS,CAAE,MAAM;IAChBU,gBAAgB,CAAE;MACjBkB,IAAI,EAAE,kDAAkD;MACxDC,QAAQ,EAAE,eAAe;MACzBC,WAAW,EAAExB,EAAE,CAAE,iCAAkC,CAAC;MACpDyB,cAAc,EAAE;QACfC,QAAQ,EAAE,QAAQ;QAClBC,SAAS,EAAE;MACZ,CAAC;MACDC,OAAO,EAAE,CACR;QACCF,QAAQ,EAAE,QAAQ;QAClBC,SAAS,EAAE;MACZ,CAAC;IAEH,CAAE,CAAC;IAEH,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAACE,OAAO,CAAIlB,KAAK,IAAM;MAC1CP,gBAAgB,CAAE;QACjBkB,IAAI,EAAG,oDAAoDX,KAAO,EAAC;QACnEY,QAAQ,EAAE,eAAe;QACzBC,WAAW,EAAExB,EAAE,CAAE,iCAAkC,CAAC;QACpDyB,cAAc,EAAE;UACfC,QAAQ,EAAE,QAAQ;UAClBC,SAAS,EAAG,GAAGhB,KAAO;QACvB;MACD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,EAAG,CAAC;EAEPd,WAAW,CACV,kDAAkD,EAChDa,KAAK,IAAMD,kCAAkC,CAAEC,KAAK,EAAE,CAAE,CAC3D,CAAC;EAED,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAACmB,OAAO,CAAIlB,KAAK,IAAM;IAC1C;IACA;IACA;IACAd,WAAW,CACT,oDAAoDc,KAAO,EAAC,EAC3DD,KAAK,IAAMD,kCAAkC,CAAEC,KAAK,EAAEC,KAAM,CAC/D,CAAC;EACF,CAAE,CAAC;EAEH,OAAO,IAAI;AACZ;AAEA,eAAeR,sBAAsB","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -48,7 +48,7 @@ function migrateAlign(attributes) {
|
|
|
48
48
|
} = attributes;
|
|
49
49
|
return {
|
|
50
50
|
...otherAttributes,
|
|
51
|
-
className:
|
|
51
|
+
className: clsx(otherAttributes.className, `align${attributes.align}`)
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
const migrateCustomColorsAndGradients = attributes => {
|
|
@@ -212,7 +212,7 @@ const v11 = {
|
|
|
212
212
|
const borderProps = getBorderClassesAndStyles(attributes);
|
|
213
213
|
const colorProps = getColorClassesAndStyles(attributes);
|
|
214
214
|
const spacingProps = getSpacingClassesAndStyles(attributes);
|
|
215
|
-
const buttonClasses =
|
|
215
|
+
const buttonClasses = clsx('wp-block-button__link', colorProps.className, borderProps.className, {
|
|
216
216
|
// For backwards compatibility add style that isn't provided via
|
|
217
217
|
// block support.
|
|
218
218
|
'no-border-radius': style?.border?.radius === 0
|
|
@@ -227,7 +227,7 @@ const v11 = {
|
|
|
227
227
|
// if it had already been assigned, for the sake of backward-compatibility.
|
|
228
228
|
// A title will no longer be assigned for new or updated button block links.
|
|
229
229
|
|
|
230
|
-
const wrapperClasses =
|
|
230
|
+
const wrapperClasses = clsx(className, {
|
|
231
231
|
[`has-custom-width wp-block-button__width-${width}`]: width,
|
|
232
232
|
[`has-custom-font-size`]: fontSize || style?.typography?.fontSize
|
|
233
233
|
});
|
|
@@ -340,7 +340,7 @@ const v10 = {
|
|
|
340
340
|
const borderProps = getBorderClassesAndStyles(attributes);
|
|
341
341
|
const colorProps = getColorClassesAndStyles(attributes);
|
|
342
342
|
const spacingProps = getSpacingClassesAndStyles(attributes);
|
|
343
|
-
const buttonClasses =
|
|
343
|
+
const buttonClasses = clsx('wp-block-button__link', colorProps.className, borderProps.className, {
|
|
344
344
|
// For backwards compatibility add style that isn't provided via
|
|
345
345
|
// block support.
|
|
346
346
|
'no-border-radius': style?.border?.radius === 0
|
|
@@ -355,7 +355,7 @@ const v10 = {
|
|
|
355
355
|
// if it had already been assigned, for the sake of backward-compatibility.
|
|
356
356
|
// A title will no longer be assigned for new or updated button block links.
|
|
357
357
|
|
|
358
|
-
const wrapperClasses =
|
|
358
|
+
const wrapperClasses = clsx(className, {
|
|
359
359
|
[`has-custom-width wp-block-button__width-${width}`]: width,
|
|
360
360
|
[`has-custom-font-size`]: fontSize || style?.typography?.fontSize
|
|
361
361
|
});
|
|
@@ -451,7 +451,7 @@ const deprecated = [v11, v10, {
|
|
|
451
451
|
}
|
|
452
452
|
const borderRadius = style?.border?.radius;
|
|
453
453
|
const colorProps = getColorClassesAndStyles(attributes);
|
|
454
|
-
const buttonClasses =
|
|
454
|
+
const buttonClasses = clsx('wp-block-button__link', colorProps.className, {
|
|
455
455
|
'no-border-radius': style?.border?.radius === 0
|
|
456
456
|
});
|
|
457
457
|
const buttonStyle = {
|
|
@@ -463,7 +463,7 @@ const deprecated = [v11, v10, {
|
|
|
463
463
|
// if it had already been assigned, for the sake of backward-compatibility.
|
|
464
464
|
// A title will no longer be assigned for new or updated button block links.
|
|
465
465
|
|
|
466
|
-
const wrapperClasses =
|
|
466
|
+
const wrapperClasses = clsx(className, {
|
|
467
467
|
[`has-custom-width wp-block-button__width-${width}`]: width,
|
|
468
468
|
[`has-custom-font-size`]: fontSize || style?.typography?.fontSize
|
|
469
469
|
});
|
|
@@ -544,7 +544,7 @@ const deprecated = [v11, v10, {
|
|
|
544
544
|
width
|
|
545
545
|
} = attributes;
|
|
546
546
|
const colorProps = getColorClassesAndStyles(attributes);
|
|
547
|
-
const buttonClasses =
|
|
547
|
+
const buttonClasses = clsx('wp-block-button__link', colorProps.className, {
|
|
548
548
|
'no-border-radius': borderRadius === 0
|
|
549
549
|
});
|
|
550
550
|
const buttonStyle = {
|
|
@@ -556,7 +556,7 @@ const deprecated = [v11, v10, {
|
|
|
556
556
|
// if it had already been assigned, for the sake of backward-compatibility.
|
|
557
557
|
// A title will no longer be assigned for new or updated button block links.
|
|
558
558
|
|
|
559
|
-
const wrapperClasses =
|
|
559
|
+
const wrapperClasses = clsx(className, {
|
|
560
560
|
[`has-custom-width wp-block-button__width-${width}`]: width
|
|
561
561
|
});
|
|
562
562
|
return createElement("div", {
|
|
@@ -636,7 +636,7 @@ const deprecated = [v11, v10, {
|
|
|
636
636
|
width
|
|
637
637
|
} = attributes;
|
|
638
638
|
const colorProps = getColorClassesAndStyles(attributes);
|
|
639
|
-
const buttonClasses =
|
|
639
|
+
const buttonClasses = clsx('wp-block-button__link', colorProps.className, {
|
|
640
640
|
'no-border-radius': borderRadius === 0
|
|
641
641
|
});
|
|
642
642
|
const buttonStyle = {
|
|
@@ -648,7 +648,7 @@ const deprecated = [v11, v10, {
|
|
|
648
648
|
// if it had already been assigned, for the sake of backward-compatibility.
|
|
649
649
|
// A title will no longer be assigned for new or updated button block links.
|
|
650
650
|
|
|
651
|
-
const wrapperClasses =
|
|
651
|
+
const wrapperClasses = clsx(className, {
|
|
652
652
|
[`has-custom-width wp-block-button__width-${width}`]: width
|
|
653
653
|
});
|
|
654
654
|
return createElement("div", {
|
|
@@ -719,7 +719,7 @@ const deprecated = [v11, v10, {
|
|
|
719
719
|
title,
|
|
720
720
|
url
|
|
721
721
|
} = attributes;
|
|
722
|
-
const buttonClasses =
|
|
722
|
+
const buttonClasses = clsx('wp-block-button__link', {
|
|
723
723
|
'no-border-radius': borderRadius === 0
|
|
724
724
|
});
|
|
725
725
|
const buttonStyle = {
|
|
@@ -803,7 +803,7 @@ const deprecated = [v11, v10, {
|
|
|
803
803
|
const textClass = getColorClassName('color', textColor);
|
|
804
804
|
const backgroundClass = !customGradient && getColorClassName('background-color', backgroundColor);
|
|
805
805
|
const gradientClass = __experimentalGetGradientClass(gradient);
|
|
806
|
-
const buttonClasses =
|
|
806
|
+
const buttonClasses = clsx('wp-block-button__link', {
|
|
807
807
|
'has-text-color': textColor || customTextColor,
|
|
808
808
|
[textClass]: textClass,
|
|
809
809
|
'has-background': backgroundColor || customBackgroundColor || customGradient || gradient,
|
|
@@ -898,7 +898,7 @@ const deprecated = [v11, v10, {
|
|
|
898
898
|
} = attributes;
|
|
899
899
|
const textClass = getColorClassName('color', textColor);
|
|
900
900
|
const backgroundClass = getColorClassName('background-color', backgroundColor);
|
|
901
|
-
const buttonClasses =
|
|
901
|
+
const buttonClasses = clsx('wp-block-button__link', {
|
|
902
902
|
'has-text-color': textColor || customTextColor,
|
|
903
903
|
[textClass]: textClass,
|
|
904
904
|
'has-background': backgroundColor || customBackgroundColor,
|
|
@@ -954,7 +954,7 @@ const deprecated = [v11, v10, {
|
|
|
954
954
|
} = attributes;
|
|
955
955
|
const textClass = getColorClassName('color', textColor);
|
|
956
956
|
const backgroundClass = getColorClassName('background-color', backgroundColor);
|
|
957
|
-
const buttonClasses =
|
|
957
|
+
const buttonClasses = clsx('wp-block-button__link', {
|
|
958
958
|
'has-text-color': textColor || customTextColor,
|
|
959
959
|
[textClass]: textClass,
|
|
960
960
|
'has-background': backgroundColor || customBackgroundColor,
|