@wordpress/block-library 9.6.1 → 9.7.1-next.5368f64a9.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 +2 -0
- package/build/archives/edit.js +1 -1
- package/build/archives/edit.js.map +1 -1
- package/build/audio/edit.js +2 -1
- package/build/audio/edit.js.map +1 -1
- package/build/block/edit.js +5 -8
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/index.js +1 -1
- package/build/categories/index.js +1 -0
- package/build/categories/index.js.map +1 -1
- package/build/comment-edit-link/index.js +13 -2
- package/build/comment-edit-link/index.js.map +1 -1
- package/build/comment-reply-link/index.js +13 -2
- package/build/comment-reply-link/index.js.map +1 -1
- package/build/comments/edit/comments-legacy.js +1 -0
- package/build/comments/edit/comments-legacy.js.map +1 -1
- package/build/cover/deprecated.js +1 -1
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/block-controls.js +4 -2
- package/build/cover/edit/block-controls.js.map +1 -1
- package/build/cover/edit/index.js +6 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +4 -12
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/details/index.js +3 -1
- package/build/details/index.js.map +1 -1
- package/build/details/transforms.js +24 -0
- package/build/details/transforms.js.map +1 -0
- package/build/embed/edit.js +5 -11
- package/build/embed/edit.js.map +1 -1
- package/build/embed/embed-placeholder.js +2 -0
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/embed-preview.js +16 -4
- package/build/embed/embed-preview.js.map +1 -1
- package/build/file/edit.js +12 -1
- package/build/file/edit.js.map +1 -1
- package/build/file/transforms.js +18 -4
- package/build/file/transforms.js.map +1 -1
- package/build/freeform/edit.js +4 -4
- package/build/freeform/edit.js.map +1 -1
- package/build/freeform/modal.js +3 -0
- package/build/freeform/modal.js.map +1 -1
- package/build/home-link/edit.js +3 -9
- package/build/home-link/edit.js.map +1 -1
- package/build/image/edit.js +95 -45
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +39 -24
- package/build/image/image.js.map +1 -1
- package/build/image/transforms.js +0 -13
- package/build/image/transforms.js.map +1 -1
- package/build/image/use-max-width-observer.js +35 -0
- package/build/image/use-max-width-observer.js.map +1 -0
- package/build/image/utils.js +11 -0
- package/build/image/utils.js.map +1 -1
- package/build/latest-posts/edit.js +1 -1
- package/build/latest-posts/edit.js.map +1 -1
- package/build/media-text/deprecated.js +144 -3
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +5 -5
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/image-fill.js +12 -0
- package/build/media-text/image-fill.js.map +1 -0
- package/build/media-text/media-container.js +21 -18
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +0 -7
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/save.js +5 -6
- package/build/media-text/save.js.map +1 -1
- package/build/missing/edit.js +3 -2
- package/build/missing/edit.js.map +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js +14 -7
- package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build/navigation/edit/index.js +1 -0
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +1 -0
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +2 -0
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +4 -4
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation-link/link-ui.js +2 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +2 -0
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +4 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/post-comments-form/form.js +1 -0
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +6 -8
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +2 -4
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-title/index.js +4 -1
- package/build/post-title/index.js.map +1 -1
- package/build/query/edit/enhanced-pagination-modal.js +3 -2
- package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +2 -10
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/query-content.js +9 -3
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +2 -0
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/site-logo/edit.js +9 -13
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/index.js +4 -1
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/edit.js +4 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.js +10 -9
- package/build/social-links/edit.js.map +1 -1
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +10 -1
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/placeholder.js +2 -0
- package/build/template-part/edit/placeholder.js.map +1 -1
- package/build/utils/hooks.js +10 -10
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit.js +16 -12
- package/build/video/edit.js.map +1 -1
- package/build/video/tracks-editor.js +3 -0
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/archives/edit.js +1 -1
- package/build-module/archives/edit.js.map +1 -1
- package/build-module/audio/edit.js +2 -1
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/block/edit.js +6 -9
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/index.js +1 -1
- package/build-module/categories/index.js +1 -0
- package/build-module/categories/index.js.map +1 -1
- package/build-module/comment-edit-link/index.js +13 -2
- package/build-module/comment-edit-link/index.js.map +1 -1
- package/build-module/comment-reply-link/index.js +13 -2
- package/build-module/comment-reply-link/index.js.map +1 -1
- package/build-module/comments/edit/comments-legacy.js +1 -0
- package/build-module/comments/edit/comments-legacy.js.map +1 -1
- package/build-module/cover/deprecated.js +1 -1
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +4 -2
- package/build-module/cover/edit/block-controls.js.map +1 -1
- package/build-module/cover/edit/index.js +6 -3
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +5 -13
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/details/index.js +3 -1
- package/build-module/details/index.js.map +1 -1
- package/build-module/details/transforms.js +18 -0
- package/build-module/details/transforms.js.map +1 -0
- package/build-module/embed/edit.js +6 -12
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +2 -0
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/embed-preview.js +16 -4
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/file/edit.js +12 -1
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/transforms.js +18 -4
- package/build-module/file/transforms.js.map +1 -1
- package/build-module/freeform/edit.js +4 -4
- package/build-module/freeform/edit.js.map +1 -1
- package/build-module/freeform/modal.js +3 -0
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/home-link/edit.js +3 -9
- package/build-module/home-link/edit.js.map +1 -1
- package/build-module/image/edit.js +99 -48
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +40 -25
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/transforms.js +0 -13
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/image/use-max-width-observer.js +29 -0
- package/build-module/image/use-max-width-observer.js.map +1 -0
- package/build-module/image/utils.js +11 -1
- package/build-module/image/utils.js.map +1 -1
- package/build-module/latest-posts/edit.js +1 -1
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/media-text/deprecated.js +144 -3
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +5 -5
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/image-fill.js +6 -0
- package/build-module/media-text/image-fill.js.map +1 -0
- package/build-module/media-text/media-container.js +21 -17
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +0 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/media-text/save.js +5 -6
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/missing/edit.js +3 -2
- package/build-module/missing/edit.js.map +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js +15 -8
- package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build-module/navigation/edit/index.js +1 -0
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -1
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +1 -0
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +2 -0
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -4
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +4 -3
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +2 -0
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +4 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/post-comments-form/form.js +1 -0
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +6 -8
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +3 -5
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-title/index.js +4 -1
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/query/edit/enhanced-pagination-modal.js +3 -2
- package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +2 -10
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/query-content.js +10 -4
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +2 -0
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/site-logo/edit.js +10 -14
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/index.js +4 -1
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/edit.js +4 -1
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.js +11 -10
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +10 -1
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +2 -0
- package/build-module/template-part/edit/placeholder.js.map +1 -1
- package/build-module/utils/hooks.js +10 -10
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit.js +16 -13
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/tracks-editor.js +3 -0
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/button/editor-rtl.css +0 -4
- package/build-style/button/editor.css +0 -4
- package/build-style/buttons/editor-rtl.css +2 -5
- package/build-style/buttons/editor.css +2 -5
- package/build-style/buttons/style-rtl.css +2 -2
- package/build-style/buttons/style.css +2 -2
- package/build-style/comment-edit-link/style-rtl.css +94 -0
- package/build-style/comment-edit-link/style.css +94 -0
- package/build-style/comment-reply-link/style-rtl.css +94 -0
- package/build-style/comment-reply-link/style.css +94 -0
- package/build-style/comments-pagination/editor-rtl.css +2 -2
- package/build-style/comments-pagination/editor.css +2 -2
- package/build-style/common-rtl.css +2 -2
- package/build-style/common.css +2 -2
- package/build-style/cover/editor-rtl.css +0 -6
- package/build-style/cover/editor.css +0 -6
- package/build-style/editor-rtl.css +35 -99
- package/build-style/editor.css +35 -101
- package/build-style/group/editor-rtl.css +0 -1
- package/build-style/group/editor.css +0 -1
- package/build-style/image/editor-rtl.css +6 -27
- package/build-style/image/editor.css +6 -27
- package/build-style/media-text/editor-rtl.css +3 -1
- package/build-style/media-text/editor.css +3 -1
- package/build-style/media-text/style-rtl.css +20 -0
- package/build-style/media-text/style.css +20 -0
- package/build-style/navigation/editor-rtl.css +1 -2
- package/build-style/navigation/editor.css +1 -2
- package/build-style/post-featured-image/style-rtl.css +1 -1
- package/build-style/post-featured-image/style.css +1 -1
- package/build-style/post-title/style-rtl.css +21 -0
- package/build-style/post-title/style.css +21 -0
- package/build-style/query-pagination/editor-rtl.css +2 -16
- package/build-style/query-pagination/editor.css +2 -18
- package/build-style/query-pagination/style-rtl.css +0 -11
- package/build-style/query-pagination/style.css +0 -13
- package/build-style/site-title/editor-rtl.css +0 -4
- package/build-style/site-title/editor.css +0 -4
- package/build-style/site-title/style-rtl.css +21 -0
- package/build-style/site-title/style.css +21 -0
- package/build-style/social-links/editor-rtl.css +17 -0
- package/build-style/social-links/editor.css +17 -0
- package/build-style/style-rtl.css +75 -16
- package/build-style/style.css +75 -18
- package/build-style/video/editor-rtl.css +0 -29
- package/build-style/video/editor.css +0 -29
- package/package.json +42 -35
- package/src/archives/edit.js +1 -1
- package/src/audio/edit.js +1 -0
- package/src/block/edit.js +9 -11
- package/src/button/edit.js +1 -1
- package/src/button/editor.scss +0 -5
- package/src/buttons/block.json +1 -1
- package/src/buttons/editor.scss +2 -8
- package/src/buttons/style.scss +2 -2
- package/src/categories/block.json +1 -0
- package/src/categories/index.php +13 -2
- package/src/comment-edit-link/block.json +13 -2
- package/src/comment-edit-link/style.scss +4 -0
- package/src/comment-reply-link/block.json +13 -2
- package/src/comment-reply-link/style.scss +4 -0
- package/src/comments/edit/comments-legacy.js +1 -0
- package/src/comments-pagination/editor.scss +1 -1
- package/src/cover/deprecated.js +3 -2
- package/src/cover/edit/block-controls.js +2 -0
- package/src/cover/edit/index.js +6 -1
- package/src/cover/edit/inspector-controls.js +3 -15
- package/src/cover/editor.scss +0 -5
- package/src/cover/test/edit.js +30 -26
- package/src/details/index.js +2 -0
- package/src/details/transforms.js +26 -0
- package/src/embed/edit.js +0 -7
- package/src/embed/embed-placeholder.js +10 -2
- package/src/embed/embed-preview.js +22 -2
- package/src/file/edit.js +11 -0
- package/src/file/index.php +1 -1
- package/src/file/transforms.js +26 -6
- package/src/freeform/edit.js +4 -4
- package/src/freeform/editor.scss +1 -1
- package/src/freeform/modal.js +7 -1
- package/src/gallery/editor.scss +1 -1
- package/src/group/editor.scss +0 -1
- package/src/home-link/edit.js +4 -7
- package/src/image/edit.js +130 -47
- package/src/image/editor.scss +7 -41
- package/src/image/image.js +100 -67
- package/src/image/index.php +1 -1
- package/src/image/transforms.js +0 -23
- package/src/image/use-max-width-observer.js +32 -0
- package/src/image/utils.js +13 -1
- package/src/latest-posts/edit.js +1 -1
- package/src/media-text/deprecated.js +159 -3
- package/src/media-text/edit.js +5 -5
- package/src/media-text/editor.scss +3 -1
- package/src/media-text/image-fill.js +11 -0
- package/src/media-text/index.php +53 -43
- package/src/media-text/media-container.js +25 -25
- package/src/media-text/media-container.native.js +0 -2
- package/src/media-text/save.js +9 -13
- package/src/media-text/style.scss +21 -0
- package/src/media-text/test/image-fill.js +19 -0
- package/src/missing/edit.js +8 -3
- package/src/navigation/edit/deleted-navigation-warning.js +23 -13
- package/src/navigation/edit/index.js +1 -0
- package/src/navigation/edit/menu-inspector-controls.js +3 -1
- package/src/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/src/navigation/edit/placeholder/index.js +1 -0
- package/src/navigation/edit/responsive-wrapper.js +2 -0
- package/src/navigation/edit/unsaved-inner-blocks.js +4 -4
- package/src/navigation/editor.scss +11 -4
- package/src/navigation/index.php +1 -1
- package/src/navigation-link/link-ui.js +4 -3
- package/src/page-list/convert-to-links-modal.js +6 -1
- package/src/page-list/edit.js +6 -1
- package/src/page-list/index.php +3 -1
- package/src/post-comments-form/form.js +1 -0
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +3 -6
- package/src/post-featured-image/style.scss +1 -1
- package/src/post-title/block.json +4 -1
- package/src/post-title/style.scss +24 -0
- package/src/query/edit/enhanced-pagination-modal.js +7 -3
- package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
- package/src/query/edit/inspector-controls/index.js +2 -9
- package/src/query/edit/query-content.js +7 -0
- package/src/query/edit/query-placeholder.js +2 -0
- package/src/query/index.php +1 -1
- package/src/query-pagination/editor.scss +1 -21
- package/src/query-pagination/style.scss +0 -15
- package/src/search/index.php +1 -1
- package/src/site-logo/edit.js +11 -20
- package/src/site-title/block.json +4 -1
- package/src/site-title/editor.scss +0 -4
- package/src/site-title/style.scss +24 -0
- package/src/social-link/edit.js +2 -0
- package/src/social-links/edit.js +17 -10
- package/src/social-links/editor.scss +24 -5
- package/src/style.scss +2 -0
- package/src/tag-cloud/index.php +7 -2
- package/src/template-part/edit/advanced-controls.js +0 -1
- package/src/template-part/edit/index.js +12 -10
- package/src/template-part/edit/inner-blocks.js +20 -1
- package/src/template-part/edit/placeholder.js +6 -1
- package/src/utils/hooks.js +11 -11
- package/src/video/edit.js +24 -21
- package/src/video/editor.scss +0 -45
- package/src/video/tracks-editor.js +3 -0
- package/src/media-text/test/media-container.js +0 -24
package/src/cover/test/edit.js
CHANGED
|
@@ -155,6 +155,34 @@ describe( 'Cover block', () => {
|
|
|
155
155
|
'is-position-top-left'
|
|
156
156
|
);
|
|
157
157
|
} );
|
|
158
|
+
|
|
159
|
+
test( 'clears media when clear media button clicked', async () => {
|
|
160
|
+
await setup( {
|
|
161
|
+
url: 'http://localhost/my-image.jpg',
|
|
162
|
+
} );
|
|
163
|
+
|
|
164
|
+
await selectBlock( 'Block: Cover' );
|
|
165
|
+
expect(
|
|
166
|
+
within( screen.getByLabelText( 'Block: Cover' ) ).getByRole(
|
|
167
|
+
'img'
|
|
168
|
+
)
|
|
169
|
+
).toBeInTheDocument();
|
|
170
|
+
|
|
171
|
+
await userEvent.click(
|
|
172
|
+
screen.getByRole( 'button', { name: 'Replace' } )
|
|
173
|
+
);
|
|
174
|
+
await userEvent.click(
|
|
175
|
+
screen.getByRole( 'menuitem', {
|
|
176
|
+
name: 'Reset',
|
|
177
|
+
} )
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
expect(
|
|
181
|
+
within( screen.getByLabelText( 'Block: Cover' ) ).queryByRole(
|
|
182
|
+
'img'
|
|
183
|
+
)
|
|
184
|
+
).not.toBeInTheDocument();
|
|
185
|
+
} );
|
|
158
186
|
} );
|
|
159
187
|
|
|
160
188
|
describe( 'Inspector controls', () => {
|
|
@@ -242,30 +270,6 @@ describe( 'Cover block', () => {
|
|
|
242
270
|
expect( screen.getByAltText( 'Me' ) ).toBeInTheDocument();
|
|
243
271
|
} );
|
|
244
272
|
|
|
245
|
-
test( 'clears media when clear media button clicked', async () => {
|
|
246
|
-
await setup( {
|
|
247
|
-
url: 'http://localhost/my-image.jpg',
|
|
248
|
-
} );
|
|
249
|
-
|
|
250
|
-
await selectBlock( 'Block: Cover' );
|
|
251
|
-
expect(
|
|
252
|
-
within( screen.getByLabelText( 'Block: Cover' ) ).getByRole(
|
|
253
|
-
'img'
|
|
254
|
-
)
|
|
255
|
-
).toBeInTheDocument();
|
|
256
|
-
|
|
257
|
-
await userEvent.click(
|
|
258
|
-
screen.getByRole( 'button', {
|
|
259
|
-
name: 'Clear Media',
|
|
260
|
-
} )
|
|
261
|
-
);
|
|
262
|
-
expect(
|
|
263
|
-
within( screen.getByLabelText( 'Block: Cover' ) ).queryByRole(
|
|
264
|
-
'img'
|
|
265
|
-
)
|
|
266
|
-
).not.toBeInTheDocument();
|
|
267
|
-
} );
|
|
268
|
-
|
|
269
273
|
describe( 'Color panel', () => {
|
|
270
274
|
test( 'applies selected opacity to block when number control value changed', async () => {
|
|
271
275
|
const { container } = await setup();
|
|
@@ -372,10 +376,10 @@ describe( 'Cover block', () => {
|
|
|
372
376
|
} )
|
|
373
377
|
);
|
|
374
378
|
await userEvent.clear(
|
|
375
|
-
screen.getByLabelText( 'Minimum height
|
|
379
|
+
screen.getByLabelText( 'Minimum height' )
|
|
376
380
|
);
|
|
377
381
|
await userEvent.type(
|
|
378
|
-
screen.getByLabelText( 'Minimum height
|
|
382
|
+
screen.getByLabelText( 'Minimum height' ),
|
|
379
383
|
'300'
|
|
380
384
|
);
|
|
381
385
|
|
package/src/details/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import initBlock from '../utils/init-block';
|
|
|
11
11
|
import metadata from './block.json';
|
|
12
12
|
import edit from './edit';
|
|
13
13
|
import save from './save';
|
|
14
|
+
import transforms from './transforms';
|
|
14
15
|
|
|
15
16
|
const { name } = metadata;
|
|
16
17
|
export { metadata, name };
|
|
@@ -35,6 +36,7 @@ export const settings = {
|
|
|
35
36
|
},
|
|
36
37
|
save,
|
|
37
38
|
edit,
|
|
39
|
+
transforms,
|
|
38
40
|
};
|
|
39
41
|
|
|
40
42
|
export const init = () => initBlock( { name, metadata, settings } );
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { createBlock, cloneBlock } from '@wordpress/blocks';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
from: [
|
|
8
|
+
{
|
|
9
|
+
type: 'block',
|
|
10
|
+
isMultiBlock: true,
|
|
11
|
+
blocks: [ '*' ],
|
|
12
|
+
isMatch( {}, blocks ) {
|
|
13
|
+
return ! (
|
|
14
|
+
blocks.length === 1 && blocks[ 0 ].name === 'core/details'
|
|
15
|
+
);
|
|
16
|
+
},
|
|
17
|
+
__experimentalConvert( blocks ) {
|
|
18
|
+
return createBlock(
|
|
19
|
+
'core/details',
|
|
20
|
+
{},
|
|
21
|
+
blocks.map( ( block ) => cloneBlock( block ) )
|
|
22
|
+
);
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
package/src/embed/edit.js
CHANGED
|
@@ -14,7 +14,6 @@ import { embedContentIcon } from './icons';
|
|
|
14
14
|
import EmbedLoading from './embed-loading';
|
|
15
15
|
import EmbedPlaceholder from './embed-placeholder';
|
|
16
16
|
import EmbedPreview from './embed-preview';
|
|
17
|
-
import { Caption } from '../utils/caption';
|
|
18
17
|
|
|
19
18
|
/**
|
|
20
19
|
* External dependencies
|
|
@@ -277,14 +276,8 @@ const EmbedEdit = ( props ) => {
|
|
|
277
276
|
icon={ icon }
|
|
278
277
|
label={ label }
|
|
279
278
|
insertBlocksAfter={ insertBlocksAfter }
|
|
280
|
-
/>
|
|
281
|
-
<Caption
|
|
282
279
|
attributes={ attributes }
|
|
283
280
|
setAttributes={ setAttributes }
|
|
284
|
-
isSelected={ isSelected }
|
|
285
|
-
insertBlocksAfter={ insertBlocksAfter }
|
|
286
|
-
label={ __( 'Embed caption text' ) }
|
|
287
|
-
showToolbarButton={ isSelected }
|
|
288
281
|
/>
|
|
289
282
|
</View>
|
|
290
283
|
</>
|
|
@@ -65,10 +65,18 @@ const EmbedPlaceholder = ( {
|
|
|
65
65
|
spacing={ 3 }
|
|
66
66
|
justify="flex-start"
|
|
67
67
|
>
|
|
68
|
-
<Button
|
|
68
|
+
<Button
|
|
69
|
+
__next40pxDefaultSize
|
|
70
|
+
variant="secondary"
|
|
71
|
+
onClick={ tryAgain }
|
|
72
|
+
>
|
|
69
73
|
{ _x( 'Try again', 'button label' ) }
|
|
70
74
|
</Button>{ ' ' }
|
|
71
|
-
<Button
|
|
75
|
+
<Button
|
|
76
|
+
__next40pxDefaultSize
|
|
77
|
+
variant="secondary"
|
|
78
|
+
onClick={ fallback }
|
|
79
|
+
>
|
|
72
80
|
{ _x( 'Convert to link', 'button label' ) }
|
|
73
81
|
</Button>
|
|
74
82
|
</HStack>
|
|
@@ -21,6 +21,7 @@ import { getAuthority } from '@wordpress/url';
|
|
|
21
21
|
* Internal dependencies
|
|
22
22
|
*/
|
|
23
23
|
import WpEmbedPreview from './wp-embed-preview';
|
|
24
|
+
import { Caption } from '../utils/caption';
|
|
24
25
|
|
|
25
26
|
class EmbedPreview extends Component {
|
|
26
27
|
constructor() {
|
|
@@ -52,8 +53,19 @@ class EmbedPreview extends Component {
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
render() {
|
|
55
|
-
const {
|
|
56
|
-
|
|
56
|
+
const {
|
|
57
|
+
preview,
|
|
58
|
+
previewable,
|
|
59
|
+
url,
|
|
60
|
+
type,
|
|
61
|
+
className,
|
|
62
|
+
icon,
|
|
63
|
+
label,
|
|
64
|
+
insertBlocksAfter,
|
|
65
|
+
attributes,
|
|
66
|
+
setAttributes,
|
|
67
|
+
isSelected,
|
|
68
|
+
} = this.props;
|
|
57
69
|
const { scripts } = preview;
|
|
58
70
|
const { interactive } = this.state;
|
|
59
71
|
|
|
@@ -123,6 +135,14 @@ class EmbedPreview extends Component {
|
|
|
123
135
|
</p>
|
|
124
136
|
</Placeholder>
|
|
125
137
|
) }
|
|
138
|
+
<Caption
|
|
139
|
+
attributes={ attributes }
|
|
140
|
+
setAttributes={ setAttributes }
|
|
141
|
+
isSelected={ isSelected }
|
|
142
|
+
insertBlocksAfter={ insertBlocksAfter }
|
|
143
|
+
label={ __( 'Embed caption text' ) }
|
|
144
|
+
showToolbarButton={ isSelected }
|
|
145
|
+
/>
|
|
126
146
|
</figure>
|
|
127
147
|
);
|
|
128
148
|
}
|
package/src/file/edit.js
CHANGED
|
@@ -109,6 +109,16 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
|
|
|
109
109
|
|
|
110
110
|
function onSelectFile( newMedia ) {
|
|
111
111
|
if ( ! newMedia || ! newMedia.url ) {
|
|
112
|
+
// Reset attributes.
|
|
113
|
+
setAttributes( {
|
|
114
|
+
href: undefined,
|
|
115
|
+
fileName: undefined,
|
|
116
|
+
textLinkHref: undefined,
|
|
117
|
+
id: undefined,
|
|
118
|
+
fileId: undefined,
|
|
119
|
+
displayPreview: undefined,
|
|
120
|
+
previewHeight: undefined,
|
|
121
|
+
} );
|
|
112
122
|
setTemporaryURL();
|
|
113
123
|
return;
|
|
114
124
|
}
|
|
@@ -230,6 +240,7 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
|
|
|
230
240
|
accept="*"
|
|
231
241
|
onSelect={ onSelectFile }
|
|
232
242
|
onError={ onUploadError }
|
|
243
|
+
onReset={ () => onSelectFile( undefined ) }
|
|
233
244
|
/>
|
|
234
245
|
<ClipboardToolbarButton
|
|
235
246
|
text={ href }
|
package/src/file/index.php
CHANGED
|
@@ -21,7 +21,7 @@ function render_block_core_file( $attributes, $content ) {
|
|
|
21
21
|
if ( ! empty( $attributes['displayPreview'] ) ) {
|
|
22
22
|
$suffix = wp_scripts_get_suffix();
|
|
23
23
|
if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
|
|
24
|
-
$module_url = gutenberg_url( '/build/
|
|
24
|
+
$module_url = gutenberg_url( '/build-module/block-library/file/view.min.js' );
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
wp_register_script_module(
|
package/src/file/transforms.js
CHANGED
|
@@ -24,12 +24,32 @@ const transforms = {
|
|
|
24
24
|
const blobURL = createBlobURL( file );
|
|
25
25
|
|
|
26
26
|
// File will be uploaded in componentDidMount()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
if ( file.type.startsWith( 'video/' ) ) {
|
|
28
|
+
blocks.push(
|
|
29
|
+
createBlock( 'core/video', {
|
|
30
|
+
blob: createBlobURL( file ),
|
|
31
|
+
} )
|
|
32
|
+
);
|
|
33
|
+
} else if ( file.type.startsWith( 'image/' ) ) {
|
|
34
|
+
blocks.push(
|
|
35
|
+
createBlock( 'core/image', {
|
|
36
|
+
blob: createBlobURL( file ),
|
|
37
|
+
} )
|
|
38
|
+
);
|
|
39
|
+
} else if ( file.type.startsWith( 'audio/' ) ) {
|
|
40
|
+
blocks.push(
|
|
41
|
+
createBlock( 'core/audio', {
|
|
42
|
+
blob: createBlobURL( file ),
|
|
43
|
+
} )
|
|
44
|
+
);
|
|
45
|
+
} else {
|
|
46
|
+
blocks.push(
|
|
47
|
+
createBlock( 'core/file', {
|
|
48
|
+
blob: blobURL,
|
|
49
|
+
fileName: file.name,
|
|
50
|
+
} )
|
|
51
|
+
);
|
|
52
|
+
}
|
|
33
53
|
} );
|
|
34
54
|
|
|
35
55
|
return blocks;
|
package/src/freeform/edit.js
CHANGED
|
@@ -75,10 +75,10 @@ function ClassicEdit( {
|
|
|
75
75
|
onReplace,
|
|
76
76
|
} ) {
|
|
77
77
|
const { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );
|
|
78
|
-
const
|
|
78
|
+
const didMountRef = useRef( false );
|
|
79
79
|
|
|
80
80
|
useEffect( () => {
|
|
81
|
-
if ( !
|
|
81
|
+
if ( ! didMountRef.current ) {
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
84
|
|
|
@@ -96,7 +96,7 @@ function ClassicEdit( {
|
|
|
96
96
|
useEffect( () => {
|
|
97
97
|
const { baseURL, suffix } = window.wpEditorL10n.tinymce;
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
didMountRef.current = true;
|
|
100
100
|
|
|
101
101
|
window.tinymce.EditorManager.overrideDefaults( {
|
|
102
102
|
base_url: baseURL,
|
|
@@ -230,7 +230,7 @@ function ClassicEdit( {
|
|
|
230
230
|
onReadyStateChange
|
|
231
231
|
);
|
|
232
232
|
wp.oldEditor.remove( `editor-${ clientId }` );
|
|
233
|
-
|
|
233
|
+
didMountRef.current = false;
|
|
234
234
|
};
|
|
235
235
|
}, [] );
|
|
236
236
|
|
package/src/freeform/editor.scss
CHANGED
|
@@ -299,7 +299,7 @@ div[data-type="core/freeform"] {
|
|
|
299
299
|
top: 0;
|
|
300
300
|
border: $border-width solid $gray-300;
|
|
301
301
|
border-bottom: none;
|
|
302
|
-
border-radius: $radius-
|
|
302
|
+
border-radius: $radius-small;
|
|
303
303
|
margin-bottom: $grid-unit-10;
|
|
304
304
|
|
|
305
305
|
// On mobile, toolbars go edge to edge.
|
package/src/freeform/modal.js
CHANGED
|
@@ -25,6 +25,7 @@ function ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {
|
|
|
25
25
|
|
|
26
26
|
return (
|
|
27
27
|
<Button
|
|
28
|
+
size="small"
|
|
28
29
|
onClick={ onClick }
|
|
29
30
|
icon={ fullscreen }
|
|
30
31
|
isPressed={ isModalFullScreen }
|
|
@@ -120,12 +121,17 @@ export default function ModalEdit( props ) {
|
|
|
120
121
|
expanded={ false }
|
|
121
122
|
>
|
|
122
123
|
<FlexItem>
|
|
123
|
-
<Button
|
|
124
|
+
<Button
|
|
125
|
+
__next40pxDefaultSize
|
|
126
|
+
variant="tertiary"
|
|
127
|
+
onClick={ onClose }
|
|
128
|
+
>
|
|
124
129
|
{ __( 'Cancel' ) }
|
|
125
130
|
</Button>
|
|
126
131
|
</FlexItem>
|
|
127
132
|
<FlexItem>
|
|
128
133
|
<Button
|
|
134
|
+
__next40pxDefaultSize
|
|
129
135
|
variant="primary"
|
|
130
136
|
onClick={ () => {
|
|
131
137
|
setAttributes( {
|
package/src/gallery/editor.scss
CHANGED
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
z-index: z-index(".block-library-gallery-item__inline-menu");
|
|
140
140
|
transition: box-shadow 0.2s ease-out;
|
|
141
141
|
@include reduce-motion("transition");
|
|
142
|
-
border-radius: $radius-
|
|
142
|
+
border-radius: $radius-small;
|
|
143
143
|
background: $white;
|
|
144
144
|
border: $border-width solid $gray-900;
|
|
145
145
|
|
package/src/group/editor.scss
CHANGED
package/src/home-link/edit.js
CHANGED
|
@@ -19,13 +19,10 @@ import { useEffect } from '@wordpress/element';
|
|
|
19
19
|
const preventDefault = ( event ) => event.preventDefault();
|
|
20
20
|
|
|
21
21
|
export default function HomeEdit( { attributes, setAttributes, context } ) {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
homeUrl: getUnstableBase()?.home,
|
|
28
|
-
};
|
|
22
|
+
const homeUrl = useSelect( ( select ) => {
|
|
23
|
+
// Site index.
|
|
24
|
+
return select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
|
|
25
|
+
?.home;
|
|
29
26
|
}, [] );
|
|
30
27
|
const { __unstableMarkNextChangeAsNotPersistent } =
|
|
31
28
|
useDispatch( blockEditorStore );
|
package/src/image/edit.js
CHANGED
|
@@ -6,14 +6,14 @@ import clsx from 'clsx';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { isBlobURL } from '@wordpress/blob';
|
|
10
|
-
import { store as blocksStore } from '@wordpress/blocks';
|
|
9
|
+
import { isBlobURL, createBlobURL } from '@wordpress/blob';
|
|
10
|
+
import { store as blocksStore, createBlock } from '@wordpress/blocks';
|
|
11
11
|
import { Placeholder } from '@wordpress/components';
|
|
12
12
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
13
13
|
import {
|
|
14
14
|
BlockIcon,
|
|
15
|
-
MediaPlaceholder,
|
|
16
15
|
useBlockProps,
|
|
16
|
+
MediaPlaceholder,
|
|
17
17
|
store as blockEditorStore,
|
|
18
18
|
__experimentalUseBorderProps as useBorderProps,
|
|
19
19
|
__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,
|
|
@@ -23,6 +23,7 @@ import { useEffect, useRef, useState } from '@wordpress/element';
|
|
|
23
23
|
import { __, sprintf } from '@wordpress/i18n';
|
|
24
24
|
import { image as icon, plugins as pluginsIcon } from '@wordpress/icons';
|
|
25
25
|
import { store as noticesStore } from '@wordpress/notices';
|
|
26
|
+
import { useResizeObserver } from '@wordpress/compose';
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* Internal dependencies
|
|
@@ -30,6 +31,8 @@ import { store as noticesStore } from '@wordpress/notices';
|
|
|
30
31
|
import { unlock } from '../lock-unlock';
|
|
31
32
|
import { useUploadMediaFromBlobURL } from '../utils/hooks';
|
|
32
33
|
import Image from './image';
|
|
34
|
+
import { isValidFileType } from './utils';
|
|
35
|
+
import { useMaxWidthObserver } from './use-max-width-observer';
|
|
33
36
|
|
|
34
37
|
/**
|
|
35
38
|
* Module constants
|
|
@@ -107,8 +110,23 @@ export function ImageEdit( {
|
|
|
107
110
|
align,
|
|
108
111
|
metadata,
|
|
109
112
|
} = attributes;
|
|
113
|
+
|
|
110
114
|
const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
|
|
111
115
|
|
|
116
|
+
const containerRef = useRef();
|
|
117
|
+
// Only observe the max width from the parent container when the parent layout is not flex nor grid.
|
|
118
|
+
// This won't work for them because the container width changes with the image.
|
|
119
|
+
// TODO: Find a way to observe the container width for flex and grid layouts.
|
|
120
|
+
const isMaxWidthContainerWidth =
|
|
121
|
+
! parentLayout ||
|
|
122
|
+
( parentLayout.type !== 'flex' && parentLayout.type !== 'grid' );
|
|
123
|
+
const [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();
|
|
124
|
+
|
|
125
|
+
const [ placeholderResizeListener, { width: placeholderWidth } ] =
|
|
126
|
+
useResizeObserver();
|
|
127
|
+
|
|
128
|
+
const isSmallContainer = placeholderWidth && placeholderWidth < 160;
|
|
129
|
+
|
|
112
130
|
const altRef = useRef();
|
|
113
131
|
useEffect( () => {
|
|
114
132
|
altRef.current = alt;
|
|
@@ -119,7 +137,7 @@ export function ImageEdit( {
|
|
|
119
137
|
captionRef.current = caption;
|
|
120
138
|
}, [ caption ] );
|
|
121
139
|
|
|
122
|
-
const { __unstableMarkNextChangeAsNotPersistent } =
|
|
140
|
+
const { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =
|
|
123
141
|
useDispatch( blockEditorStore );
|
|
124
142
|
|
|
125
143
|
useEffect( () => {
|
|
@@ -134,7 +152,12 @@ export function ImageEdit( {
|
|
|
134
152
|
}
|
|
135
153
|
}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );
|
|
136
154
|
|
|
137
|
-
const {
|
|
155
|
+
const {
|
|
156
|
+
getSettings,
|
|
157
|
+
getBlockRootClientId,
|
|
158
|
+
getBlockName,
|
|
159
|
+
canInsertBlockType,
|
|
160
|
+
} = useSelect( blockEditorStore );
|
|
138
161
|
const blockEditingMode = useBlockEditingMode();
|
|
139
162
|
|
|
140
163
|
const { createErrorNotice } = useDispatch( noticesStore );
|
|
@@ -148,7 +171,52 @@ export function ImageEdit( {
|
|
|
148
171
|
} );
|
|
149
172
|
}
|
|
150
173
|
|
|
174
|
+
function onSelectImagesList( images ) {
|
|
175
|
+
const win = containerRef.current?.ownerDocument.defaultView;
|
|
176
|
+
|
|
177
|
+
if ( images.every( ( file ) => file instanceof win.File ) ) {
|
|
178
|
+
/** @type {File[]} */
|
|
179
|
+
const files = images;
|
|
180
|
+
const rootClientId = getBlockRootClientId( clientId );
|
|
181
|
+
|
|
182
|
+
if ( files.some( ( file ) => ! isValidFileType( file ) ) ) {
|
|
183
|
+
// Copied from the same notice in the gallery block.
|
|
184
|
+
createErrorNotice(
|
|
185
|
+
__(
|
|
186
|
+
'If uploading to a gallery all files need to be image formats'
|
|
187
|
+
),
|
|
188
|
+
{ id: 'gallery-upload-invalid-file', type: 'snackbar' }
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const imageBlocks = files
|
|
193
|
+
.filter( ( file ) => isValidFileType( file ) )
|
|
194
|
+
.map( ( file ) =>
|
|
195
|
+
createBlock( 'core/image', {
|
|
196
|
+
blob: createBlobURL( file ),
|
|
197
|
+
} )
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
if ( getBlockName( rootClientId ) === 'core/gallery' ) {
|
|
201
|
+
replaceBlock( clientId, imageBlocks );
|
|
202
|
+
} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {
|
|
203
|
+
const galleryBlock = createBlock(
|
|
204
|
+
'core/gallery',
|
|
205
|
+
{},
|
|
206
|
+
imageBlocks
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
replaceBlock( clientId, galleryBlock );
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
151
214
|
function onSelectImage( media ) {
|
|
215
|
+
if ( Array.isArray( media ) ) {
|
|
216
|
+
onSelectImagesList( media );
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
|
|
152
220
|
if ( ! media || ! media.url ) {
|
|
153
221
|
setAttributes( {
|
|
154
222
|
url: undefined,
|
|
@@ -292,7 +360,10 @@ export function ImageEdit( {
|
|
|
292
360
|
Object.keys( borderProps.style ).length > 0 ),
|
|
293
361
|
} );
|
|
294
362
|
|
|
295
|
-
const blockProps = useBlockProps( {
|
|
363
|
+
const blockProps = useBlockProps( {
|
|
364
|
+
ref: containerRef,
|
|
365
|
+
className: classes,
|
|
366
|
+
} );
|
|
296
367
|
|
|
297
368
|
// Much of this description is duplicated from MediaPlaceholder.
|
|
298
369
|
const { lockUrlControls = false, lockUrlControlsMessage } = useSelect(
|
|
@@ -322,7 +393,7 @@ export function ImageEdit( {
|
|
|
322
393
|
: __( 'Connected to dynamic data' ),
|
|
323
394
|
};
|
|
324
395
|
},
|
|
325
|
-
[ isSingleSelected, metadata?.bindings?.url ]
|
|
396
|
+
[ context, isSingleSelected, metadata?.bindings?.url ]
|
|
326
397
|
);
|
|
327
398
|
const placeholder = ( content ) => {
|
|
328
399
|
return (
|
|
@@ -331,13 +402,17 @@ export function ImageEdit( {
|
|
|
331
402
|
[ borderProps.className ]:
|
|
332
403
|
!! borderProps.className && ! isSingleSelected,
|
|
333
404
|
} ) }
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
405
|
+
icon={
|
|
406
|
+
! isSmallContainer &&
|
|
407
|
+
( lockUrlControls ? pluginsIcon : icon )
|
|
408
|
+
}
|
|
409
|
+
withIllustration={ ! isSingleSelected || isSmallContainer }
|
|
410
|
+
label={ ! isSmallContainer && __( 'Image' ) }
|
|
337
411
|
instructions={
|
|
338
412
|
! lockUrlControls &&
|
|
413
|
+
! isSmallContainer &&
|
|
339
414
|
__(
|
|
340
|
-
'Upload an image file, pick one from your
|
|
415
|
+
'Upload or drag an image file here, or pick one from your library.'
|
|
341
416
|
)
|
|
342
417
|
}
|
|
343
418
|
style={ {
|
|
@@ -352,47 +427,55 @@ export function ImageEdit( {
|
|
|
352
427
|
...shadowProps.style,
|
|
353
428
|
} }
|
|
354
429
|
>
|
|
355
|
-
{ lockUrlControls
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
) }
|
|
430
|
+
{ lockUrlControls &&
|
|
431
|
+
! isSmallContainer &&
|
|
432
|
+
lockUrlControlsMessage }
|
|
433
|
+
|
|
434
|
+
{ ! lockUrlControls && ! isSmallContainer && content }
|
|
435
|
+
{ placeholderResizeListener }
|
|
362
436
|
</Placeholder>
|
|
363
437
|
);
|
|
364
438
|
};
|
|
365
439
|
|
|
366
440
|
return (
|
|
367
|
-
|
|
368
|
-
<
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
441
|
+
<>
|
|
442
|
+
<figure { ...blockProps }>
|
|
443
|
+
<Image
|
|
444
|
+
temporaryURL={ temporaryURL }
|
|
445
|
+
attributes={ attributes }
|
|
446
|
+
setAttributes={ setAttributes }
|
|
447
|
+
isSingleSelected={ isSingleSelected }
|
|
448
|
+
insertBlocksAfter={ insertBlocksAfter }
|
|
449
|
+
onReplace={ onReplace }
|
|
450
|
+
onSelectImage={ onSelectImage }
|
|
451
|
+
onSelectURL={ onSelectURL }
|
|
452
|
+
onUploadError={ onUploadError }
|
|
453
|
+
context={ context }
|
|
454
|
+
clientId={ clientId }
|
|
455
|
+
blockEditingMode={ blockEditingMode }
|
|
456
|
+
parentLayoutType={ parentLayout?.type }
|
|
457
|
+
maxContentWidth={ maxContentWidth }
|
|
458
|
+
/>
|
|
459
|
+
<MediaPlaceholder
|
|
460
|
+
icon={ <BlockIcon icon={ icon } /> }
|
|
461
|
+
onSelect={ onSelectImage }
|
|
462
|
+
onSelectURL={ onSelectURL }
|
|
463
|
+
onError={ onUploadError }
|
|
464
|
+
placeholder={ placeholder }
|
|
465
|
+
accept="image/*"
|
|
466
|
+
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
467
|
+
handleUpload={ ( files ) => files.length === 1 }
|
|
468
|
+
value={ { id, src } }
|
|
469
|
+
mediaPreview={ mediaPreview }
|
|
470
|
+
disableMediaButtons={ temporaryURL || url }
|
|
471
|
+
/>
|
|
472
|
+
</figure>
|
|
473
|
+
{
|
|
474
|
+
// The listener cannot be placed as the first element as it will break the in-between inserter.
|
|
475
|
+
// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
|
|
476
|
+
isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver
|
|
477
|
+
}
|
|
478
|
+
</>
|
|
396
479
|
);
|
|
397
480
|
}
|
|
398
481
|
|