@wordpress/block-library 8.9.0 → 8.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/block/edit.native.js +17 -10
- package/build/block/edit.native.js.map +1 -1
- package/build/code/index.js +1 -0
- package/build/code/index.js.map +1 -1
- package/build/column/index.js +1 -1
- package/build/columns/transforms.js +1 -5
- package/build/columns/transforms.js.map +1 -1
- package/build/comment-author-name/edit.js +1 -1
- package/build/comment-author-name/edit.js.map +1 -1
- package/build/comment-edit-link/edit.js +1 -1
- package/build/comment-edit-link/edit.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +3 -3
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/index.js +1 -1
- package/build/cover/variations.js +1 -1
- package/build/cover/variations.js.map +1 -1
- package/build/details/edit.js +19 -5
- package/build/details/edit.js.map +1 -1
- package/build/details/index.js +14 -10
- package/build/details/index.js.map +1 -1
- package/build/details/save.js +4 -1
- package/build/details/save.js.map +1 -1
- package/build/embed/variations.js +2 -2
- package/build/embed/variations.js.map +1 -1
- package/build/file/interactivity.js +19 -0
- package/build/file/interactivity.js.map +1 -0
- package/build/file/{utils.js → utils/index.js} +1 -1
- package/build/file/utils/index.js.map +1 -0
- package/build/file/view.js +1 -1
- package/build/file/view.js.map +1 -1
- package/build/freeform/modal.js +20 -17
- package/build/freeform/modal.js.map +1 -1
- package/build/gallery/edit.js +2 -8
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/v1/edit.js +1 -7
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js +1 -3
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/group/transforms.js +0 -5
- package/build/group/transforms.js.map +1 -1
- package/build/image/deprecated.js +2 -4
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +13 -11
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +7 -12
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +3 -0
- package/build/image/index.js.map +1 -1
- package/build/image/interactivity.js +102 -0
- package/build/image/interactivity.js.map +1 -0
- package/build/image/save.js +2 -4
- package/build/image/save.js.map +1 -1
- package/build/image/utils.js +10 -18
- package/build/image/utils.js.map +1 -1
- package/build/index.js +0 -6
- package/build/index.js.map +1 -1
- package/build/index.native.js +1 -1
- package/build/index.native.js.map +1 -1
- package/build/latest-posts/edit.native.js +1 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/edit.js +1 -1
- package/build/list/edit.js.map +1 -1
- package/build/list-item/edit.native.js +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/transforms.js +4 -1
- package/build/list-item/transforms.js.map +1 -1
- package/build/list-item/utils.js +5 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/loginout/index.js +11 -1
- package/build/loginout/index.js.map +1 -1
- package/build/media-text/deprecated.js +4 -6
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +13 -11
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/media-container.js +3 -3
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/save.js +1 -3
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/constants.js +15 -0
- package/build/navigation/constants.js.map +1 -0
- package/build/navigation/edit/index.js +16 -26
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +5 -7
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/leaf-more-menu.js +148 -0
- package/build/navigation/edit/leaf-more-menu.js.map +1 -0
- package/build/navigation/edit/menu-inspector-controls.js +53 -8
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +6 -6
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +12 -25
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/interactivity.js +157 -0
- package/build/navigation/interactivity.js.map +1 -0
- package/build/navigation-link/edit.js +7 -5
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/update-attributes.js +5 -5
- package/build/navigation-link/update-attributes.js.map +1 -1
- package/build/navigation-submenu/edit.js +7 -5
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/paragraph/index.js +5 -1
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +5 -1
- package/build/paragraph/transforms.js.map +1 -1
- package/build/pattern/edit.js +42 -8
- package/build/pattern/edit.js.map +1 -1
- package/build/pattern/index.js +12 -5
- package/build/pattern/index.js.map +1 -1
- package/build/pattern/v1/edit.js +57 -0
- package/build/pattern/v1/edit.js.map +1 -0
- package/build/post-author-name/edit.js +1 -1
- package/build/post-author-name/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -2
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/overlay.js +5 -0
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-title/edit.js +24 -7
- package/build/post-title/edit.js.map +1 -1
- package/build/preformatted/edit.native.js +3 -2
- package/build/preformatted/edit.native.js.map +1 -1
- package/build/quote/transforms.js +23 -37
- package/build/quote/transforms.js.map +1 -1
- package/build/read-more/edit.js +1 -1
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +9 -1
- package/build/search/edit.js.map +1 -1
- package/build/site-title/edit/index.js +1 -1
- package/build/site-title/edit/index.js.map +1 -1
- package/build/social-link/edit.js +21 -4
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.js +2 -2
- package/build/social-links/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -7
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -2
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/utils/interactivity/constants.js +9 -0
- package/build/utils/interactivity/constants.js.map +1 -0
- package/build/utils/interactivity/directives.js +236 -0
- package/build/utils/interactivity/directives.js.map +1 -0
- package/build/utils/interactivity/hooks.js +176 -0
- package/build/utils/interactivity/hooks.js.map +1 -0
- package/build/utils/interactivity/hydration.js +34 -0
- package/build/utils/interactivity/hydration.js.map +1 -0
- package/build/utils/interactivity/index.js +34 -0
- package/build/utils/interactivity/index.js.map +1 -0
- package/build/utils/interactivity/portals.js +108 -0
- package/build/utils/interactivity/portals.js.map +1 -0
- package/build/utils/interactivity/store.js +67 -0
- package/build/utils/interactivity/store.js.map +1 -0
- package/build/utils/interactivity/utils.js +87 -0
- package/build/utils/interactivity/utils.js.map +1 -0
- package/build/utils/interactivity/vdom.js +109 -0
- package/build/utils/interactivity/vdom.js.map +1 -0
- package/build-module/block/edit.native.js +7 -1
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/code/index.js +1 -0
- package/build-module/code/index.js.map +1 -1
- package/build-module/column/index.js +1 -1
- package/build-module/columns/transforms.js +1 -5
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/comment-author-name/edit.js +1 -1
- package/build-module/comment-author-name/edit.js.map +1 -1
- package/build-module/comment-edit-link/edit.js +1 -1
- package/build-module/comment-edit-link/edit.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +3 -3
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/index.js +1 -1
- package/build-module/cover/variations.js +1 -1
- package/build-module/cover/variations.js.map +1 -1
- package/build-module/details/edit.js +20 -6
- package/build-module/details/edit.js.map +1 -1
- package/build-module/details/index.js +14 -10
- package/build-module/details/index.js.map +1 -1
- package/build-module/details/save.js +5 -2
- package/build-module/details/save.js.map +1 -1
- package/build-module/embed/variations.js +2 -2
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/file/interactivity.js +15 -0
- package/build-module/file/interactivity.js.map +1 -0
- package/build-module/file/{utils.js → utils/index.js} +1 -1
- package/build-module/file/utils/index.js.map +1 -0
- package/build-module/file/view.js +1 -1
- package/build-module/file/view.js.map +1 -1
- package/build-module/freeform/modal.js +19 -18
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/gallery/edit.js +2 -8
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/v1/edit.js +1 -6
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.native.js +1 -2
- package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
- package/build-module/group/transforms.js +0 -5
- package/build-module/group/transforms.js.map +1 -1
- package/build-module/image/deprecated.js +2 -3
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +12 -11
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +7 -11
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +3 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/interactivity.js +99 -0
- package/build-module/image/interactivity.js.map +1 -0
- package/build-module/image/save.js +2 -3
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/utils.js +10 -17
- package/build-module/image/utils.js.map +1 -1
- package/build-module/index.js +0 -4
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +1 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +1 -2
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/edit.js +1 -1
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/transforms.js +5 -2
- package/build-module/list-item/transforms.js.map +1 -1
- package/build-module/list-item/utils.js +5 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/loginout/index.js +11 -1
- package/build-module/loginout/index.js.map +1 -1
- package/build-module/media-text/deprecated.js +4 -5
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +13 -12
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/media-container.js +3 -3
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/save.js +1 -2
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/constants.js +6 -0
- package/build-module/navigation/constants.js.map +1 -0
- package/build-module/navigation/edit/index.js +18 -27
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -4
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/leaf-more-menu.js +132 -0
- package/build-module/navigation/edit/leaf-more-menu.js.map +1 -0
- package/build-module/navigation/edit/menu-inspector-controls.js +52 -9
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +7 -7
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -20
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/interactivity.js +154 -0
- package/build-module/navigation/interactivity.js.map +1 -0
- package/build-module/navigation-link/edit.js +7 -5
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +4 -4
- package/build-module/navigation-link/update-attributes.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +7 -5
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/paragraph/index.js +5 -1
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +5 -1
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/pattern/edit.js +42 -9
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/pattern/index.js +12 -3
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/pattern/v1/edit.js +48 -0
- package/build-module/pattern/v1/edit.js.map +1 -0
- package/build-module/post-author-name/edit.js +1 -1
- package/build-module/post-author-name/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -2
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +5 -0
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-title/edit.js +23 -7
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/preformatted/edit.native.js +3 -2
- package/build-module/preformatted/edit.native.js.map +1 -1
- package/build-module/quote/transforms.js +23 -37
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/read-more/edit.js +1 -1
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +9 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/site-title/edit/index.js +1 -1
- package/build-module/site-title/edit/index.js.map +1 -1
- package/build-module/social-link/edit.js +20 -5
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.js +2 -2
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -6
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +1 -1
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/utils/interactivity/constants.js +2 -0
- package/build-module/utils/interactivity/constants.js.map +1 -0
- package/build-module/utils/interactivity/directives.js +220 -0
- package/build-module/utils/interactivity/directives.js.map +1 -0
- package/build-module/utils/interactivity/hooks.js +162 -0
- package/build-module/utils/interactivity/hooks.js.map +1 -0
- package/build-module/utils/interactivity/hydration.js +21 -0
- package/build-module/utils/interactivity/hydration.js.map +1 -0
- package/build-module/utils/interactivity/index.js +17 -0
- package/build-module/utils/interactivity/index.js.map +1 -0
- package/build-module/utils/interactivity/portals.js +100 -0
- package/build-module/utils/interactivity/portals.js.map +1 -0
- package/build-module/utils/interactivity/store.js +56 -0
- package/build-module/utils/interactivity/store.js.map +1 -0
- package/build-module/utils/interactivity/utils.js +75 -0
- package/build-module/utils/interactivity/utils.js.map +1 -0
- package/build-module/utils/interactivity/vdom.js +97 -0
- package/build-module/utils/interactivity/vdom.js.map +1 -0
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/style-rtl.css +3 -2
- package/build-style/cover/style.css +3 -2
- package/build-style/{details-summary → details}/editor-rtl.css +1 -1
- package/build-style/{details-summary → details}/editor.css +1 -1
- package/build-style/details/style-rtl.css +14 -0
- package/build-style/details/style.css +14 -0
- package/build-style/editor-rtl.css +71 -5
- package/build-style/editor.css +71 -5
- package/build-style/file/editor-rtl.css +3 -0
- package/build-style/file/editor.css +3 -0
- package/build-style/freeform/editor-rtl.css +29 -0
- package/build-style/freeform/editor.css +29 -0
- package/build-style/gallery/editor-rtl.css +0 -4
- package/build-style/gallery/editor.css +0 -4
- package/build-style/gallery/style-rtl.css +2 -4
- package/build-style/gallery/style.css +2 -4
- package/build-style/image/style-rtl.css +98 -0
- package/build-style/image/style.css +98 -0
- package/build-style/navigation/editor-rtl.css +36 -0
- package/build-style/navigation/editor.css +36 -0
- package/build-style/post-comments-form/style-rtl.css +1 -1
- package/build-style/post-comments-form/style.css +1 -1
- package/build-style/search/editor-rtl.css +1 -0
- package/build-style/search/editor.css +1 -0
- package/build-style/site-logo/editor-rtl.css +1 -0
- package/build-style/site-logo/editor.css +1 -0
- package/build-style/style-rtl.css +116 -10
- package/build-style/style.css +116 -10
- package/build-style/video/style-rtl.css +1 -2
- package/build-style/video/style.css +1 -2
- package/package.json +37 -33
- package/src/block/edit.native.js +18 -4
- package/src/buttons/test/edit.native.js +0 -9
- package/src/code/block.json +1 -0
- package/src/column/block.json +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/columns/test/transforms.native.js +3 -5
- package/src/columns/transforms.js +2 -8
- package/src/comment-author-name/edit.js +1 -1
- package/src/comment-edit-link/edit.js +1 -1
- package/src/comment-template/index.php +8 -7
- package/src/comments/index.php +1 -6
- package/src/cover/block.json +1 -1
- package/src/cover/edit/inspector-controls.js +56 -54
- package/src/cover/edit/resizable-cover-popover.js +2 -1
- package/src/cover/style.scss +5 -0
- package/src/cover/test/edit.js +56 -2
- package/src/cover/variations.js +1 -3
- package/src/details/block.json +8 -6
- package/src/details/edit.js +27 -5
- package/src/details/editor.scss +3 -0
- package/src/details/index.js +10 -5
- package/src/details/save.js +5 -1
- package/src/details/style.scss +16 -0
- package/src/editor.scss +1 -1
- package/src/embed/variations.js +2 -2
- package/src/file/editor.scss +4 -0
- package/src/file/interactivity.js +15 -0
- package/src/file/view.js +4 -1
- package/src/freeform/editor.scss +45 -0
- package/src/freeform/modal.js +22 -19
- package/src/gallery/edit.js +5 -8
- package/src/gallery/editor.scss +0 -6
- package/src/gallery/test/index.native.js +48 -3
- package/src/gallery/v1/edit.js +1 -6
- package/src/gallery/v1/gallery-image.native.js +1 -2
- package/src/group/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/group/test/transforms.native.js +3 -5
- package/src/group/transforms.js +0 -7
- package/src/image/block.json +3 -0
- package/src/image/deprecated.js +2 -3
- package/src/image/edit.js +18 -18
- package/src/image/image.js +8 -11
- package/src/image/index.php +75 -2
- package/src/image/interactivity.js +113 -0
- package/src/image/save.js +4 -3
- package/src/image/style.scss +113 -0
- package/src/image/test/edit.native.js +38 -16
- package/src/image/utils.js +11 -18
- package/src/index.js +0 -4
- package/src/index.native.js +1 -0
- package/src/latest-posts/edit.native.js +1 -4
- package/src/list/edit.js +1 -1
- package/src/list/test/edit.native.js +80 -1
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/transforms.js +4 -2
- package/src/loginout/block.json +11 -1
- package/src/media-text/deprecated.js +4 -5
- package/src/media-text/edit.js +12 -10
- package/src/media-text/media-container.js +3 -3
- package/src/media-text/save.js +1 -2
- package/src/navigation/constants.js +21 -0
- package/src/navigation/edit/index.js +71 -83
- package/src/navigation/edit/inner-blocks.js +6 -16
- package/src/navigation/edit/leaf-more-menu.js +170 -0
- package/src/navigation/edit/menu-inspector-controls.js +78 -10
- package/src/navigation/edit/navigation-menu-delete-control.js +29 -29
- package/src/navigation/edit/unsaved-inner-blocks.js +12 -40
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
- package/src/navigation/editor.scss +10 -0
- package/src/navigation/index.php +213 -204
- package/src/navigation/interactivity.js +151 -0
- package/src/navigation-link/edit.js +9 -3
- package/src/navigation-link/update-attributes.js +2 -2
- package/src/navigation-submenu/edit.js +9 -3
- package/src/paragraph/block.json +5 -1
- package/src/pattern/block.json +4 -0
- package/src/pattern/edit.js +53 -16
- package/src/pattern/index.js +5 -4
- package/src/pattern/index.php +14 -1
- package/src/pattern/v1/edit.js +57 -0
- package/src/post-author-name/edit.js +1 -1
- package/src/post-comments-form/style.scss +3 -1
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-featured-image/index.php +1 -1
- package/src/post-featured-image/overlay.js +4 -0
- package/src/post-terms/index.php +2 -2
- package/src/post-title/edit.js +57 -44
- package/src/preformatted/edit.native.js +1 -3
- package/src/quote/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/quote/test/transforms.native.js +3 -5
- package/src/quote/transforms.js +9 -19
- package/src/read-more/edit.js +1 -1
- package/src/search/edit.js +9 -4
- package/src/search/editor.scss +1 -0
- package/src/site-logo/editor.scss +2 -1
- package/src/site-title/edit/index.js +1 -1
- package/src/social-link/edit.js +51 -26
- package/src/social-links/edit.js +33 -31
- package/src/style.scss +0 -1
- package/src/template-part/edit/index.js +4 -6
- package/src/template-part/edit/utils/hooks.js +1 -1
- package/src/template-part/index.php +22 -7
- package/src/utils/interactivity/constants.js +1 -0
- package/src/utils/interactivity/directives.js +200 -0
- package/src/utils/interactivity/hooks.js +145 -0
- package/src/utils/interactivity/hydration.js +22 -0
- package/src/utils/interactivity/index.js +17 -0
- package/src/utils/interactivity/portals.js +98 -0
- package/src/utils/interactivity/store.js +45 -0
- package/src/utils/interactivity/utils.js +66 -0
- package/src/utils/interactivity/vdom.js +94 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/details-content/edit.js +0 -34
- package/build/details-content/edit.js.map +0 -1
- package/build/details-content/index.js +0 -94
- package/build/details-content/index.js.map +0 -1
- package/build/details-content/save.js +0 -20
- package/build/details-content/save.js.map +0 -1
- package/build/details-summary/edit.js +0 -42
- package/build/details-summary/edit.js.map +0 -1
- package/build/details-summary/index.js +0 -97
- package/build/details-summary/index.js.map +0 -1
- package/build/details-summary/save.js +0 -24
- package/build/details-summary/save.js.map +0 -1
- package/build/file/utils.js.map +0 -1
- package/build-module/details-content/edit.js +0 -23
- package/build-module/details-content/edit.js.map +0 -1
- package/build-module/details-content/index.js +0 -76
- package/build-module/details-content/index.js.map +0 -1
- package/build-module/details-content/save.js +0 -11
- package/build-module/details-content/save.js.map +0 -1
- package/build-module/details-summary/edit.js +0 -30
- package/build-module/details-summary/edit.js.map +0 -1
- package/build-module/details-summary/index.js +0 -79
- package/build-module/details-summary/index.js.map +0 -1
- package/build-module/details-summary/save.js +0 -16
- package/build-module/details-summary/save.js.map +0 -1
- package/build-module/file/utils.js.map +0 -1
- package/build-style/details-summary/style-rtl.css +0 -91
- package/build-style/details-summary/style.css +0 -91
- package/src/details-content/block.json +0 -50
- package/src/details-content/edit.js +0 -29
- package/src/details-content/index.js +0 -23
- package/src/details-content/save.js +0 -12
- package/src/details-summary/block.json +0 -53
- package/src/details-summary/edit.js +0 -27
- package/src/details-summary/editor.scss +0 -3
- package/src/details-summary/index.js +0 -23
- package/src/details-summary/save.js +0 -13
- package/src/details-summary/style.scss +0 -3
- /package/src/file/{utils.js → utils/index.js} +0 -0
package/src/image/index.php
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* @return string Returns the block content with the data-id attribute added.
|
|
15
15
|
*/
|
|
16
16
|
function render_block_core_image( $attributes, $content ) {
|
|
17
|
+
|
|
17
18
|
$processor = new WP_HTML_Tag_Processor( $content );
|
|
18
19
|
$processor->next_tag( 'img' );
|
|
19
20
|
|
|
@@ -27,16 +28,88 @@ function render_block_core_image( $attributes, $content ) {
|
|
|
27
28
|
// which now wraps Image Blocks within innerBlocks.
|
|
28
29
|
// The data-id attribute is added in a core/gallery `render_block_data` hook.
|
|
29
30
|
$processor->set_attribute( 'data-id', $attributes['data-id'] );
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
$link_destination = isset( $attributes['linkDestination'] ) ? $attributes['linkDestination'] : 'none';
|
|
34
|
+
|
|
35
|
+
// Get the lightbox setting from the block attributes.
|
|
36
|
+
if ( isset( $attributes['behaviors']['lightbox'] ) ) {
|
|
37
|
+
$lightbox = $attributes['behaviors']['lightbox'];
|
|
38
|
+
// If the lightbox setting is not set in the block attributes, get it from the theme.json file.
|
|
39
|
+
} else {
|
|
40
|
+
$theme_data = WP_Theme_JSON_Resolver_Gutenberg::get_merged_data()->get_data();
|
|
41
|
+
if ( isset( $theme_data['behaviors']['blocks']['core/image']['lightbox'] ) ) {
|
|
42
|
+
$lightbox = $theme_data['behaviors']['blocks']['core/image']['lightbox'];
|
|
43
|
+
} else {
|
|
44
|
+
$lightbox = false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
$experiments = get_option( 'gutenberg-experiments' );
|
|
49
|
+
|
|
50
|
+
if ( ! empty( $experiments['gutenberg-interactivity-api-core-blocks'] ) && 'none' === $link_destination && $lightbox ) {
|
|
51
|
+
|
|
52
|
+
$aria_label = 'Open image lightbox';
|
|
53
|
+
if ( $processor->get_attribute( 'alt' ) ) {
|
|
54
|
+
$aria_label .= ' : ' . $processor->get_attribute( 'alt' );
|
|
55
|
+
}
|
|
30
56
|
$content = $processor->get_updated_html();
|
|
57
|
+
|
|
58
|
+
// Wrap the image in the body content with a button.
|
|
59
|
+
$img = null;
|
|
60
|
+
preg_match( '/<img[^>]+>/', $content, $img );
|
|
61
|
+
$button = '<div class="img-container">
|
|
62
|
+
<button aria-haspopup="dialog" aria-label="' . $aria_label . '" data-wp-on.click="actions.core.image.showLightbox"></button>'
|
|
63
|
+
. $img[0] .
|
|
64
|
+
'</div>';
|
|
65
|
+
$body_content = preg_replace( '/<img[^>]+>/', $button, $content );
|
|
66
|
+
|
|
67
|
+
// For the modal, set an ID on the image to be used for an aria-labelledby attribute.
|
|
68
|
+
$modal_content = new WP_HTML_Tag_Processor( $content );
|
|
69
|
+
$modal_content->next_tag( 'img' );
|
|
70
|
+
$image_lightbox_id = $modal_content->get_attribute( 'class' ) . '-lightbox';
|
|
71
|
+
$modal_content->set_attribute( 'id', $image_lightbox_id );
|
|
72
|
+
$modal_content = $modal_content->get_updated_html();
|
|
73
|
+
|
|
74
|
+
$background_color = wp_get_global_styles( array( 'color', 'background' ) );
|
|
75
|
+
$close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="30" height="30" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path></svg>';
|
|
76
|
+
|
|
77
|
+
return
|
|
78
|
+
<<<HTML
|
|
79
|
+
<div class="wp-lightbox-container"
|
|
80
|
+
data-wp-island
|
|
81
|
+
data-wp-context='{ "core": { "image": { "initialized": false, "lightboxEnabled": false } } }'>
|
|
82
|
+
$body_content
|
|
83
|
+
<div data-wp-body="" class="wp-lightbox-overlay"
|
|
84
|
+
data-wp-bind.role="selectors.core.image.roleAttribute"
|
|
85
|
+
aria-labelledby="$image_lightbox_id"
|
|
86
|
+
data-wp-class.initialized="context.core.image.initialized"
|
|
87
|
+
data-wp-class.active="context.core.image.lightboxEnabled"
|
|
88
|
+
data-wp-bind.aria-hidden="!context.core.image.lightboxEnabled"
|
|
89
|
+
data-wp-bind.aria-modal="context.core.image.lightboxEnabled"
|
|
90
|
+
data-wp-effect="effects.core.image.initLightbox"
|
|
91
|
+
data-wp-on.keydown="actions.core.image.handleKeydown"
|
|
92
|
+
data-wp-on.mousewheel="actions.core.image.hideLightbox"
|
|
93
|
+
data-wp-on.click="actions.core.image.hideLightbox"
|
|
94
|
+
>
|
|
95
|
+
<button aria-label="Close lightbox" class="close-button" data-wp-on.click="actions.core.image.hideLightbox">
|
|
96
|
+
$close_button_icon
|
|
97
|
+
</button>
|
|
98
|
+
$modal_content
|
|
99
|
+
<div class="scrim" style="background-color: $background_color"></div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
HTML;
|
|
31
103
|
}
|
|
32
|
-
return $content;
|
|
33
|
-
}
|
|
34
104
|
|
|
105
|
+
return $processor->get_updated_html();
|
|
106
|
+
}
|
|
35
107
|
|
|
36
108
|
/**
|
|
37
109
|
* Registers the `core/image` block on server.
|
|
38
110
|
*/
|
|
39
111
|
function register_block_core_image() {
|
|
112
|
+
|
|
40
113
|
register_block_type_from_metadata(
|
|
41
114
|
__DIR__ . '/image',
|
|
42
115
|
array(
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { store } from '../utils/interactivity';
|
|
5
|
+
|
|
6
|
+
const focusableSelectors = [
|
|
7
|
+
'a[href]',
|
|
8
|
+
'area[href]',
|
|
9
|
+
'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
|
|
10
|
+
'select:not([disabled]):not([aria-hidden])',
|
|
11
|
+
'textarea:not([disabled]):not([aria-hidden])',
|
|
12
|
+
'button:not([disabled]):not([aria-hidden])',
|
|
13
|
+
'iframe',
|
|
14
|
+
'object',
|
|
15
|
+
'embed',
|
|
16
|
+
'[contenteditable]',
|
|
17
|
+
'[tabindex]:not([tabindex^="-"])',
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
store( {
|
|
21
|
+
actions: {
|
|
22
|
+
core: {
|
|
23
|
+
image: {
|
|
24
|
+
showLightbox: ( { context } ) => {
|
|
25
|
+
context.core.image.initialized = true;
|
|
26
|
+
context.core.image.lightboxEnabled = true;
|
|
27
|
+
context.core.image.lastFocusedElement =
|
|
28
|
+
window.document.activeElement;
|
|
29
|
+
context.core.image.scrollPosition = window.scrollY;
|
|
30
|
+
document.documentElement.classList.add(
|
|
31
|
+
'has-lightbox-open'
|
|
32
|
+
);
|
|
33
|
+
},
|
|
34
|
+
hideLightbox: async ( { context, event } ) => {
|
|
35
|
+
if ( context.core.image.lightboxEnabled ) {
|
|
36
|
+
// If scrolling, wait a moment before closing the lightbox.
|
|
37
|
+
if (
|
|
38
|
+
event.type === 'mousewheel' &&
|
|
39
|
+
Math.abs(
|
|
40
|
+
window.scrollY -
|
|
41
|
+
context.core.image.scrollPosition
|
|
42
|
+
) < 5
|
|
43
|
+
) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
document.documentElement.classList.remove(
|
|
47
|
+
'has-lightbox-open'
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
context.core.image.lightboxEnabled = false;
|
|
51
|
+
context.core.image.lastFocusedElement.focus();
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
handleKeydown: ( { context, actions, event } ) => {
|
|
55
|
+
if ( context.core.image.lightboxEnabled ) {
|
|
56
|
+
if ( event.key === 'Tab' || event.keyCode === 9 ) {
|
|
57
|
+
// If shift + tab it change the direction
|
|
58
|
+
if (
|
|
59
|
+
event.shiftKey &&
|
|
60
|
+
window.document.activeElement ===
|
|
61
|
+
context.core.image.firstFocusableElement
|
|
62
|
+
) {
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
context.core.image.lastFocusableElement.focus();
|
|
65
|
+
} else if (
|
|
66
|
+
! event.shiftKey &&
|
|
67
|
+
window.document.activeElement ===
|
|
68
|
+
context.core.image.lastFocusableElement
|
|
69
|
+
) {
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
context.core.image.firstFocusableElement.focus();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if ( event.key === 'Escape' || event.keyCode === 27 ) {
|
|
76
|
+
actions.core.image.hideLightbox( {
|
|
77
|
+
context,
|
|
78
|
+
event,
|
|
79
|
+
} );
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
selectors: {
|
|
87
|
+
core: {
|
|
88
|
+
image: {
|
|
89
|
+
roleAttribute: ( { context } ) => {
|
|
90
|
+
return context.core.image.lightboxEnabled ? 'dialog' : '';
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
effects: {
|
|
96
|
+
core: {
|
|
97
|
+
image: {
|
|
98
|
+
initLightbox: async ( { context, ref } ) => {
|
|
99
|
+
if ( context.core.image.lightboxEnabled ) {
|
|
100
|
+
const focusableElements =
|
|
101
|
+
ref.querySelectorAll( focusableSelectors );
|
|
102
|
+
context.core.image.firstFocusableElement =
|
|
103
|
+
focusableElements[ 0 ];
|
|
104
|
+
context.core.image.lastFocusableElement =
|
|
105
|
+
focusableElements[ focusableElements.length - 1 ];
|
|
106
|
+
|
|
107
|
+
ref.querySelector( '.close-button' ).focus();
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
} );
|
package/src/image/save.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
-
import { isEmpty } from 'lodash';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* WordPress dependencies
|
|
@@ -31,7 +30,7 @@ export default function save( { attributes } ) {
|
|
|
31
30
|
title,
|
|
32
31
|
} = attributes;
|
|
33
32
|
|
|
34
|
-
const newRel =
|
|
33
|
+
const newRel = ! rel ? undefined : rel;
|
|
35
34
|
const borderProps = getBorderClassesAndStyles( attributes );
|
|
36
35
|
|
|
37
36
|
const classes = classnames( {
|
|
@@ -39,7 +38,9 @@ export default function save( { attributes } ) {
|
|
|
39
38
|
[ `size-${ sizeSlug }` ]: sizeSlug,
|
|
40
39
|
'is-resized': width || height,
|
|
41
40
|
'has-custom-border':
|
|
42
|
-
!! borderProps.className ||
|
|
41
|
+
!! borderProps.className ||
|
|
42
|
+
( borderProps.style &&
|
|
43
|
+
Object.keys( borderProps.style ).length > 0 ),
|
|
43
44
|
} );
|
|
44
45
|
|
|
45
46
|
const imageClasses = classnames( borderProps.className, {
|
package/src/image/style.scss
CHANGED
|
@@ -151,3 +151,116 @@
|
|
|
151
151
|
.wp-block-image figure {
|
|
152
152
|
margin: 0;
|
|
153
153
|
}
|
|
154
|
+
|
|
155
|
+
.wp-lightbox-container {
|
|
156
|
+
|
|
157
|
+
.img-container {
|
|
158
|
+
position: relative;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
button {
|
|
162
|
+
border: none;
|
|
163
|
+
background: none;
|
|
164
|
+
cursor: zoom-in;
|
|
165
|
+
width: 100%;
|
|
166
|
+
height: 100%;
|
|
167
|
+
position: absolute;
|
|
168
|
+
z-index: 100;
|
|
169
|
+
|
|
170
|
+
&:focus-visible {
|
|
171
|
+
outline: 5px auto #212121;
|
|
172
|
+
outline: 5px auto -webkit-focus-ring-color;
|
|
173
|
+
outline-offset: 5px;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.wp-lightbox-overlay {
|
|
179
|
+
position: fixed;
|
|
180
|
+
top: 0;
|
|
181
|
+
left: 0;
|
|
182
|
+
z-index: 100000;
|
|
183
|
+
overflow: hidden;
|
|
184
|
+
width: 100vw;
|
|
185
|
+
height: 100vh;
|
|
186
|
+
visibility: hidden;
|
|
187
|
+
|
|
188
|
+
.close-button {
|
|
189
|
+
font-size: 40px;
|
|
190
|
+
position: absolute;
|
|
191
|
+
top: 20px;
|
|
192
|
+
right: 20px;
|
|
193
|
+
cursor: pointer;
|
|
194
|
+
z-index: 5000000;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.wp-block-image {
|
|
198
|
+
display: flex;
|
|
199
|
+
justify-content: center;
|
|
200
|
+
align-items: center;
|
|
201
|
+
width: 100%;
|
|
202
|
+
height: 100%;
|
|
203
|
+
z-index: 3000000;
|
|
204
|
+
position: absolute;
|
|
205
|
+
flex-direction: column;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
button {
|
|
209
|
+
border: none;
|
|
210
|
+
background: none;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.scrim {
|
|
214
|
+
width: 100%;
|
|
215
|
+
height: 100%;
|
|
216
|
+
position: absolute;
|
|
217
|
+
z-index: 2000000;
|
|
218
|
+
background-color: rgb(255, 255, 255);
|
|
219
|
+
opacity: 0.9;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
&.initialized {
|
|
223
|
+
animation: both turn-off-visibility 300ms;
|
|
224
|
+
|
|
225
|
+
img {
|
|
226
|
+
animation: both turn-off-visibility 250ms;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
&.active {
|
|
230
|
+
visibility: visible;
|
|
231
|
+
animation: both turn-on-visibility 250ms;
|
|
232
|
+
|
|
233
|
+
img {
|
|
234
|
+
animation: both turn-on-visibility 300ms;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
@keyframes turn-on-visibility {
|
|
241
|
+
0% {
|
|
242
|
+
opacity: 0;
|
|
243
|
+
}
|
|
244
|
+
100% {
|
|
245
|
+
opacity: 1;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
@keyframes turn-off-visibility {
|
|
250
|
+
0% {
|
|
251
|
+
opacity: 1;
|
|
252
|
+
visibility: visible;
|
|
253
|
+
}
|
|
254
|
+
99% {
|
|
255
|
+
opacity: 0;
|
|
256
|
+
visibility: visible;
|
|
257
|
+
}
|
|
258
|
+
100% {
|
|
259
|
+
opacity: 0;
|
|
260
|
+
visibility: hidden;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
html.has-lightbox-open {
|
|
265
|
+
overflow: hidden;
|
|
266
|
+
}
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
getEditorHtml,
|
|
9
9
|
render,
|
|
10
10
|
waitFor,
|
|
11
|
+
setupApiFetch,
|
|
11
12
|
} from 'test/helpers';
|
|
12
13
|
import { Image } from 'react-native';
|
|
13
14
|
import Clipboard from '@react-native-clipboard/clipboard';
|
|
@@ -22,9 +23,10 @@ import {
|
|
|
22
23
|
sendMediaUpload,
|
|
23
24
|
subscribeMediaUpload,
|
|
24
25
|
} from '@wordpress/react-native-bridge';
|
|
25
|
-
import { select } from '@wordpress/data';
|
|
26
|
+
import { select, dispatch } from '@wordpress/data';
|
|
26
27
|
import { store as editorStore } from '@wordpress/editor';
|
|
27
28
|
import { store as coreStore } from '@wordpress/core-data';
|
|
29
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
28
30
|
import '@wordpress/jest-console';
|
|
29
31
|
|
|
30
32
|
/**
|
|
@@ -45,7 +47,15 @@ function mockGetMedia( media ) {
|
|
|
45
47
|
jest.spyOn( select( coreStore ), 'getMedia' ).mockReturnValue( media );
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
const
|
|
50
|
+
const FETCH_MEDIA = {
|
|
51
|
+
request: {
|
|
52
|
+
path: `/wp/v2/media/1?context=edit`,
|
|
53
|
+
},
|
|
54
|
+
response: {
|
|
55
|
+
source_url: 'https://cldup.com/cXyG__fTLN.jpg',
|
|
56
|
+
id: 1,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
49
59
|
|
|
50
60
|
const clipboardPromise = Promise.resolve( '' );
|
|
51
61
|
Clipboard.getString.mockImplementation( () => clipboardPromise );
|
|
@@ -58,6 +68,18 @@ beforeAll( () => {
|
|
|
58
68
|
getSizeSpy.mockImplementation( ( _url, callback ) => callback( 300, 200 ) );
|
|
59
69
|
} );
|
|
60
70
|
|
|
71
|
+
beforeEach( () => {
|
|
72
|
+
// Mock media fetch requests
|
|
73
|
+
setupApiFetch( [ FETCH_MEDIA ] );
|
|
74
|
+
|
|
75
|
+
// Invalidate `getMedia` resolutions to allow requesting to the API the same media id
|
|
76
|
+
dispatch( coreStore ).invalidateResolutionForStoreSelector( 'getMedia' );
|
|
77
|
+
} );
|
|
78
|
+
|
|
79
|
+
afterEach( () => {
|
|
80
|
+
apiFetch.mockReset();
|
|
81
|
+
} );
|
|
82
|
+
|
|
61
83
|
afterAll( () => {
|
|
62
84
|
getBlockTypes().forEach( ( { name } ) => {
|
|
63
85
|
unregisterBlockType( name );
|
|
@@ -78,8 +100,8 @@ describe( 'Image Block', () => {
|
|
|
78
100
|
<figcaption class="wp-element-caption">Mountain</figcaption></figure>
|
|
79
101
|
<!-- /wp:image -->`;
|
|
80
102
|
const screen = await initializeEditor( { initialHtml } );
|
|
81
|
-
//
|
|
82
|
-
|
|
103
|
+
// Check that image is fetched via `getMedia`
|
|
104
|
+
expect( apiFetch ).toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
83
105
|
|
|
84
106
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
85
107
|
fireEvent.press( imageBlock );
|
|
@@ -105,8 +127,8 @@ describe( 'Image Block', () => {
|
|
|
105
127
|
<figcaption class="wp-element-caption">Mountain</figcaption></figure>
|
|
106
128
|
<!-- /wp:image -->`;
|
|
107
129
|
const screen = await initializeEditor( { initialHtml } );
|
|
108
|
-
//
|
|
109
|
-
|
|
130
|
+
// Check that image is fetched via `getMedia`
|
|
131
|
+
expect( apiFetch ).toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
110
132
|
|
|
111
133
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
112
134
|
fireEvent.press( imageBlock );
|
|
@@ -132,8 +154,8 @@ describe( 'Image Block', () => {
|
|
|
132
154
|
<figcaption class="wp-element-caption">Mountain</figcaption></figure>
|
|
133
155
|
<!-- /wp:image -->`;
|
|
134
156
|
const screen = await initializeEditor( { initialHtml } );
|
|
135
|
-
//
|
|
136
|
-
|
|
157
|
+
// Check that image is fetched via `getMedia`
|
|
158
|
+
expect( apiFetch ).toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
137
159
|
|
|
138
160
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
139
161
|
fireEvent.press( imageBlock );
|
|
@@ -169,8 +191,8 @@ describe( 'Image Block', () => {
|
|
|
169
191
|
<figcaption class="wp-element-caption">Mountain</figcaption></figure>
|
|
170
192
|
<!-- /wp:image -->`;
|
|
171
193
|
const screen = await initializeEditor( { initialHtml } );
|
|
172
|
-
//
|
|
173
|
-
|
|
194
|
+
// Check that image is fetched via `getMedia`
|
|
195
|
+
expect( apiFetch ).toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
174
196
|
|
|
175
197
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
176
198
|
fireEvent.press( imageBlock );
|
|
@@ -211,8 +233,8 @@ describe( 'Image Block', () => {
|
|
|
211
233
|
<figcaption class="wp-element-caption">Mountain</figcaption></figure>
|
|
212
234
|
<!-- /wp:image -->`;
|
|
213
235
|
const screen = await initializeEditor( { initialHtml } );
|
|
214
|
-
//
|
|
215
|
-
|
|
236
|
+
// Check that image is not fetched via `getMedia` due to the presence of query parameters in the URL.
|
|
237
|
+
expect( apiFetch ).not.toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
216
238
|
|
|
217
239
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
218
240
|
fireEvent.press( imageBlock );
|
|
@@ -236,8 +258,8 @@ describe( 'Image Block', () => {
|
|
|
236
258
|
<figcaption class="wp-element-caption">Mountain</figcaption></figure>
|
|
237
259
|
<!-- /wp:image -->`;
|
|
238
260
|
const screen = await initializeEditor( { initialHtml } );
|
|
239
|
-
//
|
|
240
|
-
|
|
261
|
+
// Check that image is fetched via `getMedia`
|
|
262
|
+
expect( apiFetch ).toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
241
263
|
|
|
242
264
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
243
265
|
fireEvent.press( imageBlock );
|
|
@@ -267,8 +289,8 @@ describe( 'Image Block', () => {
|
|
|
267
289
|
</figure>
|
|
268
290
|
<!-- /wp:image -->`;
|
|
269
291
|
const screen = await initializeEditor( { initialHtml } );
|
|
270
|
-
//
|
|
271
|
-
|
|
292
|
+
// Check that image is fetched via `getMedia`
|
|
293
|
+
expect( apiFetch ).toHaveBeenCalledWith( FETCH_MEDIA.request );
|
|
272
294
|
|
|
273
295
|
const [ imageBlock ] = screen.getAllByLabelText( /Image Block/ );
|
|
274
296
|
fireEvent.press( imageBlock );
|
package/src/image/utils.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { isEmpty } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* Internal dependencies
|
|
8
3
|
*/
|
|
@@ -11,21 +6,19 @@ import { NEW_TAB_REL } from './constants';
|
|
|
11
6
|
export function removeNewTabRel( currentRel ) {
|
|
12
7
|
let newRel = currentRel;
|
|
13
8
|
|
|
14
|
-
if ( currentRel !== undefined &&
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
} );
|
|
9
|
+
if ( currentRel !== undefined && newRel ) {
|
|
10
|
+
NEW_TAB_REL.forEach( ( relVal ) => {
|
|
11
|
+
const regExp = new RegExp( '\\b' + relVal + '\\b', 'gi' );
|
|
12
|
+
newRel = newRel.replace( regExp, '' );
|
|
13
|
+
} );
|
|
20
14
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
// Only trim if NEW_TAB_REL values was replaced.
|
|
16
|
+
if ( newRel !== currentRel ) {
|
|
17
|
+
newRel = newRel.trim();
|
|
18
|
+
}
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
20
|
+
if ( ! newRel ) {
|
|
21
|
+
newRel = undefined;
|
|
29
22
|
}
|
|
30
23
|
}
|
|
31
24
|
|
package/src/index.js
CHANGED
|
@@ -46,8 +46,6 @@ import * as commentsPaginationNumbers from './comments-pagination-numbers';
|
|
|
46
46
|
import * as commentsTitle from './comments-title';
|
|
47
47
|
import * as cover from './cover';
|
|
48
48
|
import * as details from './details';
|
|
49
|
-
import * as detailsContent from './details-content';
|
|
50
|
-
import * as detailsSummary from './details-summary';
|
|
51
49
|
import * as embed from './embed';
|
|
52
50
|
import * as file from './file';
|
|
53
51
|
import * as gallery from './gallery';
|
|
@@ -230,8 +228,6 @@ const getAllBlocks = () => {
|
|
|
230
228
|
];
|
|
231
229
|
if ( window?.__experimentalEnableDetailsBlocks ) {
|
|
232
230
|
blocks.push( details );
|
|
233
|
-
blocks.push( detailsContent );
|
|
234
|
-
blocks.push( detailsSummary );
|
|
235
231
|
}
|
|
236
232
|
return blocks.filter( Boolean );
|
|
237
233
|
};
|
package/src/index.native.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { TouchableWithoutFeedback, View, Text } from 'react-native';
|
|
5
|
-
import { isEmpty } from 'lodash';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* WordPress dependencies
|
|
@@ -63,9 +62,7 @@ class LatestPostsEdit extends Component {
|
|
|
63
62
|
.then( ( categoriesList ) => {
|
|
64
63
|
if ( this.isStillMounted ) {
|
|
65
64
|
this.setState( {
|
|
66
|
-
categoriesList
|
|
67
|
-
? []
|
|
68
|
-
: categoriesList,
|
|
65
|
+
categoriesList,
|
|
69
66
|
} );
|
|
70
67
|
}
|
|
71
68
|
} )
|
package/src/list/edit.js
CHANGED
|
@@ -135,7 +135,7 @@ export default function Edit( { attributes, setAttributes, clientId, style } ) {
|
|
|
135
135
|
...( Platform.isNative && {
|
|
136
136
|
marginVertical: NATIVE_MARGIN_SPACING,
|
|
137
137
|
marginHorizontal: NATIVE_MARGIN_SPACING,
|
|
138
|
-
|
|
138
|
+
renderAppender: false,
|
|
139
139
|
} ),
|
|
140
140
|
} );
|
|
141
141
|
useMigrateOnLoad( attributes, clientId );
|