@wordpress/block-library 9.6.1 → 9.7.1-next.1f6eadc42.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/form-input/deprecated.js +113 -1
- package/build/form-input/deprecated.js.map +1 -1
- package/build/form-input/edit.js +16 -12
- package/build/form-input/edit.js.map +1 -1
- package/build/form-input/save.js +9 -1
- package/build/form-input/save.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/form-input/deprecated.js +114 -2
- package/build-module/form-input/deprecated.js.map +1 -1
- package/build-module/form-input/edit.js +16 -12
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/form-input/save.js +9 -1
- package/build-module/form-input/save.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/form-input/style-rtl.css +7 -8
- package/build-style/form-input/style.css +7 -8
- 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 +82 -24
- package/build-style/style.css +82 -26
- 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/form-input/deprecated.js +114 -1
- package/src/form-input/edit.js +17 -11
- package/src/form-input/save.js +13 -3
- package/src/form-input/style.scss +9 -8
- 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
|
@@ -9,6 +9,7 @@ import removeAccents from 'remove-accents';
|
|
|
9
9
|
*/
|
|
10
10
|
import {
|
|
11
11
|
RichText,
|
|
12
|
+
useBlockProps,
|
|
12
13
|
__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,
|
|
13
14
|
__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,
|
|
14
15
|
} from '@wordpress/block-editor';
|
|
@@ -26,6 +27,118 @@ const getNameFromLabelV1 = ( content ) => {
|
|
|
26
27
|
);
|
|
27
28
|
};
|
|
28
29
|
|
|
30
|
+
const v2 = {
|
|
31
|
+
attributes: {
|
|
32
|
+
type: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
default: 'text',
|
|
35
|
+
},
|
|
36
|
+
name: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
},
|
|
39
|
+
label: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
default: 'Label',
|
|
42
|
+
selector: '.wp-block-form-input__label-content',
|
|
43
|
+
source: 'html',
|
|
44
|
+
__experimentalRole: 'content',
|
|
45
|
+
},
|
|
46
|
+
inlineLabel: {
|
|
47
|
+
type: 'boolean',
|
|
48
|
+
default: false,
|
|
49
|
+
},
|
|
50
|
+
required: {
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
default: false,
|
|
53
|
+
selector: '.wp-block-form-input__input',
|
|
54
|
+
source: 'attribute',
|
|
55
|
+
attribute: 'required',
|
|
56
|
+
},
|
|
57
|
+
placeholder: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
selector: '.wp-block-form-input__input',
|
|
60
|
+
source: 'attribute',
|
|
61
|
+
attribute: 'placeholder',
|
|
62
|
+
__experimentalRole: 'content',
|
|
63
|
+
},
|
|
64
|
+
value: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
default: '',
|
|
67
|
+
selector: 'input',
|
|
68
|
+
source: 'attribute',
|
|
69
|
+
attribute: 'value',
|
|
70
|
+
},
|
|
71
|
+
visibilityPermissions: {
|
|
72
|
+
type: 'string',
|
|
73
|
+
default: 'all',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
supports: {
|
|
77
|
+
anchor: true,
|
|
78
|
+
reusable: false,
|
|
79
|
+
spacing: {
|
|
80
|
+
margin: [ 'top', 'bottom' ],
|
|
81
|
+
},
|
|
82
|
+
__experimentalBorder: {
|
|
83
|
+
radius: true,
|
|
84
|
+
__experimentalSkipSerialization: true,
|
|
85
|
+
__experimentalDefaultControls: {
|
|
86
|
+
radius: true,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
save( { attributes } ) {
|
|
91
|
+
const { type, name, label, inlineLabel, required, placeholder, value } =
|
|
92
|
+
attributes;
|
|
93
|
+
|
|
94
|
+
const borderProps = getBorderClassesAndStyles( attributes );
|
|
95
|
+
const colorProps = getColorClassesAndStyles( attributes );
|
|
96
|
+
|
|
97
|
+
const inputStyle = {
|
|
98
|
+
...borderProps.style,
|
|
99
|
+
...colorProps.style,
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const inputClasses = clsx(
|
|
103
|
+
'wp-block-form-input__input',
|
|
104
|
+
colorProps.className,
|
|
105
|
+
borderProps.className
|
|
106
|
+
);
|
|
107
|
+
const TagName = type === 'textarea' ? 'textarea' : 'input';
|
|
108
|
+
|
|
109
|
+
const blockProps = useBlockProps.save();
|
|
110
|
+
|
|
111
|
+
if ( 'hidden' === type ) {
|
|
112
|
+
return <input type={ type } name={ name } value={ value } />;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return (
|
|
116
|
+
<div { ...blockProps }>
|
|
117
|
+
{ /* eslint-disable jsx-a11y/label-has-associated-control */ }
|
|
118
|
+
<label
|
|
119
|
+
className={ clsx( 'wp-block-form-input__label', {
|
|
120
|
+
'is-label-inline': inlineLabel,
|
|
121
|
+
} ) }
|
|
122
|
+
>
|
|
123
|
+
<span className="wp-block-form-input__label-content">
|
|
124
|
+
<RichText.Content value={ label } />
|
|
125
|
+
</span>
|
|
126
|
+
<TagName
|
|
127
|
+
className={ inputClasses }
|
|
128
|
+
type={ 'textarea' === type ? undefined : type }
|
|
129
|
+
name={ name || getNameFromLabelV1( label ) }
|
|
130
|
+
required={ required }
|
|
131
|
+
aria-required={ required }
|
|
132
|
+
placeholder={ placeholder || undefined }
|
|
133
|
+
style={ inputStyle }
|
|
134
|
+
/>
|
|
135
|
+
</label>
|
|
136
|
+
{ /* eslint-enable jsx-a11y/label-has-associated-control */ }
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
|
|
29
142
|
// Version without wrapper div in saved markup
|
|
30
143
|
// See: https://github.com/WordPress/gutenberg/pull/56507
|
|
31
144
|
const v1 = {
|
|
@@ -137,6 +250,6 @@ const v1 = {
|
|
|
137
250
|
},
|
|
138
251
|
};
|
|
139
252
|
|
|
140
|
-
const deprecated = [ v1 ];
|
|
253
|
+
const deprecated = [ v2, v1 ];
|
|
141
254
|
|
|
142
255
|
export default deprecated;
|
package/src/form-input/edit.js
CHANGED
|
@@ -31,6 +31,9 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
|
|
|
31
31
|
ref.current.focus();
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
// Note: radio inputs aren't implemented yet.
|
|
35
|
+
const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
|
|
36
|
+
|
|
34
37
|
const controls = (
|
|
35
38
|
<>
|
|
36
39
|
{ 'hidden' !== type && (
|
|
@@ -81,6 +84,18 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
|
|
|
81
84
|
</>
|
|
82
85
|
);
|
|
83
86
|
|
|
87
|
+
const content = (
|
|
88
|
+
<RichText
|
|
89
|
+
tagName="span"
|
|
90
|
+
className="wp-block-form-input__label-content"
|
|
91
|
+
value={ label }
|
|
92
|
+
onChange={ ( newLabel ) => setAttributes( { label: newLabel } ) }
|
|
93
|
+
aria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }
|
|
94
|
+
data-empty={ ! label }
|
|
95
|
+
placeholder={ __( 'Type the label for this input' ) }
|
|
96
|
+
/>
|
|
97
|
+
);
|
|
98
|
+
|
|
84
99
|
if ( 'hidden' === type ) {
|
|
85
100
|
return (
|
|
86
101
|
<>
|
|
@@ -111,17 +126,7 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
|
|
|
111
126
|
'is-label-inline': inlineLabel || 'checkbox' === type,
|
|
112
127
|
} ) }
|
|
113
128
|
>
|
|
114
|
-
|
|
115
|
-
tagName="span"
|
|
116
|
-
className="wp-block-form-input__label-content"
|
|
117
|
-
value={ label }
|
|
118
|
-
onChange={ ( newLabel ) =>
|
|
119
|
-
setAttributes( { label: newLabel } )
|
|
120
|
-
}
|
|
121
|
-
aria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }
|
|
122
|
-
data-empty={ label ? false : true }
|
|
123
|
-
placeholder={ __( 'Type the label for this input' ) }
|
|
124
|
-
/>
|
|
129
|
+
{ ! isCheckboxOrRadio && content }
|
|
125
130
|
<TagName
|
|
126
131
|
type={ 'textarea' === type ? undefined : type }
|
|
127
132
|
className={ clsx(
|
|
@@ -147,6 +152,7 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
|
|
|
147
152
|
...colorProps.style,
|
|
148
153
|
} }
|
|
149
154
|
/>
|
|
155
|
+
{ isCheckboxOrRadio && content }
|
|
150
156
|
</span>
|
|
151
157
|
</div>
|
|
152
158
|
);
|
package/src/form-input/save.js
CHANGED
|
@@ -55,6 +55,9 @@ export default function save( { attributes } ) {
|
|
|
55
55
|
|
|
56
56
|
const blockProps = useBlockProps.save();
|
|
57
57
|
|
|
58
|
+
// Note: radio inputs aren't implemented yet.
|
|
59
|
+
const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
|
|
60
|
+
|
|
58
61
|
if ( 'hidden' === type ) {
|
|
59
62
|
return <input type={ type } name={ name } value={ value } />;
|
|
60
63
|
}
|
|
@@ -67,9 +70,11 @@ export default function save( { attributes } ) {
|
|
|
67
70
|
'is-label-inline': inlineLabel,
|
|
68
71
|
} ) }
|
|
69
72
|
>
|
|
70
|
-
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
+
{ ! isCheckboxOrRadio && (
|
|
74
|
+
<span className="wp-block-form-input__label-content">
|
|
75
|
+
<RichText.Content value={ label } />
|
|
76
|
+
</span>
|
|
77
|
+
) }
|
|
73
78
|
<TagName
|
|
74
79
|
className={ inputClasses }
|
|
75
80
|
type={ 'textarea' === type ? undefined : type }
|
|
@@ -79,6 +84,11 @@ export default function save( { attributes } ) {
|
|
|
79
84
|
placeholder={ placeholder || undefined }
|
|
80
85
|
style={ inputStyle }
|
|
81
86
|
/>
|
|
87
|
+
{ isCheckboxOrRadio && (
|
|
88
|
+
<span className="wp-block-form-input__label-content">
|
|
89
|
+
<RichText.Content value={ label } />
|
|
90
|
+
</span>
|
|
91
|
+
) }
|
|
82
92
|
</label>
|
|
83
93
|
{ /* eslint-enable jsx-a11y/label-has-associated-control */ }
|
|
84
94
|
</div>
|
|
@@ -15,16 +15,17 @@
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
/*
|
|
19
|
-
Small tweak to left-align the checkbox.
|
|
20
|
-
Even though `:has` is not currently supported in Firefox, this is a small tweak
|
|
21
|
-
and does not affect the functionality of the block or the user's experience.
|
|
22
|
-
There will be a minor inconsistency between browsers. However, it's more important to provide
|
|
23
|
-
a better experience for 80+% of users, until Firefox catches up and supports `:has`.
|
|
24
|
-
*/
|
|
25
18
|
&:has(input[type="checkbox"]) {
|
|
19
|
+
flex-direction: row;
|
|
26
20
|
width: fit-content;
|
|
27
|
-
|
|
21
|
+
|
|
22
|
+
.wp-block-form-input__label-content {
|
|
23
|
+
margin: 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&:has(.wp-block-form-input__label-content + input[type="checkbox"]) {
|
|
28
|
+
/* stylelint-disable-next-line declaration-property-value-allowed-list -- This style is required for old markup. */
|
|
28
29
|
flex-direction: row-reverse;
|
|
29
30
|
}
|
|
30
31
|
}
|
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
|
|
package/src/image/editor.scss
CHANGED
|
@@ -1,47 +1,8 @@
|
|
|
1
1
|
// Provide special styling for the placeholder.
|
|
2
2
|
// @todo this particular minimal style of placeholder could be componentized further.
|
|
3
3
|
.wp-block-image.wp-block-image {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
&.is-selected .block-editor-media-placeholder {
|
|
7
|
-
// Block UI appearance.
|
|
8
|
-
color: $gray-900;
|
|
9
|
-
background-color: $white;
|
|
10
|
-
box-shadow: inset 0 0 0 $border-width $gray-900;
|
|
11
|
-
border: none;
|
|
12
|
-
|
|
13
|
-
// Disable any duotone filter applied in the selected state.
|
|
14
|
-
filter: none !important;
|
|
15
|
-
|
|
16
|
-
// @todo this should eventually be overridden by a custom border-radius set in the inspector.
|
|
17
|
-
border-radius: $radius-block-ui;
|
|
18
|
-
|
|
19
|
-
> svg {
|
|
20
|
-
opacity: 0;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.components-placeholder__illustration {
|
|
24
|
-
display: none;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
&::before {
|
|
28
|
-
opacity: 0;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
.block-bindings-media-placeholder-message {
|
|
32
|
-
opacity: 0;
|
|
33
|
-
}
|
|
34
|
-
&.is-selected .block-bindings-media-placeholder-message {
|
|
35
|
-
opacity: 1;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Remove the transition while we still have a legacy placeholder style.
|
|
39
|
-
// Otherwise the content jumps between the 1px placeholder border, and any inherited custom
|
|
40
|
-
// parent border that may get applied when you deselect.
|
|
41
|
-
.components-placeholder__label,
|
|
42
|
-
.components-placeholder__instructions,
|
|
43
|
-
.components-button {
|
|
44
|
-
transition: none;
|
|
4
|
+
.block-editor-media-placeholder.is-small {
|
|
5
|
+
min-height: 60px;
|
|
45
6
|
}
|
|
46
7
|
}
|
|
47
8
|
|
|
@@ -152,6 +113,11 @@ figure.wp-block-image:not(.wp-block) {
|
|
|
152
113
|
text-align: center;
|
|
153
114
|
}
|
|
154
115
|
|
|
116
|
+
// Relatively position the alignment container to support the content resizer.
|
|
117
|
+
.wp-block[data-align]:has(> .wp-block-image) {
|
|
118
|
+
position: relative;
|
|
119
|
+
}
|
|
120
|
+
|
|
155
121
|
.wp-block-image__crop-area {
|
|
156
122
|
position: relative;
|
|
157
123
|
max-width: 100%;
|