@wordpress/block-library 8.27.1 → 8.28.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/index.js +5 -4
- package/build/archives/index.js.map +1 -1
- package/build/archives/init.js +1 -2
- package/build/archives/init.js.map +1 -1
- package/build/audio/deprecated.js +1 -2
- package/build/audio/deprecated.js.map +1 -1
- package/build/audio/edit.js +1 -2
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js +1 -2
- package/build/audio/edit.native.js.map +1 -1
- package/build/audio/index.js +5 -4
- package/build/audio/index.js.map +1 -1
- package/build/audio/init.js +1 -2
- package/build/audio/init.js.map +1 -1
- package/build/audio/transforms.js +1 -2
- package/build/audio/transforms.js.map +1 -1
- package/build/audio/transforms.native.js +1 -2
- package/build/audio/transforms.native.js.map +1 -1
- package/build/avatar/index.js +5 -4
- package/build/avatar/index.js.map +1 -1
- package/build/avatar/init.js +1 -2
- package/build/avatar/init.js.map +1 -1
- package/build/avatar/user-control.js +1 -2
- package/build/avatar/user-control.js.map +1 -1
- package/build/block/deprecated.js +65 -0
- package/build/block/deprecated.js.map +1 -0
- package/build/block/edit-title.native.js +1 -2
- package/build/block/edit-title.native.js.map +1 -1
- package/build/block/edit.js +93 -103
- package/build/block/edit.js.map +1 -1
- package/build/block/index.js +26 -8
- package/build/block/index.js.map +1 -1
- package/build/block/init.js +1 -2
- package/build/block/init.js.map +1 -1
- package/build/button/color-background.native.js +1 -2
- package/build/button/color-background.native.js.map +1 -1
- package/build/button/constants.js +3 -6
- package/build/button/constants.js.map +1 -1
- package/build/button/deprecated.js +1 -2
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +3 -4
- package/build/button/edit.js.map +1 -1
- package/build/button/edit.native.js +1 -3
- package/build/button/edit.native.js.map +1 -1
- package/build/button/index.js +9 -6
- package/build/button/index.js.map +1 -1
- package/build/button/init.js +1 -2
- package/build/button/init.js.map +1 -1
- package/build/buttons/deprecated.js +1 -2
- package/build/buttons/deprecated.js.map +1 -1
- package/build/buttons/edit.js +5 -13
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js +2 -5
- package/build/buttons/edit.native.js.map +1 -1
- package/build/buttons/index.js +6 -4
- package/build/buttons/index.js.map +1 -1
- package/build/buttons/init.js +1 -2
- package/build/buttons/init.js.map +1 -1
- package/build/buttons/transforms.js +1 -2
- package/build/buttons/transforms.js.map +1 -1
- package/build/buttons/transforms.native.js +1 -2
- package/build/buttons/transforms.native.js.map +1 -1
- package/build/calendar/index.js +5 -4
- package/build/calendar/index.js.map +1 -1
- package/build/calendar/init.js +1 -2
- package/build/calendar/init.js.map +1 -1
- package/build/calendar/transforms.js +1 -2
- package/build/calendar/transforms.js.map +1 -1
- package/build/categories/index.js +5 -4
- package/build/categories/index.js.map +1 -1
- package/build/categories/init.js +1 -2
- package/build/categories/init.js.map +1 -1
- package/build/code/edit.native.js +1 -2
- package/build/code/edit.native.js.map +1 -1
- package/build/code/index.js +5 -5
- package/build/code/index.js.map +1 -1
- package/build/code/init.js +1 -2
- package/build/code/init.js.map +1 -1
- package/build/code/transforms.js +1 -2
- package/build/code/transforms.js.map +1 -1
- package/build/code/transforms.native.js +1 -2
- package/build/code/transforms.native.js.map +1 -1
- package/build/column/column-preview.native.js +1 -2
- package/build/column/column-preview.native.js.map +1 -1
- package/build/column/deprecated.js +1 -2
- package/build/column/deprecated.js.map +1 -1
- package/build/column/edit.js +1 -2
- package/build/column/edit.js.map +1 -1
- package/build/column/edit.native.js +1 -2
- package/build/column/edit.native.js.map +1 -1
- package/build/column/index.js +7 -5
- package/build/column/index.js.map +1 -1
- package/build/column/init.js +1 -2
- package/build/column/init.js.map +1 -1
- package/build/columns/deprecated.js +1 -2
- package/build/columns/deprecated.js.map +1 -1
- package/build/columns/edit.js +53 -76
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -14
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +8 -5
- package/build/columns/index.js.map +1 -1
- package/build/columns/init.js +1 -2
- package/build/columns/init.js.map +1 -1
- package/build/columns/transforms.js +1 -2
- package/build/columns/transforms.js.map +1 -1
- package/build/columns/transforms.native.js +1 -2
- package/build/columns/transforms.native.js.map +1 -1
- package/build/columns/variations.js +1 -2
- package/build/columns/variations.js.map +1 -1
- package/build/comment-author-avatar/index.js +5 -4
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comment-author-avatar/init.js +1 -2
- package/build/comment-author-avatar/init.js.map +1 -1
- package/build/comment-author-name/deprecated.js +1 -2
- package/build/comment-author-name/deprecated.js.map +1 -1
- package/build/comment-author-name/index.js +5 -4
- package/build/comment-author-name/index.js.map +1 -1
- package/build/comment-author-name/init.js +1 -2
- package/build/comment-author-name/init.js.map +1 -1
- package/build/comment-content/index.js +2 -4
- package/build/comment-content/index.js.map +1 -1
- package/build/comment-content/init.js +1 -2
- package/build/comment-content/init.js.map +1 -1
- package/build/comment-date/deprecated.js +1 -2
- package/build/comment-date/deprecated.js.map +1 -1
- package/build/comment-date/index.js +5 -4
- package/build/comment-date/index.js.map +1 -1
- package/build/comment-date/init.js +1 -2
- package/build/comment-date/init.js.map +1 -1
- package/build/comment-edit-link/index.js +5 -4
- package/build/comment-edit-link/index.js.map +1 -1
- package/build/comment-edit-link/init.js +1 -2
- package/build/comment-edit-link/init.js.map +1 -1
- package/build/comment-reply-link/edit.js +1 -2
- package/build/comment-reply-link/edit.js.map +1 -1
- package/build/comment-reply-link/index.js +2 -4
- package/build/comment-reply-link/index.js.map +1 -1
- package/build/comment-reply-link/init.js +1 -2
- package/build/comment-reply-link/init.js.map +1 -1
- package/build/comment-template/index.js +5 -4
- package/build/comment-template/index.js.map +1 -1
- package/build/comment-template/init.js +1 -2
- package/build/comment-template/init.js.map +1 -1
- package/build/comments/deprecated.js +1 -2
- package/build/comments/deprecated.js.map +1 -1
- package/build/comments/edit/template.js +1 -2
- package/build/comments/edit/template.js.map +1 -1
- package/build/comments/index.js +2 -4
- package/build/comments/index.js.map +1 -1
- package/build/comments/init.js +1 -2
- package/build/comments/init.js.map +1 -1
- package/build/comments-pagination/edit.js +1 -3
- package/build/comments-pagination/edit.js.map +1 -1
- package/build/comments-pagination/index.js +6 -4
- package/build/comments-pagination/index.js.map +1 -1
- package/build/comments-pagination/init.js +1 -2
- package/build/comments-pagination/init.js.map +1 -1
- package/build/comments-pagination-next/index.js +5 -4
- package/build/comments-pagination-next/index.js.map +1 -1
- package/build/comments-pagination-next/init.js +1 -2
- package/build/comments-pagination-next/init.js.map +1 -1
- package/build/comments-pagination-numbers/index.js +5 -4
- package/build/comments-pagination-numbers/index.js.map +1 -1
- package/build/comments-pagination-numbers/init.js +1 -2
- package/build/comments-pagination-numbers/init.js.map +1 -1
- package/build/comments-pagination-previous/index.js +5 -4
- package/build/comments-pagination-previous/index.js.map +1 -1
- package/build/comments-pagination-previous/init.js +1 -2
- package/build/comments-pagination-previous/init.js.map +1 -1
- package/build/comments-title/deprecated.js +4 -2
- package/build/comments-title/deprecated.js.map +1 -1
- package/build/comments-title/index.js +5 -4
- package/build/comments-title/index.js.map +1 -1
- package/build/comments-title/init.js +1 -2
- package/build/comments-title/init.js.map +1 -1
- package/build/cover/controls.native.js +1 -2
- package/build/cover/controls.native.js.map +1 -1
- package/build/cover/deprecated.js +1 -2
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/color-utils.js +3 -6
- package/build/cover/edit/color-utils.js.map +1 -1
- package/build/cover/edit/index.js +1 -2
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +3 -3
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit.native.js +1 -2
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/focal-point-settings-button.native.js +1 -2
- package/build/cover/focal-point-settings-button.native.js.map +1 -1
- package/build/cover/index.js +5 -4
- package/build/cover/index.js.map +1 -1
- package/build/cover/init.js +1 -2
- package/build/cover/init.js.map +1 -1
- package/build/cover/overlay-color-settings.native.js +1 -2
- package/build/cover/overlay-color-settings.native.js.map +1 -1
- package/build/cover/shared.js +7 -14
- package/build/cover/shared.js.map +1 -1
- package/build/cover/transforms.js +1 -2
- package/build/cover/transforms.js.map +1 -1
- package/build/cover/transforms.native.js +1 -2
- package/build/cover/transforms.native.js.map +1 -1
- package/build/cover/variations.js +1 -2
- package/build/cover/variations.js.map +1 -1
- package/build/details/edit.js +1 -2
- package/build/details/edit.js.map +1 -1
- package/build/details/index.js +5 -4
- package/build/details/index.js.map +1 -1
- package/build/details/init.js +1 -2
- package/build/details/init.js.map +1 -1
- package/build/embed/constants.js +2 -4
- package/build/embed/constants.js.map +1 -1
- package/build/embed/deprecated.js +4 -2
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/edit.js +1 -2
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +1 -2
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/embed-controls.js +1 -2
- package/build/embed/embed-controls.js.map +1 -1
- package/build/embed/embed-controls.native.js +1 -2
- package/build/embed/embed-controls.native.js.map +1 -1
- package/build/embed/embed-link-settings.native.js +1 -2
- package/build/embed/embed-link-settings.native.js.map +1 -1
- package/build/embed/embed-loading.js +1 -2
- package/build/embed/embed-loading.js.map +1 -1
- package/build/embed/embed-loading.native.js +1 -2
- package/build/embed/embed-loading.native.js.map +1 -1
- package/build/embed/embed-no-preview.native.js +1 -2
- package/build/embed/embed-no-preview.native.js.map +1 -1
- package/build/embed/embed-placeholder.js +2 -3
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/embed-placeholder.native.js +1 -2
- package/build/embed/embed-placeholder.native.js.map +1 -1
- package/build/embed/embed-preview.js +1 -2
- package/build/embed/embed-preview.js.map +1 -1
- package/build/embed/embed-preview.native.js +1 -2
- package/build/embed/embed-preview.native.js.map +1 -1
- package/build/embed/icons.js +20 -40
- package/build/embed/icons.js.map +1 -1
- package/build/embed/index.js +5 -4
- package/build/embed/index.js.map +1 -1
- package/build/embed/init.js +1 -2
- package/build/embed/init.js.map +1 -1
- package/build/embed/transforms.js +4 -2
- package/build/embed/transforms.js.map +1 -1
- package/build/embed/transforms.native.js +1 -2
- package/build/embed/transforms.native.js.map +1 -1
- package/build/embed/util.js +4 -2
- package/build/embed/util.js.map +1 -1
- package/build/embed/variations.js +1 -2
- package/build/embed/variations.js.map +1 -1
- package/build/embed/wp-embed-preview.native.js +1 -2
- package/build/embed/wp-embed-preview.native.js.map +1 -1
- package/build/file/deprecated.js +1 -2
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +3 -6
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js +1 -2
- package/build/file/edit.native.js.map +1 -1
- package/build/file/index.js +2 -4
- package/build/file/index.js.map +1 -1
- package/build/file/init.js +1 -2
- package/build/file/init.js.map +1 -1
- package/build/file/transforms.js +1 -2
- package/build/file/transforms.js.map +1 -1
- package/build/file/transforms.native.js +1 -2
- package/build/file/transforms.native.js.map +1 -1
- package/build/file/view.js +2 -0
- package/build/file/view.js.map +1 -1
- package/build/footnotes/format.js +6 -4
- package/build/footnotes/format.js.map +1 -1
- package/build/footnotes/index.js +5 -4
- package/build/footnotes/index.js.map +1 -1
- package/build/footnotes/init.js +1 -2
- package/build/footnotes/init.js.map +1 -1
- package/build/form/edit.js +1 -4
- package/build/form/edit.js.map +1 -1
- package/build/form/index.js +3 -4
- package/build/form/index.js.map +1 -1
- package/build/form/init.js +1 -2
- package/build/form/init.js.map +1 -1
- package/build/form/save.js +1 -2
- package/build/form/save.js.map +1 -1
- package/build/form/utils.js +2 -4
- package/build/form/utils.js.map +1 -1
- package/build/form/variations.js +1 -2
- package/build/form/variations.js.map +1 -1
- package/build/form/view.js +2 -0
- package/build/form/view.js.map +1 -1
- package/build/form-input/deprecated.js +1 -3
- package/build/form-input/deprecated.js.map +1 -1
- package/build/form-input/edit.js +1 -2
- package/build/form-input/edit.js.map +1 -1
- package/build/form-input/index.js +2 -4
- package/build/form-input/index.js.map +1 -1
- package/build/form-input/init.js +1 -2
- package/build/form-input/init.js.map +1 -1
- package/build/form-input/variations.js +1 -2
- package/build/form-input/variations.js.map +1 -1
- package/build/form-submission-notification/edit.js +1 -2
- package/build/form-submission-notification/edit.js.map +1 -1
- package/build/form-submission-notification/index.js +2 -4
- package/build/form-submission-notification/index.js.map +1 -1
- package/build/form-submission-notification/init.js +1 -2
- package/build/form-submission-notification/init.js.map +1 -1
- package/build/form-submission-notification/variations.js +1 -2
- package/build/form-submission-notification/variations.js.map +1 -1
- package/build/form-submit-button/edit.js +1 -3
- package/build/form-submit-button/edit.js.map +1 -1
- package/build/form-submit-button/index.js +3 -4
- package/build/form-submit-button/index.js.map +1 -1
- package/build/form-submit-button/init.js +1 -2
- package/build/form-submit-button/init.js.map +1 -1
- package/build/form-submit-button/save.js +1 -2
- package/build/form-submit-button/save.js.map +1 -1
- package/build/freeform/convert-to-blocks-button.js +1 -2
- package/build/freeform/convert-to-blocks-button.js.map +1 -1
- package/build/freeform/edit.native.js +1 -2
- package/build/freeform/edit.native.js.map +1 -1
- package/build/freeform/index.js +2 -4
- package/build/freeform/index.js.map +1 -1
- package/build/freeform/init.js +1 -2
- package/build/freeform/init.js.map +1 -1
- package/build/gallery/constants.js +5 -10
- package/build/gallery/constants.js.map +1 -1
- package/build/gallery/deprecated.js +1 -2
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/edit-wrapper.js +1 -2
- package/build/gallery/edit-wrapper.js.map +1 -1
- package/build/gallery/edit.js +20 -27
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js +1 -3
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/index.js +6 -4
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/init.js +1 -2
- package/build/gallery/init.js.map +1 -1
- package/build/gallery/shared-icon.js +1 -2
- package/build/gallery/shared-icon.js.map +1 -1
- package/build/gallery/transforms.js +1 -2
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/transforms.native.js +1 -2
- package/build/gallery/transforms.native.js.map +1 -1
- package/build/gallery/v1/constants.js +3 -6
- package/build/gallery/v1/constants.js.map +1 -1
- package/build/gallery/v1/edit.js +1 -2
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-button.native.js +1 -2
- package/build/gallery/v1/gallery-button.native.js.map +1 -1
- package/build/gallery/v1/gallery-image.js +1 -3
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js +1 -2
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/gallery/v1/gallery.js +1 -2
- package/build/gallery/v1/gallery.js.map +1 -1
- package/build/gallery/v1/gallery.native.js +1 -2
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/gallery/v1/tiles.native.js +1 -2
- package/build/gallery/v1/tiles.native.js.map +1 -1
- package/build/group/deprecated.js +1 -2
- package/build/group/deprecated.js.map +1 -1
- package/build/group/edit.js +3 -4
- package/build/group/edit.js.map +1 -1
- package/build/group/edit.native.js +1 -2
- package/build/group/edit.native.js.map +1 -1
- package/build/group/index.js +5 -5
- package/build/group/index.js.map +1 -1
- package/build/group/init.js +1 -2
- package/build/group/init.js.map +1 -1
- package/build/group/placeholder.js +1 -2
- package/build/group/placeholder.js.map +1 -1
- package/build/group/transforms.js +1 -2
- package/build/group/transforms.js.map +1 -1
- package/build/group/variations.js +1 -2
- package/build/group/variations.js.map +1 -1
- package/build/heading/deprecated.js +1 -2
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/edit.js +1 -2
- package/build/heading/edit.js.map +1 -1
- package/build/heading/edit.native.js +1 -2
- package/build/heading/edit.native.js.map +1 -1
- package/build/heading/index.js +6 -5
- package/build/heading/index.js.map +1 -1
- package/build/heading/init.js +1 -2
- package/build/heading/init.js.map +1 -1
- package/build/heading/transforms.js +1 -2
- package/build/heading/transforms.js.map +1 -1
- package/build/heading/transforms.native.js +1 -2
- package/build/heading/transforms.native.js.map +1 -1
- package/build/home-link/index.js +5 -4
- package/build/home-link/index.js.map +1 -1
- package/build/home-link/init.js +1 -2
- package/build/home-link/init.js.map +1 -1
- package/build/html/index.js +6 -5
- package/build/html/index.js.map +1 -1
- package/build/html/init.js +1 -2
- package/build/html/init.js.map +1 -1
- package/build/html/transforms.js +1 -2
- package/build/html/transforms.js.map +1 -1
- package/build/html/transforms.native.js +1 -2
- package/build/html/transforms.native.js.map +1 -1
- package/build/image/constants.js +8 -16
- package/build/image/constants.js.map +1 -1
- package/build/image/deprecated.js +1 -2
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +36 -23
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +1 -2
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +69 -71
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +6 -4
- package/build/image/index.js.map +1 -1
- package/build/image/init.js +1 -2
- package/build/image/init.js.map +1 -1
- package/build/image/save.js +2 -0
- package/build/image/save.js.map +1 -1
- package/build/image/transforms.js +1 -2
- package/build/image/transforms.js.map +1 -1
- package/build/image/transforms.native.js +1 -2
- package/build/image/transforms.native.js.map +1 -1
- package/build/image/view.js +266 -369
- package/build/image/view.js.map +1 -1
- package/build/index.js +3 -4
- package/build/index.js.map +1 -1
- package/build/index.native.js +4 -6
- package/build/index.native.js.map +1 -1
- package/build/latest-comments/index.js +5 -4
- package/build/latest-comments/index.js.map +1 -1
- package/build/latest-comments/init.js +1 -2
- package/build/latest-comments/init.js.map +1 -1
- package/build/latest-posts/constants.js +3 -6
- package/build/latest-posts/constants.js.map +1 -1
- package/build/latest-posts/deprecated.js +4 -2
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/edit.native.js +1 -2
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/latest-posts/index.js +5 -4
- package/build/latest-posts/index.js.map +1 -1
- package/build/latest-posts/init.js +1 -2
- package/build/latest-posts/init.js.map +1 -1
- package/build/list/deprecated.js +1 -2
- package/build/list/deprecated.js.map +1 -1
- package/build/list/edit.js +0 -1
- package/build/list/edit.js.map +1 -1
- package/build/list/index.js +7 -5
- package/build/list/index.js.map +1 -1
- package/build/list/init.js +1 -2
- package/build/list/init.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -2
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list/tag-name.js +1 -2
- package/build/list/tag-name.js.map +1 -1
- package/build/list/tag-name.native.js +1 -2
- package/build/list/tag-name.native.js.map +1 -1
- package/build/list/transforms.js +1 -2
- package/build/list/transforms.js.map +1 -1
- package/build/list/transforms.native.js +1 -2
- package/build/list/transforms.native.js.map +1 -1
- package/build/list-item/edit.js +0 -1
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/edit.native.js +0 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/index.js +6 -4
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/init.js +1 -2
- package/build/list-item/init.js.map +1 -1
- package/build/list-item/transforms.js +1 -2
- package/build/list-item/transforms.js.map +1 -1
- package/build/loginout/index.js +5 -4
- package/build/loginout/index.js.map +1 -1
- package/build/loginout/init.js +1 -2
- package/build/loginout/init.js.map +1 -1
- package/build/media-text/constants.js +5 -10
- package/build/media-text/constants.js.map +1 -1
- package/build/media-text/deprecated.js +1 -2
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +13 -12
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +2 -3
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/icon-retry.native.js +1 -2
- package/build/media-text/icon-retry.native.js.map +1 -1
- package/build/media-text/index.js +5 -4
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/init.js +1 -2
- package/build/media-text/init.js.map +1 -1
- package/build/media-text/media-container.js +1 -2
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -2
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/transforms.js +1 -2
- package/build/media-text/transforms.js.map +1 -1
- package/build/media-text/transforms.native.js +1 -2
- package/build/media-text/transforms.native.js.map +1 -1
- package/build/missing/edit.js +1 -2
- package/build/missing/edit.js.map +1 -1
- package/build/missing/edit.native.js +1 -2
- package/build/missing/edit.native.js.map +1 -1
- package/build/missing/index.js +6 -5
- package/build/missing/index.js.map +1 -1
- package/build/missing/init.js +1 -2
- package/build/missing/init.js.map +1 -1
- package/build/more/edit.native.js +1 -2
- package/build/more/edit.native.js.map +1 -1
- package/build/more/index.js +6 -5
- package/build/more/index.js.map +1 -1
- package/build/more/init.js +1 -2
- package/build/more/init.js.map +1 -1
- package/build/more/transforms.js +1 -2
- package/build/more/transforms.js.map +1 -1
- package/build/more/transforms.native.js +1 -2
- package/build/more/transforms.native.js.map +1 -1
- package/build/navigation/constants.js +6 -13
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/deprecated.js +1 -2
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js +1 -2
- package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build/navigation/edit/index.js +3 -5
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +1 -5
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/manage-menus-button.js +1 -2
- package/build/navigation/edit/manage-menus-button.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +1 -2
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +1 -2
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/placeholder-preview.js +1 -2
- package/build/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +1 -5
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +5 -10
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +4 -8
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +1 -2
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation/index.js +3 -4
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/init.js +1 -2
- package/build/navigation/init.js.map +1 -1
- package/build/navigation/view.js +2 -0
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +12 -6
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/index.js +7 -5
- package/build/navigation-link/index.js.map +1 -1
- package/build/navigation-link/init.js +1 -2
- package/build/navigation-link/init.js.map +1 -1
- package/build/navigation-link/link-ui.js +114 -47
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-link/transforms.js +1 -2
- package/build/navigation-link/transforms.js.map +1 -1
- package/build/navigation-submenu/index.js +21 -8
- package/build/navigation-submenu/index.js.map +1 -1
- package/build/navigation-submenu/init.js +1 -2
- package/build/navigation-submenu/init.js.map +1 -1
- package/build/navigation-submenu/transforms.js +1 -2
- package/build/navigation-submenu/transforms.js.map +1 -1
- package/build/nextpage/edit.native.js +1 -2
- package/build/nextpage/edit.native.js.map +1 -1
- package/build/nextpage/index.js +6 -5
- package/build/nextpage/index.js.map +1 -1
- package/build/nextpage/init.js +1 -2
- package/build/nextpage/init.js.map +1 -1
- package/build/nextpage/transforms.js +1 -2
- package/build/nextpage/transforms.js.map +1 -1
- package/build/nextpage/transforms.native.js +1 -2
- package/build/nextpage/transforms.native.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +1 -2
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +0 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +6 -4
- package/build/page-list/index.js.map +1 -1
- package/build/page-list/init.js +1 -2
- package/build/page-list/init.js.map +1 -1
- package/build/page-list-item/index.js +6 -5
- package/build/page-list-item/index.js.map +1 -1
- package/build/page-list-item/init.js +1 -2
- package/build/page-list-item/init.js.map +1 -1
- package/build/paragraph/deprecated.js +1 -2
- package/build/paragraph/deprecated.js.map +1 -1
- package/build/paragraph/edit.js +4 -5
- package/build/paragraph/edit.js.map +1 -1
- package/build/paragraph/edit.native.js +1 -2
- package/build/paragraph/edit.native.js.map +1 -1
- package/build/paragraph/index.js +6 -5
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/init.js +1 -2
- package/build/paragraph/init.js.map +1 -1
- package/build/paragraph/transforms.js +5 -3
- package/build/paragraph/transforms.js.map +1 -1
- package/build/paragraph/transforms.native.js +1 -2
- package/build/paragraph/transforms.native.js.map +1 -1
- package/build/pattern/edit.js +1 -2
- package/build/pattern/edit.js.map +1 -1
- package/build/pattern/index.js +6 -5
- package/build/pattern/index.js.map +1 -1
- package/build/pattern/init.js +1 -2
- package/build/pattern/init.js.map +1 -1
- package/build/post-author/edit.js +1 -2
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author/index.js +5 -4
- package/build/post-author/index.js.map +1 -1
- package/build/post-author/init.js +1 -2
- package/build/post-author/init.js.map +1 -1
- package/build/post-author-biography/edit.js +1 -2
- package/build/post-author-biography/edit.js.map +1 -1
- package/build/post-author-biography/index.js +5 -4
- package/build/post-author-biography/index.js.map +1 -1
- package/build/post-author-biography/init.js +1 -2
- package/build/post-author-biography/init.js.map +1 -1
- package/build/post-author-name/edit.js +1 -2
- package/build/post-author-name/edit.js.map +1 -1
- package/build/post-author-name/index.js +5 -4
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-author-name/init.js +1 -2
- package/build/post-author-name/init.js.map +1 -1
- package/build/post-author-name/transforms.js +1 -2
- package/build/post-author-name/transforms.js.map +1 -1
- package/build/post-comment/edit.js +1 -3
- package/build/post-comment/edit.js.map +1 -1
- package/build/post-comment/index.js +7 -5
- package/build/post-comment/index.js.map +1 -1
- package/build/post-comment/init.js +1 -2
- package/build/post-comment/init.js.map +1 -1
- package/build/post-comments-count/index.js +5 -4
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-count/init.js +1 -2
- package/build/post-comments-count/init.js.map +1 -1
- package/build/post-comments-form/form.js +1 -2
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-comments-form/index.js +2 -4
- package/build/post-comments-form/index.js.map +1 -1
- package/build/post-comments-form/init.js +1 -2
- package/build/post-comments-form/init.js.map +1 -1
- package/build/post-comments-link/edit.js +1 -2
- package/build/post-comments-link/edit.js.map +1 -1
- package/build/post-comments-link/index.js +5 -4
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-comments-link/init.js +1 -2
- package/build/post-comments-link/init.js.map +1 -1
- package/build/post-content/index.js +2 -4
- package/build/post-content/index.js.map +1 -1
- package/build/post-content/init.js +1 -2
- package/build/post-content/init.js.map +1 -1
- package/build/post-date/deprecated.js +1 -2
- package/build/post-date/deprecated.js.map +1 -1
- package/build/post-date/index.js +5 -4
- package/build/post-date/index.js.map +1 -1
- package/build/post-date/init.js +1 -2
- package/build/post-date/init.js.map +1 -1
- package/build/post-date/variations.js +1 -2
- package/build/post-date/variations.js.map +1 -1
- package/build/post-excerpt/index.js +5 -4
- package/build/post-excerpt/index.js.map +1 -1
- package/build/post-excerpt/init.js +1 -2
- package/build/post-excerpt/init.js.map +1 -1
- package/build/post-excerpt/transforms.js +1 -2
- package/build/post-excerpt/transforms.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +1 -2
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/index.js +5 -4
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-featured-image/init.js +1 -2
- package/build/post-featured-image/init.js.map +1 -1
- package/build/post-featured-image/overlay.js +1 -2
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-navigation-link/edit.js +5 -5
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-navigation-link/index.js +5 -7
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-navigation-link/init.js +1 -2
- package/build/post-navigation-link/init.js.map +1 -1
- package/build/post-navigation-link/variations.js +1 -2
- package/build/post-navigation-link/variations.js.map +1 -1
- package/build/post-template/edit.js +5 -6
- package/build/post-template/edit.js.map +1 -1
- package/build/post-template/index.js +5 -4
- package/build/post-template/index.js.map +1 -1
- package/build/post-template/init.js +1 -2
- package/build/post-template/init.js.map +1 -1
- package/build/post-terms/index.js +5 -4
- package/build/post-terms/index.js.map +1 -1
- package/build/post-terms/init.js +1 -2
- package/build/post-terms/init.js.map +1 -1
- package/build/post-time-to-read/edit.js +1 -2
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/icon.js +1 -2
- package/build/post-time-to-read/icon.js.map +1 -1
- package/build/post-time-to-read/index.js +5 -4
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/post-time-to-read/init.js +1 -2
- package/build/post-time-to-read/init.js.map +1 -1
- package/build/post-title/deprecated.js +1 -2
- package/build/post-title/deprecated.js.map +1 -1
- package/build/post-title/index.js +5 -4
- package/build/post-title/index.js.map +1 -1
- package/build/post-title/init.js +1 -2
- package/build/post-title/init.js.map +1 -1
- package/build/preformatted/index.js +5 -5
- package/build/preformatted/index.js.map +1 -1
- package/build/preformatted/init.js +1 -2
- package/build/preformatted/init.js.map +1 -1
- package/build/preformatted/transforms.js +1 -2
- package/build/preformatted/transforms.js.map +1 -1
- package/build/preformatted/transforms.native.js +1 -2
- package/build/preformatted/transforms.native.js.map +1 -1
- package/build/pullquote/blockquote.js +1 -2
- package/build/pullquote/blockquote.js.map +1 -1
- package/build/pullquote/deprecated.js +1 -2
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/pullquote/edit.js +1 -2
- package/build/pullquote/edit.js.map +1 -1
- package/build/pullquote/edit.native.js +1 -2
- package/build/pullquote/edit.native.js.map +1 -1
- package/build/pullquote/figure.js +1 -2
- package/build/pullquote/figure.js.map +1 -1
- package/build/pullquote/index.js +5 -4
- package/build/pullquote/index.js.map +1 -1
- package/build/pullquote/init.js +1 -2
- package/build/pullquote/init.js.map +1 -1
- package/build/pullquote/shared.js +1 -2
- package/build/pullquote/shared.js.map +1 -1
- package/build/pullquote/transforms.js +1 -2
- package/build/pullquote/transforms.js.map +1 -1
- package/build/pullquote/transforms.native.js +1 -2
- package/build/pullquote/transforms.native.js.map +1 -1
- package/build/query/deprecated.js +1 -2
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/index.js +1 -2
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/author-control.js +1 -2
- package/build/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js +1 -2
- package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
- package/build/query/edit/inspector-controls/order-control.js +1 -2
- package/build/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +1 -2
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build/query/icons.js +4 -8
- package/build/query/icons.js.map +1 -1
- package/build/query/index.js +5 -7
- package/build/query/index.js.map +1 -1
- package/build/query/init.js +1 -2
- package/build/query/init.js.map +1 -1
- package/build/query/variations.js +1 -2
- package/build/query/variations.js.map +1 -1
- package/build/query/view.js +7 -42
- package/build/query/view.js.map +1 -1
- package/build/query-no-results/index.js +5 -4
- package/build/query-no-results/index.js.map +1 -1
- package/build/query-no-results/init.js +1 -2
- package/build/query-no-results/init.js.map +1 -1
- package/build/query-pagination/deprecated.js +1 -2
- package/build/query-pagination/deprecated.js.map +1 -1
- package/build/query-pagination/edit.js +1 -3
- package/build/query-pagination/edit.js.map +1 -1
- package/build/query-pagination/index.js +7 -5
- package/build/query-pagination/index.js.map +1 -1
- package/build/query-pagination/init.js +1 -2
- package/build/query-pagination/init.js.map +1 -1
- package/build/query-pagination-next/index.js +5 -4
- package/build/query-pagination-next/index.js.map +1 -1
- package/build/query-pagination-next/init.js +1 -2
- package/build/query-pagination-next/init.js.map +1 -1
- package/build/query-pagination-numbers/index.js +5 -4
- package/build/query-pagination-numbers/index.js.map +1 -1
- package/build/query-pagination-numbers/init.js +1 -2
- package/build/query-pagination-numbers/init.js.map +1 -1
- package/build/query-pagination-previous/index.js +5 -4
- package/build/query-pagination-previous/index.js.map +1 -1
- package/build/query-pagination-previous/init.js +1 -2
- package/build/query-pagination-previous/init.js.map +1 -1
- package/build/query-title/deprecated.js +1 -2
- package/build/query-title/deprecated.js.map +1 -1
- package/build/query-title/index.js +5 -4
- package/build/query-title/index.js.map +1 -1
- package/build/query-title/init.js +1 -2
- package/build/query-title/init.js.map +1 -1
- package/build/query-title/variations.js +1 -2
- package/build/query-title/variations.js.map +1 -1
- package/build/quote/deprecated.js +1 -2
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/index.js +5 -4
- package/build/quote/index.js.map +1 -1
- package/build/quote/init.js +1 -2
- package/build/quote/init.js.map +1 -1
- package/build/quote/transforms.js +1 -2
- package/build/quote/transforms.js.map +1 -1
- package/build/quote/transforms.native.js +1 -2
- package/build/quote/transforms.native.js.map +1 -1
- package/build/read-more/index.js +5 -4
- package/build/read-more/index.js.map +1 -1
- package/build/read-more/init.js +1 -2
- package/build/read-more/init.js.map +1 -1
- package/build/rss/index.js +6 -5
- package/build/rss/index.js.map +1 -1
- package/build/rss/init.js +1 -2
- package/build/rss/init.js.map +1 -1
- package/build/search/icons.js +6 -12
- package/build/search/icons.js.map +1 -1
- package/build/search/index.js +2 -4
- package/build/search/index.js.map +1 -1
- package/build/search/init.js +1 -2
- package/build/search/init.js.map +1 -1
- package/build/search/utils.js +3 -6
- package/build/search/utils.js.map +1 -1
- package/build/search/variations.js +1 -2
- package/build/search/variations.js.map +1 -1
- package/build/search/view.js +2 -0
- package/build/search/view.js.map +1 -1
- package/build/separator/deprecated.js +1 -2
- package/build/separator/deprecated.js.map +1 -1
- package/build/separator/index.js +5 -4
- package/build/separator/index.js.map +1 -1
- package/build/separator/init.js +1 -2
- package/build/separator/init.js.map +1 -1
- package/build/separator/separator-settings.native.js +1 -2
- package/build/separator/separator-settings.native.js.map +1 -1
- package/build/separator/transforms.js +1 -2
- package/build/separator/transforms.js.map +1 -1
- package/build/separator/transforms.native.js +1 -2
- package/build/separator/transforms.native.js.map +1 -1
- package/build/shortcode/edit.native.js +1 -2
- package/build/shortcode/edit.native.js.map +1 -1
- package/build/shortcode/index.js +2 -4
- package/build/shortcode/index.js.map +1 -1
- package/build/shortcode/init.js +1 -2
- package/build/shortcode/init.js.map +1 -1
- package/build/shortcode/transforms.js +1 -2
- package/build/shortcode/transforms.js.map +1 -1
- package/build/shortcode/transforms.native.js +1 -2
- package/build/shortcode/transforms.native.js.map +1 -1
- package/build/site-logo/edit.js +0 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +5 -4
- package/build/site-logo/index.js.map +1 -1
- package/build/site-logo/init.js +1 -2
- package/build/site-logo/init.js.map +1 -1
- package/build/site-logo/transforms.js +1 -2
- package/build/site-logo/transforms.js.map +1 -1
- package/build/site-tagline/deprecated.js +1 -2
- package/build/site-tagline/deprecated.js.map +1 -1
- package/build/site-tagline/icon.js +1 -2
- package/build/site-tagline/icon.js.map +1 -1
- package/build/site-tagline/index.js +5 -4
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-tagline/init.js +1 -2
- package/build/site-tagline/init.js.map +1 -1
- package/build/site-title/deprecated.js +1 -2
- package/build/site-title/deprecated.js.map +1 -1
- package/build/site-title/index.js +5 -4
- package/build/site-title/index.js.map +1 -1
- package/build/site-title/init.js +1 -2
- package/build/site-title/init.js.map +1 -1
- package/build/site-title/transforms.js +1 -2
- package/build/site-title/transforms.js.map +1 -1
- package/build/social-link/edit.js +1 -2
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/edit.native.js +1 -2
- package/build/social-link/edit.native.js.map +1 -1
- package/build/social-link/icons/patreon.js +3 -10
- package/build/social-link/icons/patreon.js.map +1 -1
- package/build/social-link/index.js +6 -5
- package/build/social-link/index.js.map +1 -1
- package/build/social-link/init.js +1 -2
- package/build/social-link/init.js.map +1 -1
- package/build/social-link/variations.js +1 -2
- package/build/social-link/variations.js.map +1 -1
- package/build/social-links/deprecated.js +1 -2
- package/build/social-links/deprecated.js.map +1 -1
- package/build/social-links/edit.js +1 -4
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/edit.native.js +1 -6
- package/build/social-links/edit.native.js.map +1 -1
- package/build/social-links/index.js +6 -4
- package/build/social-links/index.js.map +1 -1
- package/build/social-links/init.js +1 -2
- package/build/social-links/init.js.map +1 -1
- package/build/spacer/constants.js +1 -2
- package/build/spacer/constants.js.map +1 -1
- package/build/spacer/controls.native.js +2 -4
- package/build/spacer/controls.native.js.map +1 -1
- package/build/spacer/deprecated.js +1 -2
- package/build/spacer/deprecated.js.map +1 -1
- package/build/spacer/edit.js +1 -2
- package/build/spacer/edit.js.map +1 -1
- package/build/spacer/edit.native.js +3 -4
- package/build/spacer/edit.native.js.map +1 -1
- package/build/spacer/index.js +5 -4
- package/build/spacer/index.js.map +1 -1
- package/build/spacer/init.js +1 -2
- package/build/spacer/init.js.map +1 -1
- package/build/table/deprecated.js +1 -2
- package/build/table/deprecated.js.map +1 -1
- package/build/table/edit.js +1 -2
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +6 -5
- package/build/table/index.js.map +1 -1
- package/build/table/init.js +1 -2
- package/build/table/init.js.map +1 -1
- package/build/table/transforms.js +1 -2
- package/build/table/transforms.js.map +1 -1
- package/build/table/transforms.native.js +1 -2
- package/build/table/transforms.native.js.map +1 -1
- package/build/table-of-contents/index.js +5 -4
- package/build/table-of-contents/index.js.map +1 -1
- package/build/table-of-contents/init.js +1 -2
- package/build/table-of-contents/init.js.map +1 -1
- package/build/tag-cloud/edit.js +1 -2
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/tag-cloud/index.js +5 -4
- package/build/tag-cloud/index.js.map +1 -1
- package/build/tag-cloud/init.js +1 -2
- package/build/tag-cloud/init.js.map +1 -1
- package/build/tag-cloud/transforms.js +1 -2
- package/build/tag-cloud/transforms.js.map +1 -1
- package/build/template-part/edit/index.js +6 -10
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/index.js +9 -8
- package/build/template-part/index.js.map +1 -1
- package/build/template-part/init.js +1 -2
- package/build/template-part/init.js.map +1 -1
- package/build/term-description/index.js +5 -4
- package/build/term-description/index.js.map +1 -1
- package/build/term-description/init.js +1 -2
- package/build/term-description/init.js.map +1 -1
- package/build/text-columns/index.js +6 -5
- package/build/text-columns/index.js.map +1 -1
- package/build/text-columns/init.js +1 -2
- package/build/text-columns/init.js.map +1 -1
- package/build/text-columns/transforms.js +1 -2
- package/build/text-columns/transforms.js.map +1 -1
- package/build/text-columns/transforms.native.js +1 -2
- package/build/text-columns/transforms.native.js.map +1 -1
- package/build/utils/constants.js +1 -2
- package/build/utils/constants.js.map +1 -1
- package/build/utils/hooks.js +1 -2
- package/build/utils/hooks.js.map +1 -1
- package/build/utils/transformation-categories.native.js +1 -2
- package/build/utils/transformation-categories.native.js.map +1 -1
- package/build/verse/deprecated.js +1 -2
- package/build/verse/deprecated.js.map +1 -1
- package/build/verse/index.js +5 -5
- package/build/verse/index.js.map +1 -1
- package/build/verse/init.js +1 -2
- package/build/verse/init.js.map +1 -1
- package/build/verse/transforms.js +1 -2
- package/build/verse/transforms.js.map +1 -1
- package/build/verse/transforms.native.js +1 -2
- package/build/verse/transforms.native.js.map +1 -1
- package/build/video/deprecated.js +4 -2
- package/build/video/deprecated.js.map +1 -1
- package/build/video/edit-common-settings.js +1 -2
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +1 -2
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +1 -2
- package/build/video/edit.native.js.map +1 -1
- package/build/video/icon-retry.native.js +1 -2
- package/build/video/icon-retry.native.js.map +1 -1
- package/build/video/index.js +5 -4
- package/build/video/index.js.map +1 -1
- package/build/video/init.js +1 -2
- package/build/video/init.js.map +1 -1
- package/build/video/transforms.js +1 -2
- package/build/video/transforms.js.map +1 -1
- package/build/video/transforms.native.js +1 -2
- package/build/video/transforms.native.js.map +1 -1
- package/build-module/archives/index.js +3 -0
- package/build-module/archives/index.js.map +1 -1
- package/build-module/audio/index.js +3 -0
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/index.js +3 -0
- package/build-module/avatar/index.js.map +1 -1
- package/build-module/block/deprecated.js +59 -0
- package/build-module/block/deprecated.js.map +1 -0
- package/build-module/block/edit.js +93 -103
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/index.js +24 -4
- package/build-module/block/index.js.map +1 -1
- package/build-module/button/edit.js +2 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/edit.native.js +0 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/button/index.js +7 -2
- package/build-module/button/index.js.map +1 -1
- package/build-module/buttons/edit.js +4 -11
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js +2 -5
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/buttons/index.js +4 -0
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/calendar/index.js +3 -0
- package/build-module/calendar/index.js.map +1 -1
- package/build-module/categories/index.js +3 -0
- package/build-module/categories/index.js.map +1 -1
- package/build-module/code/index.js +3 -1
- package/build-module/code/index.js.map +1 -1
- package/build-module/column/index.js +5 -1
- package/build-module/column/index.js.map +1 -1
- package/build-module/columns/edit.js +53 -76
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +0 -12
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +6 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comment-author-avatar/index.js +3 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comment-author-name/index.js +3 -0
- package/build-module/comment-author-name/index.js.map +1 -1
- package/build-module/comment-date/index.js +3 -0
- package/build-module/comment-date/index.js.map +1 -1
- package/build-module/comment-edit-link/index.js +3 -0
- package/build-module/comment-edit-link/index.js.map +1 -1
- package/build-module/comment-template/index.js +3 -0
- package/build-module/comment-template/index.js.map +1 -1
- package/build-module/comments-pagination/edit.js +1 -3
- package/build-module/comments-pagination/edit.js.map +1 -1
- package/build-module/comments-pagination/index.js +4 -0
- package/build-module/comments-pagination/index.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +3 -0
- package/build-module/comments-pagination-next/index.js.map +1 -1
- package/build-module/comments-pagination-numbers/index.js +3 -0
- package/build-module/comments-pagination-numbers/index.js.map +1 -1
- package/build-module/comments-pagination-previous/index.js +3 -0
- package/build-module/comments-pagination-previous/index.js.map +1 -1
- package/build-module/comments-title/deprecated.js +3 -0
- package/build-module/comments-title/deprecated.js.map +1 -1
- package/build-module/comments-title/index.js +3 -0
- package/build-module/comments-title/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +3 -3
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +3 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/details/index.js +3 -0
- package/build-module/details/index.js.map +1 -1
- package/build-module/embed/deprecated.js +3 -0
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +1 -1
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/index.js +3 -0
- package/build-module/embed/index.js.map +1 -1
- package/build-module/embed/transforms.js +3 -0
- package/build-module/embed/transforms.js.map +1 -1
- package/build-module/embed/util.js +3 -0
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/view.js +2 -0
- package/build-module/file/view.js.map +1 -1
- package/build-module/footnotes/format.js +4 -0
- package/build-module/footnotes/format.js.map +1 -1
- package/build-module/footnotes/index.js +3 -0
- package/build-module/footnotes/index.js.map +1 -1
- package/build-module/form/edit.js +0 -2
- package/build-module/form/edit.js.map +1 -1
- package/build-module/form/index.js +1 -0
- package/build-module/form/index.js.map +1 -1
- package/build-module/form/view.js +2 -0
- package/build-module/form/view.js.map +1 -1
- package/build-module/form-input/deprecated.js +0 -1
- package/build-module/form-input/deprecated.js.map +1 -1
- package/build-module/form-submit-button/edit.js +0 -1
- package/build-module/form-submit-button/edit.js.map +1 -1
- package/build-module/form-submit-button/index.js +1 -0
- package/build-module/form-submit-button/index.js.map +1 -1
- package/build-module/gallery/edit.js +19 -25
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js +0 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/index.js +4 -0
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js +0 -1
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/group/index.js +3 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/index.js +4 -1
- package/build-module/heading/index.js.map +1 -1
- package/build-module/home-link/index.js +3 -0
- package/build-module/home-link/index.js.map +1 -1
- package/build-module/html/index.js +4 -1
- package/build-module/html/index.js.map +1 -1
- package/build-module/image/edit.js +36 -22
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +71 -73
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +4 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/save.js +3 -1
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/view.js +266 -368
- package/build-module/image/view.js.map +1 -1
- package/build-module/latest-comments/index.js +3 -0
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/latest-posts/deprecated.js +3 -0
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/index.js +3 -0
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/list/edit.js +0 -1
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/index.js +5 -1
- package/build-module/list/index.js.map +1 -1
- package/build-module/list-item/edit.js +0 -1
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js +0 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/index.js +4 -0
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/loginout/index.js +3 -0
- package/build-module/loginout/index.js.map +1 -1
- package/build-module/media-text/edit.js +12 -10
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +1 -1
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/index.js +3 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/missing/index.js +4 -1
- package/build-module/missing/index.js.map +1 -1
- package/build-module/more/index.js +4 -1
- package/build-module/more/index.js.map +1 -1
- package/build-module/navigation/constants.js +0 -1
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/index.js +0 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -6
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +3 -7
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/index.js +1 -0
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/view.js +2 -0
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +11 -6
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/index.js +5 -1
- package/build-module/navigation-link/index.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +116 -51
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/index.js +19 -4
- package/build-module/navigation-submenu/index.js.map +1 -1
- package/build-module/nextpage/index.js +4 -1
- package/build-module/nextpage/index.js.map +1 -1
- package/build-module/page-list/edit.js +0 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +4 -0
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list-item/index.js +4 -1
- package/build-module/page-list-item/index.js.map +1 -1
- package/build-module/paragraph/edit.js +3 -3
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/paragraph/index.js +4 -1
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +4 -1
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/pattern/index.js +4 -1
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/post-author/index.js +3 -0
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-author-biography/index.js +3 -0
- package/build-module/post-author-biography/index.js.map +1 -1
- package/build-module/post-author-name/index.js +3 -0
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-comment/edit.js +1 -3
- package/build-module/post-comment/edit.js.map +1 -1
- package/build-module/post-comment/index.js +5 -1
- package/build-module/post-comment/index.js.map +1 -1
- package/build-module/post-comments-count/index.js +3 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-link/index.js +3 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-date/index.js +3 -0
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-excerpt/index.js +3 -0
- package/build-module/post-excerpt/index.js.map +1 -1
- package/build-module/post-featured-image/index.js +3 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +5 -5
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-navigation-link/index.js +3 -3
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-template/edit.js +5 -6
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-template/index.js +3 -0
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/post-terms/index.js +3 -0
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-time-to-read/index.js +3 -0
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/post-title/index.js +3 -0
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/preformatted/index.js +3 -1
- package/build-module/preformatted/index.js.map +1 -1
- package/build-module/pullquote/index.js +3 -0
- package/build-module/pullquote/index.js.map +1 -1
- package/build-module/query/index.js +3 -3
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/view.js +5 -40
- package/build-module/query/view.js.map +1 -1
- package/build-module/query-no-results/index.js +3 -0
- package/build-module/query-no-results/index.js.map +1 -1
- package/build-module/query-pagination/edit.js +1 -3
- package/build-module/query-pagination/edit.js.map +1 -1
- package/build-module/query-pagination/index.js +5 -1
- package/build-module/query-pagination/index.js.map +1 -1
- package/build-module/query-pagination-next/index.js +3 -0
- package/build-module/query-pagination-next/index.js.map +1 -1
- package/build-module/query-pagination-numbers/index.js +3 -0
- package/build-module/query-pagination-numbers/index.js.map +1 -1
- package/build-module/query-pagination-previous/index.js +3 -0
- package/build-module/query-pagination-previous/index.js.map +1 -1
- package/build-module/query-title/index.js +3 -0
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/quote/index.js +3 -0
- package/build-module/quote/index.js.map +1 -1
- package/build-module/read-more/index.js +3 -0
- package/build-module/read-more/index.js.map +1 -1
- package/build-module/rss/index.js +4 -1
- package/build-module/rss/index.js.map +1 -1
- package/build-module/search/view.js +2 -0
- package/build-module/search/view.js.map +1 -1
- package/build-module/separator/index.js +3 -0
- package/build-module/separator/index.js.map +1 -1
- package/build-module/site-logo/edit.js +0 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +3 -0
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/site-tagline/index.js +3 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/index.js +3 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/icons/patreon.js +4 -11
- package/build-module/social-link/icons/patreon.js.map +1 -1
- package/build-module/social-link/index.js +4 -1
- package/build-module/social-link/index.js.map +1 -1
- package/build-module/social-links/edit.js +0 -2
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js +0 -3
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/social-links/index.js +4 -0
- package/build-module/social-links/index.js.map +1 -1
- package/build-module/spacer/index.js +3 -0
- package/build-module/spacer/index.js.map +1 -1
- package/build-module/table/index.js +4 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/table-of-contents/index.js +3 -0
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/tag-cloud/index.js +3 -0
- package/build-module/tag-cloud/index.js.map +1 -1
- package/build-module/template-part/edit/index.js +6 -10
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/index.js +7 -4
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/term-description/index.js +3 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/text-columns/index.js +4 -1
- package/build-module/text-columns/index.js.map +1 -1
- package/build-module/verse/index.js +3 -1
- package/build-module/verse/index.js.map +1 -1
- package/build-module/video/deprecated.js +3 -0
- package/build-module/video/deprecated.js.map +1 -1
- package/build-module/video/index.js +3 -0
- package/build-module/video/index.js.map +1 -1
- package/build-style/editor-rtl.css +10 -1
- package/build-style/editor.css +10 -1
- package/build-style/embed/editor-rtl.css +5 -1
- package/build-style/embed/editor.css +5 -1
- package/build-style/image/style-rtl.css +6 -6
- package/build-style/image/style.css +6 -6
- package/build-style/navigation-link/style-rtl.css +22 -0
- package/build-style/navigation-link/style.css +22 -0
- package/build-style/{query/style.css → post-content/editor-rtl.css} +3 -41
- package/build-style/{query/style-rtl.css → post-content/editor.css} +3 -41
- package/build-style/separator/style-rtl.css +2 -2
- package/build-style/separator/style.css +2 -2
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +32 -10
- package/build-style/style.css +32 -10
- package/package.json +34 -34
- package/src/archives/block.json +3 -0
- package/src/audio/block.json +3 -0
- package/src/avatar/block.json +3 -0
- package/src/block/block.json +6 -3
- package/src/block/deprecated.js +57 -0
- package/src/block/edit.js +151 -150
- package/src/block/index.js +21 -0
- package/src/block/index.php +15 -2
- package/src/button/block.json +7 -2
- package/src/button/edit.js +3 -4
- package/src/buttons/block.json +4 -0
- package/src/buttons/edit.js +4 -13
- package/src/buttons/edit.native.js +2 -6
- package/src/calendar/block.json +3 -0
- package/src/categories/block.json +3 -0
- package/src/code/block.json +3 -0
- package/src/column/block.json +5 -1
- package/src/columns/block.json +6 -1
- package/src/columns/edit.js +91 -123
- package/src/columns/edit.native.js +0 -12
- package/src/comment-author-avatar/block.json +3 -0
- package/src/comment-author-name/block.json +3 -0
- package/src/comment-date/block.json +3 -0
- package/src/comment-edit-link/block.json +3 -0
- package/src/comment-template/block.json +3 -0
- package/src/comments-pagination/block.json +8 -0
- package/src/comments-pagination/edit.js +0 -6
- package/src/comments-pagination-next/block.json +3 -0
- package/src/comments-pagination-numbers/block.json +3 -0
- package/src/comments-pagination-previous/block.json +3 -0
- package/src/comments-title/block.json +3 -0
- package/src/cover/block.json +3 -0
- package/src/cover/edit/inspector-controls.js +3 -2
- package/src/cover/test/edit.js +2 -2
- package/src/details/block.json +3 -0
- package/src/editor.scss +1 -0
- package/src/embed/block.json +3 -0
- package/src/embed/editor.scss +8 -2
- package/src/embed/embed-placeholder.js +1 -1
- package/src/file/index.php +11 -7
- package/src/file/view.js +9 -5
- package/src/footnotes/block.json +3 -0
- package/src/footnotes/format.js +10 -0
- package/src/form/block.json +9 -0
- package/src/form/edit.js +0 -11
- package/src/form/index.php +2 -2
- package/src/form/view.js +2 -0
- package/src/form-submit-button/block.json +1 -0
- package/src/form-submit-button/edit.js +0 -1
- package/src/gallery/block.json +4 -0
- package/src/gallery/edit.js +26 -35
- package/src/gallery/gallery.native.js +0 -1
- package/src/gallery/index.php +51 -21
- package/src/gallery/test/index.native.js +1 -1
- package/src/group/block.json +3 -1
- package/src/heading/block.json +4 -1
- package/src/heading/test/__snapshots__/index.native.js.snap +6 -0
- package/src/heading/test/index.native.js +24 -9
- package/src/home-link/block.json +3 -0
- package/src/home-link/index.php +4 -1
- package/src/html/block.json +4 -1
- package/src/image/block.json +4 -0
- package/src/image/edit.js +37 -16
- package/src/image/image.js +81 -110
- package/src/image/index.php +123 -166
- package/src/image/save.js +3 -0
- package/src/image/style.scss +2 -2
- package/src/image/view.js +392 -499
- package/src/latest-comments/block.json +3 -0
- package/src/latest-posts/block.json +3 -0
- package/src/list/block.json +5 -1
- package/src/list/edit.js +0 -1
- package/src/list-item/block.json +4 -0
- package/src/list-item/edit.js +0 -1
- package/src/list-item/edit.native.js +0 -1
- package/src/loginout/block.json +3 -0
- package/src/media-text/block.json +3 -0
- package/src/media-text/edit.js +12 -12
- package/src/media-text/edit.native.js +1 -1
- package/src/missing/block.json +4 -1
- package/src/more/block.json +4 -1
- package/src/navigation/block.json +13 -0
- package/src/navigation/constants.js +0 -14
- package/src/navigation/edit/inner-blocks.js +2 -18
- package/src/navigation/edit/unsaved-inner-blocks.js +3 -19
- package/src/navigation/index.php +84 -51
- package/src/navigation/view.js +184 -171
- package/src/navigation-link/block.json +9 -1
- package/src/navigation-link/edit.js +10 -11
- package/src/navigation-link/index.php +31 -110
- package/src/navigation-link/link-ui.js +216 -111
- package/src/navigation-link/style.scss +26 -0
- package/src/navigation-submenu/block.json +4 -1
- package/src/navigation-submenu/index.js +11 -4
- package/src/nextpage/block.json +4 -1
- package/src/page-list/block.json +4 -0
- package/src/page-list/edit.js +0 -1
- package/src/page-list-item/block.json +4 -1
- package/src/paragraph/block.json +4 -1
- package/src/paragraph/edit.js +3 -3
- package/src/pattern/block.json +4 -1
- package/src/pattern/index.php +2 -0
- package/src/post-author/block.json +3 -0
- package/src/post-author-biography/block.json +3 -0
- package/src/post-author-name/block.json +3 -0
- package/src/post-comment/block.json +12 -1
- package/src/post-comment/edit.js +0 -9
- package/src/post-comments-count/block.json +3 -0
- package/src/post-comments-link/block.json +3 -0
- package/src/post-content/editor.scss +4 -0
- package/src/post-date/block.json +3 -0
- package/src/post-excerpt/block.json +3 -0
- package/src/post-featured-image/block.json +3 -0
- package/src/post-navigation-link/block.json +3 -3
- package/src/post-navigation-link/edit.js +1 -7
- package/src/post-navigation-link/index.php +5 -8
- package/src/post-template/block.json +3 -0
- package/src/post-template/edit.js +5 -5
- package/src/post-terms/block.json +3 -0
- package/src/post-terms/index.php +2 -2
- package/src/post-time-to-read/block.json +3 -0
- package/src/post-title/block.json +3 -0
- package/src/preformatted/block.json +3 -0
- package/src/pullquote/block.json +3 -0
- package/src/query/block.json +3 -3
- package/src/query/index.php +41 -65
- package/src/query/view.js +43 -71
- package/src/query-no-results/block.json +3 -0
- package/src/query-pagination/block.json +9 -1
- package/src/query-pagination/edit.js +0 -6
- package/src/query-pagination-next/block.json +3 -0
- package/src/query-pagination-numbers/block.json +3 -0
- package/src/query-pagination-previous/block.json +3 -0
- package/src/query-title/block.json +3 -0
- package/src/quote/block.json +3 -0
- package/src/read-more/block.json +3 -0
- package/src/rss/block.json +4 -1
- package/src/search/index.php +11 -7
- package/src/search/view.js +64 -60
- package/src/separator/block.json +3 -0
- package/src/separator/style.scss +3 -3
- package/src/site-logo/block.json +3 -0
- package/src/site-tagline/block.json +3 -0
- package/src/site-title/block.json +3 -0
- package/src/social-link/block.json +4 -1
- package/src/social-link/icons/patreon.js +3 -4
- package/src/social-link/index.php +1 -1
- package/src/social-link/socials-with-bg.scss +1 -1
- package/src/social-link/socials-without-bg.scss +1 -1
- package/src/social-links/block.json +4 -0
- package/src/social-links/edit.js +0 -3
- package/src/social-links/edit.native.js +0 -6
- package/src/spacer/block.json +3 -0
- package/src/table/block.json +4 -1
- package/src/table-of-contents/block.json +3 -0
- package/src/tag-cloud/block.json +3 -0
- package/src/template-part/block.json +4 -1
- package/src/template-part/edit/index.js +6 -9
- package/src/template-part/index.js +4 -4
- package/src/template-part/index.php +9 -9
- package/src/term-description/block.json +3 -0
- package/src/text-columns/block.json +4 -1
- package/src/verse/block.json +3 -0
- package/src/video/block.json +3 -0
- package/src/query/style.scss +0 -52
|
@@ -3,10 +3,10 @@ import { createElement, Fragment } from "react";
|
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
5
|
import { isBlobURL } from '@wordpress/blob';
|
|
6
|
-
import { ExternalLink, ResizableBox, Spinner, TextareaControl,
|
|
6
|
+
import { ExternalLink, ResizableBox, Spinner, TextareaControl, TextControl, ToolbarButton, ToolbarGroup, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUseCustomUnits as useCustomUnits } from '@wordpress/components';
|
|
7
7
|
import { useViewportMatch } from '@wordpress/compose';
|
|
8
8
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
9
|
-
import { BlockControls, InspectorControls, __experimentalImageURLInputUI as ImageURLInputUI, MediaReplaceFlow, store as blockEditorStore, useSettings, __experimentalImageEditor as ImageEditor, __experimentalUseBorderProps as useBorderProps, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
9
|
+
import { BlockControls, InspectorControls, __experimentalImageURLInputUI as ImageURLInputUI, MediaReplaceFlow, store as blockEditorStore, useSettings, __experimentalImageEditor as ImageEditor, __experimentalUseBorderProps as useBorderProps, __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
10
10
|
import { useEffect, useMemo, useState, useRef } from '@wordpress/element';
|
|
11
11
|
import { __, _x, sprintf, isRTL } from '@wordpress/i18n';
|
|
12
12
|
import { getFilename } from '@wordpress/url';
|
|
@@ -71,7 +71,7 @@ export default function Image({
|
|
|
71
71
|
temporaryURL,
|
|
72
72
|
attributes,
|
|
73
73
|
setAttributes,
|
|
74
|
-
|
|
74
|
+
isSingleSelected,
|
|
75
75
|
insertBlocksAfter,
|
|
76
76
|
onReplace,
|
|
77
77
|
onSelectImage,
|
|
@@ -110,45 +110,29 @@ export default function Image({
|
|
|
110
110
|
allowResize = true
|
|
111
111
|
} = context;
|
|
112
112
|
const {
|
|
113
|
-
getBlock
|
|
113
|
+
getBlock,
|
|
114
|
+
getSettings
|
|
114
115
|
} = useSelect(blockEditorStore);
|
|
115
|
-
const {
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
const {
|
|
119
|
-
getMedia
|
|
120
|
-
} = select(coreStore);
|
|
121
|
-
return {
|
|
122
|
-
image: id && isSelected ? getMedia(id, {
|
|
123
|
-
context: 'view'
|
|
124
|
-
}) : null
|
|
125
|
-
};
|
|
126
|
-
}, [id, isSelected]);
|
|
116
|
+
const image = useSelect(select => id && isSingleSelected ? select(coreStore).getMedia(id, {
|
|
117
|
+
context: 'view'
|
|
118
|
+
}) : null, [id, isSingleSelected]);
|
|
127
119
|
const {
|
|
128
120
|
canInsertCover,
|
|
129
121
|
imageEditing,
|
|
130
122
|
imageSizes,
|
|
131
|
-
maxWidth
|
|
132
|
-
mediaUpload,
|
|
133
|
-
multiImageSelection
|
|
123
|
+
maxWidth
|
|
134
124
|
} = useSelect(select => {
|
|
135
125
|
const {
|
|
136
126
|
getBlockRootClientId,
|
|
137
|
-
getMultiSelectedBlockClientIds,
|
|
138
|
-
getBlockName,
|
|
139
|
-
getSettings,
|
|
140
127
|
canInsertBlockType
|
|
141
128
|
} = select(blockEditorStore);
|
|
142
129
|
const rootClientId = getBlockRootClientId(clientId);
|
|
143
130
|
const settings = getSettings();
|
|
144
|
-
const multiSelectedClientIds = getMultiSelectedBlockClientIds();
|
|
145
131
|
return {
|
|
146
132
|
imageEditing: settings.imageEditing,
|
|
147
133
|
imageSizes: settings.imageSizes,
|
|
148
134
|
maxWidth: settings.maxWidth,
|
|
149
|
-
|
|
150
|
-
canInsertCover: canInsertBlockType('core/cover', rootClientId),
|
|
151
|
-
multiImageSelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/image')
|
|
135
|
+
canInsertCover: canInsertBlockType('core/cover', rootClientId)
|
|
152
136
|
};
|
|
153
137
|
}, [clientId]);
|
|
154
138
|
const {
|
|
@@ -179,13 +163,12 @@ export default function Image({
|
|
|
179
163
|
value: slug,
|
|
180
164
|
label: name
|
|
181
165
|
}));
|
|
182
|
-
const canUploadMedia = !!mediaUpload;
|
|
183
166
|
|
|
184
167
|
// If an image is externally hosted, try to fetch the image data. This may
|
|
185
168
|
// fail if the image host doesn't allow CORS with the domain. If it works,
|
|
186
169
|
// we can enable a button in the toolbar to upload the image.
|
|
187
170
|
useEffect(() => {
|
|
188
|
-
if (!isExternalImage(id, url) || !
|
|
171
|
+
if (!isExternalImage(id, url) || !isSingleSelected || !getSettings().mediaUpload) {
|
|
189
172
|
setExternalBlob();
|
|
190
173
|
return;
|
|
191
174
|
}
|
|
@@ -195,7 +178,7 @@ export default function Image({
|
|
|
195
178
|
.fetch(url.includes('?') ? url : url + '?').then(response => response.blob()).then(blob => setExternalBlob(blob))
|
|
196
179
|
// Do nothing, cannot upload.
|
|
197
180
|
.catch(() => {});
|
|
198
|
-
}, [id, url,
|
|
181
|
+
}, [id, url, isSingleSelected, externalBlob]);
|
|
199
182
|
|
|
200
183
|
// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
|
|
201
184
|
// width and height. This resolves an issue in Safari where the loaded natural
|
|
@@ -231,6 +214,25 @@ export default function Image({
|
|
|
231
214
|
function onSetHref(props) {
|
|
232
215
|
setAttributes(props);
|
|
233
216
|
}
|
|
217
|
+
function onSetLightbox(enable) {
|
|
218
|
+
if (enable && !lightboxSetting?.enabled) {
|
|
219
|
+
setAttributes({
|
|
220
|
+
lightbox: {
|
|
221
|
+
enabled: true
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
} else if (!enable && lightboxSetting?.enabled) {
|
|
225
|
+
setAttributes({
|
|
226
|
+
lightbox: {
|
|
227
|
+
enabled: false
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
} else {
|
|
231
|
+
setAttributes({
|
|
232
|
+
lightbox: undefined
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
234
236
|
function onSetTitle(value) {
|
|
235
237
|
// This is the HTML title attribute, separate from the media object
|
|
236
238
|
// title.
|
|
@@ -254,6 +256,12 @@ export default function Image({
|
|
|
254
256
|
});
|
|
255
257
|
}
|
|
256
258
|
function uploadExternal() {
|
|
259
|
+
const {
|
|
260
|
+
mediaUpload
|
|
261
|
+
} = getSettings();
|
|
262
|
+
if (!mediaUpload) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
257
265
|
mediaUpload({
|
|
258
266
|
filesList: [externalBlob],
|
|
259
267
|
onFileChange([img]) {
|
|
@@ -275,12 +283,12 @@ export default function Image({
|
|
|
275
283
|
});
|
|
276
284
|
}
|
|
277
285
|
useEffect(() => {
|
|
278
|
-
if (!
|
|
286
|
+
if (!isSingleSelected) {
|
|
279
287
|
setIsEditingImage(false);
|
|
280
288
|
}
|
|
281
|
-
}, [
|
|
289
|
+
}, [isSingleSelected]);
|
|
282
290
|
const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
|
|
283
|
-
const allowCrop =
|
|
291
|
+
const allowCrop = isSingleSelected && canEditImage && !isEditingImage;
|
|
284
292
|
function switchToCover() {
|
|
285
293
|
replaceBlocks(clientId, switchToBlockType(getBlock(clientId), 'core/cover'));
|
|
286
294
|
}
|
|
@@ -292,9 +300,8 @@ export default function Image({
|
|
|
292
300
|
availableUnits: ['px']
|
|
293
301
|
});
|
|
294
302
|
const [lightboxSetting] = useSettings('lightbox');
|
|
295
|
-
const
|
|
303
|
+
const showLightboxSetting = !!lightbox || lightboxSetting?.allowEditing === true;
|
|
296
304
|
const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
|
|
297
|
-
const lightboxToggleDisabled = linkDestination && linkDestination !== 'none';
|
|
298
305
|
const dimensionsControl = createElement(DimensionsTool, {
|
|
299
306
|
value: {
|
|
300
307
|
width,
|
|
@@ -344,29 +351,36 @@ export default function Image({
|
|
|
344
351
|
}, isResizable && dimensionsControl));
|
|
345
352
|
const {
|
|
346
353
|
lockUrlControls = false,
|
|
354
|
+
lockHrefControls = false,
|
|
347
355
|
lockAltControls = false,
|
|
348
356
|
lockTitleControls = false
|
|
349
357
|
} = useSelect(select => {
|
|
350
|
-
if (!
|
|
358
|
+
if (!isSingleSelected) {
|
|
351
359
|
return {};
|
|
352
360
|
}
|
|
353
361
|
const {
|
|
354
|
-
getBlockBindingsSource
|
|
362
|
+
getBlockBindingsSource,
|
|
363
|
+
getBlockParentsByBlockName
|
|
355
364
|
} = unlock(select(blockEditorStore));
|
|
356
365
|
const {
|
|
357
366
|
url: urlBinding,
|
|
358
367
|
alt: altBinding,
|
|
359
368
|
title: titleBinding
|
|
360
369
|
} = metadata?.bindings || {};
|
|
370
|
+
const hasParentPattern = getBlockParentsByBlockName(clientId, 'core/block').length > 0;
|
|
361
371
|
return {
|
|
362
|
-
lockUrlControls: !!urlBinding && getBlockBindingsSource(urlBinding?.source
|
|
363
|
-
|
|
364
|
-
|
|
372
|
+
lockUrlControls: !!urlBinding && getBlockBindingsSource(urlBinding?.source)?.lockAttributesEditing === true,
|
|
373
|
+
lockHrefControls:
|
|
374
|
+
// Disable editing the link of the URL if the image is inside a pattern instance.
|
|
375
|
+
// This is a temporary solution until we support overriding the link on the frontend.
|
|
376
|
+
hasParentPattern,
|
|
377
|
+
lockAltControls: !!altBinding && getBlockBindingsSource(altBinding?.source)?.lockAttributesEditing === true,
|
|
378
|
+
lockTitleControls: !!titleBinding && getBlockBindingsSource(titleBinding?.source)?.lockAttributesEditing === true
|
|
365
379
|
};
|
|
366
|
-
}, [
|
|
380
|
+
}, [clientId, isSingleSelected, metadata?.bindings]);
|
|
367
381
|
const controls = createElement(Fragment, null, createElement(BlockControls, {
|
|
368
382
|
group: "block"
|
|
369
|
-
},
|
|
383
|
+
}, isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls && createElement(ImageURLInputUI, {
|
|
370
384
|
url: href || '',
|
|
371
385
|
onChangeUrl: onSetHref,
|
|
372
386
|
linkDestination: linkDestination,
|
|
@@ -374,16 +388,19 @@ export default function Image({
|
|
|
374
388
|
mediaLink: image && image.link,
|
|
375
389
|
linkTarget: linkTarget,
|
|
376
390
|
linkClass: linkClass,
|
|
377
|
-
rel: rel
|
|
391
|
+
rel: rel,
|
|
392
|
+
showLightboxSetting: showLightboxSetting,
|
|
393
|
+
lightboxEnabled: lightboxChecked,
|
|
394
|
+
onSetLightbox: onSetLightbox
|
|
378
395
|
}), allowCrop && createElement(ToolbarButton, {
|
|
379
396
|
onClick: () => setIsEditingImage(true),
|
|
380
397
|
icon: crop,
|
|
381
398
|
label: __('Crop')
|
|
382
|
-
}),
|
|
399
|
+
}), isSingleSelected && canInsertCover && createElement(ToolbarButton, {
|
|
383
400
|
icon: overlayText,
|
|
384
401
|
label: __('Add text over image'),
|
|
385
402
|
onClick: switchToCover
|
|
386
|
-
})),
|
|
403
|
+
})), isSingleSelected && !isEditingImage && !lockUrlControls && createElement(BlockControls, {
|
|
387
404
|
group: "other"
|
|
388
405
|
}, createElement(MediaReplaceFlow, {
|
|
389
406
|
mediaId: id,
|
|
@@ -393,15 +410,15 @@ export default function Image({
|
|
|
393
410
|
onSelect: onSelectImage,
|
|
394
411
|
onSelectURL: onSelectURL,
|
|
395
412
|
onError: onUploadError
|
|
396
|
-
})),
|
|
413
|
+
})), isSingleSelected && externalBlob && createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
397
414
|
onClick: uploadExternal,
|
|
398
415
|
icon: upload,
|
|
399
|
-
label: __('Upload
|
|
416
|
+
label: __('Upload to Media Library')
|
|
400
417
|
}))), createElement(InspectorControls, null, createElement(ToolsPanel, {
|
|
401
418
|
label: __('Settings'),
|
|
402
419
|
resetAll: resetAll,
|
|
403
420
|
dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS
|
|
404
|
-
},
|
|
421
|
+
}, isSingleSelected && createElement(ToolsPanelItem, {
|
|
405
422
|
label: __('Alternative text'),
|
|
406
423
|
isShownByDefault: true,
|
|
407
424
|
hasValue: () => !!alt,
|
|
@@ -421,28 +438,7 @@ export default function Image({
|
|
|
421
438
|
value: sizeSlug,
|
|
422
439
|
onChange: updateImage,
|
|
423
440
|
options: imageSizeOptions
|
|
424
|
-
}),
|
|
425
|
-
hasValue: () => !!lightbox,
|
|
426
|
-
label: __('Expand on click'),
|
|
427
|
-
onDeselect: () => {
|
|
428
|
-
setAttributes({
|
|
429
|
-
lightbox: undefined
|
|
430
|
-
});
|
|
431
|
-
},
|
|
432
|
-
isShownByDefault: true
|
|
433
|
-
}, createElement(ToggleControl, {
|
|
434
|
-
label: __('Expand on click'),
|
|
435
|
-
checked: lightboxChecked,
|
|
436
|
-
onChange: newValue => {
|
|
437
|
-
setAttributes({
|
|
438
|
-
lightbox: {
|
|
439
|
-
enabled: newValue
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
},
|
|
443
|
-
disabled: lightboxToggleDisabled,
|
|
444
|
-
help: lightboxToggleDisabled ? __('“Expand on click” scales the image up, and can’t be combined with a link.') : ''
|
|
445
|
-
})))), createElement(InspectorControls, {
|
|
441
|
+
}))), createElement(InspectorControls, {
|
|
446
442
|
group: "advanced"
|
|
447
443
|
}, createElement(TextControl, {
|
|
448
444
|
__nextHasNoMarginBottom: true,
|
|
@@ -465,6 +461,7 @@ export default function Image({
|
|
|
465
461
|
defaultedAlt = __('This image has an empty alt attribute');
|
|
466
462
|
}
|
|
467
463
|
const borderProps = useBorderProps(attributes);
|
|
464
|
+
const shadowProps = getShadowClassesAndStyles(attributes);
|
|
468
465
|
const isRounded = attributes.className?.includes('is-style-rounded');
|
|
469
466
|
let img =
|
|
470
467
|
// Disable reason: Image itself is not meant to be interactive, but
|
|
@@ -486,7 +483,8 @@ export default function Image({
|
|
|
486
483
|
width: width && height || aspectRatio ? '100%' : undefined,
|
|
487
484
|
height: width && height || aspectRatio ? '100%' : undefined,
|
|
488
485
|
objectFit: scale,
|
|
489
|
-
...borderProps.style
|
|
486
|
+
...borderProps.style,
|
|
487
|
+
...shadowProps.style
|
|
490
488
|
}
|
|
491
489
|
}), temporaryURL && createElement(Spinner, null))
|
|
492
490
|
/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
|
|
@@ -579,7 +577,7 @@ export default function Image({
|
|
|
579
577
|
width: currentWidth !== null && currentWidth !== void 0 ? currentWidth : 'auto',
|
|
580
578
|
height: currentHeight !== null && currentHeight !== void 0 ? currentHeight : 'auto'
|
|
581
579
|
},
|
|
582
|
-
showHandle:
|
|
580
|
+
showHandle: isSingleSelected,
|
|
583
581
|
minWidth: minWidth,
|
|
584
582
|
maxWidth: maxWidthBuffer,
|
|
585
583
|
minHeight: minHeight,
|
|
@@ -616,10 +614,10 @@ export default function Image({
|
|
|
616
614
|
return createElement(Fragment, null, !temporaryURL && controls, img, createElement(Caption, {
|
|
617
615
|
attributes: attributes,
|
|
618
616
|
setAttributes: setAttributes,
|
|
619
|
-
isSelected:
|
|
617
|
+
isSelected: isSingleSelected,
|
|
620
618
|
insertBlocksAfter: insertBlocksAfter,
|
|
621
619
|
label: __('Image caption text'),
|
|
622
|
-
showToolbarButton:
|
|
620
|
+
showToolbarButton: isSingleSelected && hasNonContentControls
|
|
623
621
|
}));
|
|
624
622
|
}
|
|
625
623
|
//# sourceMappingURL=image.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isBlobURL","ExternalLink","ResizableBox","Spinner","TextareaControl","ToggleControl","TextControl","ToolbarButton","ToolbarGroup","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","useViewportMatch","useSelect","useDispatch","BlockControls","InspectorControls","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","useSettings","__experimentalImageEditor","ImageEditor","__experimentalUseBorderProps","useBorderProps","privateApis","blockEditorPrivateApis","useEffect","useMemo","useState","useRef","__","_x","sprintf","isRTL","getFilename","switchToBlockType","crop","overlayText","upload","noticesStore","coreStore","unlock","createUpgradedEmbedBlock","useClientWidth","isExternalImage","Caption","TOOLSPANEL_DROPDOWNMENU_PROPS","MIN_SIZE","ALLOWED_MEDIA_TYPES","evalAspectRatio","DimensionsTool","ResolutionTool","scaleOptions","value","label","help","ImageWrapper","href","children","createElement","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","allowResize","getBlock","image","select","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","multiImageSelection","getBlockRootClientId","getMultiSelectedBlockClientIds","getBlockName","getSettings","canInsertBlockType","rootClientId","settings","multiSelectedClientIds","length","every","_clientId","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","hasNonContentControls","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","canUploadMedia","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","lightboxSetting","showLightboxToggle","allowEditing","lightboxChecked","enabled","lightboxToggleDisabled","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","dropdownMenuProps","lockUrlControls","lockAltControls","lockTitleControls","getBlockBindingsSource","urlBinding","altBinding","titleBinding","bindings","source","lockAttributesEditing","controls","Fragment","group","onChangeUrl","mediaUrl","mediaLink","link","icon","mediaId","mediaURL","accept","onSelect","isShownByDefault","hasValue","onDeselect","disabled","__nextHasNoMarginBottom","options","checked","newValue","filename","defaultedAlt","borderProps","isRounded","className","src","onLoad","target","ref","objectFit","fallbackClientWidth","onSaveImage","imageAttributes","onFinishEditing","numericRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled={ true }\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected ]\n\t);\n\n\tconst {\n\t\tcanInsertCover,\n\t\timageEditing,\n\t\timageSizes,\n\t\tmaxWidth,\n\t\tmediaUpload,\n\t\tmultiImageSelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst canUploadMedia = !! mediaUpload;\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSelected ||\n\t\t\t! canUploadMedia\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob, canUploadMedia ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxToggle =\n\t\t!! lightbox || lightboxSetting?.allowEditing === true;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst lightboxToggleDisabled =\n\t\tlinkDestination && linkDestination !== 'none';\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockAltControls = false,\n\t\tlockTitleControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\tgetBlockBindingsSource( urlBinding?.source?.name )\n\t\t\t\t\t\t?.lockAttributesEditing === true,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\tgetBlockBindingsSource( altBinding?.source?.name )\n\t\t\t\t\t\t?.lockAttributesEditing === true,\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\tgetBlockBindingsSource( titleBinding?.source?.name )\n\t\t\t\t\t\t?.lockAttributesEditing === true,\n\t\t\t};\n\t\t},\n\t\t[ isSelected ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! multiImageSelection &&\n\t\t\t\t\t! isEditingImage &&\n\t\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection &&\n\t\t\t\t! isEditingImage &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\t\t\t{ ! multiImageSelection && externalBlob && (\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={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload image to media library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Connected to a custom field'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showLightboxToggle && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! lightbox }\n\t\t\t\t\t\t\tlabel={ __( 'Expand on click' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { lightbox: undefined } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Expand on click' ) }\n\t\t\t\t\t\t\t\tchecked={ lightboxChecked }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlightbox: { enabled: newValue },\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ lightboxToggleDisabled }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlightboxToggleDisabled\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'“Expand on click” scales the image up, and can’t be combined with a link.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ __( 'Connected to a custom field' ) }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! width && ! height && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\t! multiImageSelection && hasNonContentControls\n\t\t\t\t}\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["isBlobURL","ExternalLink","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","ToolbarGroup","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","useViewportMatch","useSelect","useDispatch","BlockControls","InspectorControls","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","useSettings","__experimentalImageEditor","ImageEditor","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","privateApis","blockEditorPrivateApis","useEffect","useMemo","useState","useRef","__","_x","sprintf","isRTL","getFilename","switchToBlockType","crop","overlayText","upload","noticesStore","coreStore","unlock","createUpgradedEmbedBlock","useClientWidth","isExternalImage","Caption","TOOLSPANEL_DROPDOWNMENU_PROPS","MIN_SIZE","ALLOWED_MEDIA_TYPES","evalAspectRatio","DimensionsTool","ResolutionTool","scaleOptions","value","label","help","ImageWrapper","href","children","createElement","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","allowResize","getBlock","getSettings","image","select","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","hasNonContentControls","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","showLightboxSetting","allowEditing","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","dropdownMenuProps","lockUrlControls","lockHrefControls","lockAltControls","lockTitleControls","getBlockBindingsSource","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","bindings","hasParentPattern","length","source","lockAttributesEditing","controls","Fragment","group","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","icon","mediaId","mediaURL","accept","onSelect","isShownByDefault","hasValue","onDeselect","disabled","__nextHasNoMarginBottom","options","filename","defaultedAlt","borderProps","shadowProps","isRounded","className","src","onLoad","target","ref","objectFit","fallbackClientWidth","onSaveImage","imageAttributes","onFinishEditing","numericRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled={ true }\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = isSingleSelected && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t!! lightbox || lightboxSetting?.allowEditing === true;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockTitleControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst { getBlockBindingsSource, getBlockParentsByBlockName } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\tgetBlockBindingsSource( urlBinding?.source )\n\t\t\t\t\t\t?.lockAttributesEditing === true,\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\tgetBlockBindingsSource( altBinding?.source )\n\t\t\t\t\t\t?.lockAttributesEditing === true,\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\tgetBlockBindingsSource( titleBinding?.source )\n\t\t\t\t\t\t?.lockAttributesEditing === true,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ isSingleSelected &&\n\t\t\t\t\t! isEditingImage &&\n\t\t\t\t\t! lockHrefControls &&\n\t\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isSingleSelected && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\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={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Connected to a custom field'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ __( 'Connected to a custom field' ) }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! width && ! height && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={ isSingleSelected && hasNonContentControls }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -124,10 +124,14 @@ const metadata = {
|
|
|
124
124
|
radius: true,
|
|
125
125
|
width: true
|
|
126
126
|
}
|
|
127
|
+
},
|
|
128
|
+
shadow: {
|
|
129
|
+
__experimentalSkipSerialization: true
|
|
127
130
|
}
|
|
128
131
|
},
|
|
129
132
|
selectors: {
|
|
130
133
|
border: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
|
|
134
|
+
shadow: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
|
|
131
135
|
filter: {
|
|
132
136
|
duotone: ".wp-block-image img, .wp-block-image .components-placeholder"
|
|
133
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","image","icon","initBlock","deprecated","edit","metadata","$schema","apiVersion","name","title","category","usesContext","description","keywords","textdomain","attributes","url","type","source","selector","attribute","__experimentalRole","alt","caption","lightbox","enabled","href","rel","linkClass","id","width","height","aspectRatio","scale","sizeSlug","linkDestination","linkTarget","supports","interactivity","align","anchor","color","text","background","filter","duotone","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","selectors","border","styles","label","isDefault","editorStyle","style","save","transforms","settings","example","__experimentalLabel","context","customName","getEditWrapperProps","init"],"sources":["@wordpress/block-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsizeSlug: 'large',\n\t\t\turl: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',\n\t\t\t// translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.\n\t\t\tcaption: __( 'Mont Blanc appears—still, snowy, and serene.' ),\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\tconst { caption, alt, url } = attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn __( 'Empty' );\n\t\t\t}\n\n\t\t\tif ( ! alt ) {\n\t\t\t\treturn caption || '';\n\t\t\t}\n\n\t\t\t// This is intended to be read by a screen reader.\n\t\t\t// A period simply means a pause, no need to translate it.\n\t\t\treturn alt + ( caption ? '. ' + caption : '' );\n\t\t}\n\t},\n\tgetEditWrapperProps( attributes ) {\n\t\treturn {\n\t\t\t'data-align': attributes.align,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,IAAI,QAAQ,kBAAkB;;AAEhD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAC,GAAA;MAAAL,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAA;MAAAC,kBAAA;IAAA;IAAAE,OAAA;MAAAN,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAE,kBAAA;IAAA;IAAAG,QAAA;MAAAP,IAAA;MAAAQ,OAAA;QAAAR,IAAA;MAAA;IAAA;IAAAR,KAAA;MAAAQ,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAK,IAAA;MAAAT,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAM,GAAA;MAAAV,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;IAAAQ,SAAA;MAAAX,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;IAAAS,EAAA;MAAAZ,IAAA;MAAAI,kBAAA;IAAA;IAAAS,KAAA;MAAAb,IAAA;IAAA;IAAAc,MAAA;MAAAd,IAAA;IAAA;IAAAe,WAAA;MAAAf,IAAA;IAAA;IAAAgB,KAAA;MAAAhB,IAAA;IAAA;IAAAiB,QAAA;MAAAjB,IAAA;IAAA;IAAAkB,eAAA;MAAAlB,IAAA;IAAA;IAAAmB,UAAA;MAAAnB,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;EAAA;EAAAiB,QAAA;IAAAC,aAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,KAAA;MAAAC,IAAA;MAAAC,UAAA;IAAA;IAAAC,MAAA;MAAAC,OAAA;IAAA;IAAAC,oBAAA;MAAAL,KAAA;MAAAM,MAAA;MAAAjB,KAAA;MAAAkB,+BAAA;MAAAC,6BAAA;QAAAR,KAAA;QAAAM,MAAA;QAAAjB,KAAA;MAAA;IAAA;EAAA;
|
|
1
|
+
{"version":3,"names":["__","image","icon","initBlock","deprecated","edit","metadata","$schema","apiVersion","name","title","category","usesContext","description","keywords","textdomain","attributes","url","type","source","selector","attribute","__experimentalRole","alt","caption","lightbox","enabled","href","rel","linkClass","id","width","height","aspectRatio","scale","sizeSlug","linkDestination","linkTarget","supports","interactivity","align","anchor","color","text","background","filter","duotone","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","shadow","selectors","border","styles","label","isDefault","editorStyle","style","save","transforms","settings","example","__experimentalLabel","context","customName","getEditWrapperProps","init"],"sources":["@wordpress/block-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsizeSlug: 'large',\n\t\t\turl: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',\n\t\t\t// translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.\n\t\t\tcaption: __( 'Mont Blanc appears—still, snowy, and serene.' ),\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\tconst { caption, alt, url } = attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn __( 'Empty' );\n\t\t\t}\n\n\t\t\tif ( ! alt ) {\n\t\t\t\treturn caption || '';\n\t\t\t}\n\n\t\t\t// This is intended to be read by a screen reader.\n\t\t\t// A period simply means a pause, no need to translate it.\n\t\t\treturn alt + ( caption ? '. ' + caption : '' );\n\t\t}\n\t},\n\tgetEditWrapperProps( attributes ) {\n\t\treturn {\n\t\t\t'data-align': attributes.align,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import classnames from 'classnames';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { RichText, useBlockProps, __experimentalGetElementClassName, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles } from '@wordpress/block-editor';
|
|
10
|
+
import { RichText, useBlockProps, __experimentalGetElementClassName, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles } from '@wordpress/block-editor';
|
|
11
11
|
export default function save({
|
|
12
12
|
attributes
|
|
13
13
|
}) {
|
|
@@ -30,6 +30,7 @@ export default function save({
|
|
|
30
30
|
} = attributes;
|
|
31
31
|
const newRel = !rel ? undefined : rel;
|
|
32
32
|
const borderProps = getBorderClassesAndStyles(attributes);
|
|
33
|
+
const shadowProps = getShadowClassesAndStyles(attributes);
|
|
33
34
|
const classes = classnames({
|
|
34
35
|
// All other align classes are handled by block supports.
|
|
35
36
|
// `{ align: 'none' }` is unique to transforms for the image block.
|
|
@@ -47,6 +48,7 @@ export default function save({
|
|
|
47
48
|
className: imageClasses || undefined,
|
|
48
49
|
style: {
|
|
49
50
|
...borderProps.style,
|
|
51
|
+
...shadowProps.style,
|
|
50
52
|
aspectRatio,
|
|
51
53
|
objectFit: scale,
|
|
52
54
|
width,
|