@wordpress/block-library 8.5.0 → 8.7.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/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/buttons/index.js +1 -0
- package/build/buttons/index.js.map +1 -1
- package/build/buttons/transforms.js +1 -0
- package/build/buttons/transforms.js.map +1 -1
- package/build/columns/edit.js +14 -10
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +4 -0
- package/build/columns/index.js.map +1 -1
- package/build/comments/edit/placeholder.js +8 -5
- package/build/comments/edit/placeholder.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -2
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +13 -4
- package/build/cover/index.js.map +1 -1
- package/build/cover/variations.js +29 -0
- package/build/cover/variations.js.map +1 -0
- package/build/embed/edit.js +13 -14
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +18 -14
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/util.js +39 -12
- package/build/embed/util.js.map +1 -1
- package/build/gallery/edit.js +9 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/use-image-sizes.js +1 -1
- package/build/gallery/use-image-sizes.js.map +1 -1
- package/build/group/deprecated.js +4 -2
- package/build/group/deprecated.js.map +1 -1
- package/build/group/edit.js +22 -5
- package/build/group/edit.js.map +1 -1
- package/build/group/placeholder.js +11 -1
- package/build/group/placeholder.js.map +1 -1
- package/build/group/variations.js +23 -3
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.js +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +8 -6
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +7 -2
- package/build/image/index.js.map +1 -1
- package/build/latest-posts/edit.js +11 -10
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js +3 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/media-text/constants.js +17 -1
- package/build/media-text/constants.js.map +1 -1
- package/build/media-text/deprecated.js +228 -18
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +10 -22
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +6 -5
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/index.js +1 -1
- package/build/media-text/transforms.js +32 -44
- package/build/media-text/transforms.js.map +1 -1
- package/build/navigation/edit/index.js +55 -96
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -5
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +26 -22
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +1 -1
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation/index.js +0 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation-link/edit.js +0 -11
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +0 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -13
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +59 -45
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +3 -2
- package/build/page-list-item/edit.js.map +1 -1
- package/build/post-content/edit.js +6 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-date/edit.js +2 -1
- package/build/post-date/edit.js.map +1 -1
- package/build/post-date/index.js +4 -1
- package/build/post-date/index.js.map +1 -1
- package/build/post-date/variations.js +28 -0
- package/build/post-date/variations.js.map +1 -0
- package/build/post-excerpt/edit.js +39 -10
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +2 -8
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-template/index.js +1 -1
- package/build/post-time-to-read/index.js +17 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/pullquote/deprecated.js +3 -3
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -2
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +26 -9
- package/build/query/utils.js.map +1 -1
- package/build/quote/index.js +1 -0
- package/build/quote/index.js.map +1 -1
- package/build/spacer/edit.js +16 -6
- package/build/spacer/edit.js.map +1 -1
- package/build/table/state.js +12 -4
- package/build/table/state.js.map +1 -1
- package/build/template-part/edit/import-controls.js +4 -24
- package/build/template-part/edit/import-controls.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +69 -19
- package/build/template-part/edit/utils/transformers.js.map +1 -1
- package/build/text-columns/edit.js +3 -7
- package/build/text-columns/edit.js.map +1 -1
- package/build/text-columns/save.js +11 -13
- package/build/text-columns/save.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/buttons/index.js +1 -0
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/buttons/transforms.js +1 -0
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/columns/edit.js +14 -9
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +1 -1
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +4 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comments/edit/placeholder.js +9 -5
- package/build-module/comments/edit/placeholder.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -2
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +12 -4
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/variations.js +19 -0
- package/build-module/cover/variations.js.map +1 -0
- package/build-module/embed/edit.js +14 -15
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +19 -15
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/util.js +34 -10
- package/build-module/embed/util.js.map +1 -1
- package/build-module/gallery/edit.js +9 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/use-image-sizes.js +1 -1
- package/build-module/gallery/use-image-sizes.js.map +1 -1
- package/build-module/group/deprecated.js +4 -2
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/group/edit.js +21 -5
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/placeholder.js +11 -1
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/group/variations.js +24 -1
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.js +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +8 -6
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +7 -2
- package/build-module/image/index.js.map +1 -1
- package/build-module/latest-posts/edit.js +11 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +3 -3
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/media-text/constants.js +10 -0
- package/build-module/media-text/constants.js.map +1 -1
- package/build-module/media-text/deprecated.js +227 -18
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +5 -17
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +4 -3
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/index.js +1 -1
- package/build-module/media-text/transforms.js +32 -44
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/navigation/edit/index.js +57 -98
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
- 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 +2 -4
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build-module/navigation/index.js +0 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation-link/edit.js +0 -11
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +0 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -13
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +61 -47
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -2
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/post-content/edit.js +6 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-date/edit.js +2 -1
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-date/index.js +3 -1
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-date/variations.js +18 -0
- package/build-module/post-date/variations.js.map +1 -0
- package/build-module/post-excerpt/edit.js +38 -11
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +2 -8
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-template/index.js +1 -1
- package/build-module/post-time-to-read/index.js +17 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js +3 -2
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +4 -3
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +21 -6
- package/build-module/query/utils.js.map +1 -1
- package/build-module/quote/index.js +1 -0
- package/build-module/quote/index.js.map +1 -1
- package/build-module/spacer/edit.js +16 -6
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table/state.js +13 -5
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +4 -23
- package/build-module/template-part/edit/import-controls.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +69 -20
- package/build-module/template-part/edit/utils/transformers.js.map +1 -1
- package/build-module/text-columns/edit.js +3 -6
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/text-columns/save.js +11 -12
- package/build-module/text-columns/save.js.map +1 -1
- package/build-style/categories/editor-rtl.css +5 -0
- package/build-style/categories/editor.css +5 -0
- package/build-style/categories/style-rtl.css +4 -0
- package/build-style/categories/style.css +4 -0
- package/build-style/cover/style-rtl.css +11 -5
- package/build-style/cover/style.css +11 -5
- package/build-style/editor-rtl.css +11 -1
- package/build-style/editor.css +11 -1
- package/build-style/navigation/editor-rtl.css +1 -1
- package/build-style/navigation/editor.css +1 -1
- package/build-style/navigation/style-rtl.css +2 -0
- package/build-style/navigation/style.css +2 -0
- package/build-style/page-list/editor-rtl.css +4 -0
- package/build-style/page-list/editor.css +4 -0
- package/build-style/post-featured-image/editor-rtl.css +1 -0
- package/build-style/post-featured-image/editor.css +1 -0
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/post-template/style-rtl.css +1 -1
- package/build-style/post-template/style.css +1 -1
- package/build-style/post-time-to-read/style-rtl.css +91 -0
- package/build-style/post-time-to-read/style.css +91 -0
- package/build-style/search/style-rtl.css +8 -7
- package/build-style/search/style.css +8 -7
- package/build-style/style-rtl.css +31 -13
- package/build-style/style.css +31 -13
- package/package.json +31 -31
- package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
- package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/audio/test/transforms.native.js +42 -0
- package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/block/test/transforms.native.js +40 -0
- package/src/buttons/block.json +1 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/buttons/test/transforms.native.js +48 -0
- package/src/categories/editor.scss +5 -0
- package/src/categories/style.scss +4 -0
- package/src/columns/block.json +4 -0
- package/src/columns/edit.js +30 -18
- package/src/columns/edit.native.js +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
- package/src/columns/test/transforms.native.js +91 -0
- package/src/comment-template/index.php +1 -2
- package/src/comments/edit/placeholder.js +16 -4
- package/src/comments/index.php +1 -0
- package/src/cover/block.json +9 -3
- package/src/cover/edit/inspector-controls.js +4 -5
- package/src/cover/index.js +2 -0
- package/src/cover/style.scss +16 -7
- package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/cover/test/edit.js +324 -0
- package/src/cover/test/transforms.native.js +112 -0
- package/src/cover/variations.js +20 -0
- package/src/embed/edit.js +16 -12
- package/src/embed/edit.native.js +28 -18
- package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
- package/src/embed/test/index.js +12 -0
- package/src/embed/test/transforms.native.js +44 -0
- package/src/embed/util.js +29 -8
- package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
- package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/file/test/transforms.native.js +42 -0
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/freeform/test/transforms.native.js +39 -0
- package/src/gallery/edit.js +8 -2
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
- package/src/gallery/test/transforms.native.js +52 -0
- package/src/gallery/use-image-sizes.js +1 -1
- package/src/group/deprecated.js +4 -2
- package/src/group/edit.js +27 -9
- package/src/group/placeholder.js +13 -1
- package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
- package/src/group/test/transforms.native.js +75 -0
- package/src/group/variations.js +14 -1
- package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/heading/test/transforms.native.js +46 -0
- package/src/home-link/index.php +2 -2
- package/src/image/block.json +7 -2
- package/src/image/edit.js +1 -1
- package/src/image/edit.native.js +1 -1
- package/src/image/image.js +15 -7
- package/src/image/index.php +7 -2
- package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
- package/src/image/test/transforms.native.js +48 -0
- package/src/latest-comments/style.scss +1 -1
- package/src/latest-posts/edit.js +14 -16
- package/src/latest-posts/edit.native.js +3 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/latest-posts/test/transforms.native.js +61 -0
- package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
- package/src/list/test/transforms.native.js +56 -0
- package/src/media-text/block.json +1 -1
- package/src/media-text/constants.js +16 -0
- package/src/media-text/deprecated.js +235 -3
- package/src/media-text/edit.js +15 -24
- package/src/media-text/edit.native.js +3 -9
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/media-text/test/transforms.native.js +112 -0
- package/src/media-text/transforms.js +24 -51
- package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
- package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/more/test/transforms.native.js +42 -0
- package/src/navigation/block.json +0 -1
- package/src/navigation/edit/index.js +99 -115
- package/src/navigation/edit/menu-inspector-controls.js +2 -7
- package/src/navigation/edit/navigation-menu-selector.js +41 -25
- package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
- package/src/navigation/edit/use-create-navigation-menu.js +1 -1
- package/src/navigation/edit/use-navigation-notice.js +1 -1
- package/src/navigation/editor.scss +23 -20
- package/src/navigation/index.php +18 -39
- package/src/navigation/style.scss +6 -4
- package/src/navigation-link/edit.js +0 -9
- package/src/navigation-link/index.php +7 -9
- package/src/navigation-link/link-ui.js +0 -1
- package/src/navigation-submenu/edit.js +0 -10
- package/src/navigation-submenu/index.php +45 -74
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/nextpage/test/transforms.native.js +42 -0
- package/src/page-list/edit.js +78 -44
- package/src/page-list/editor.scss +6 -0
- package/src/page-list-item/edit.js +2 -3
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
- package/src/paragraph/test/transforms.native.js +50 -0
- package/src/post-author/index.php +1 -1
- package/src/post-content/edit.js +5 -1
- package/src/post-date/edit.js +4 -1
- package/src/post-date/index.js +2 -0
- package/src/post-date/variations.js +20 -0
- package/src/post-excerpt/edit.js +48 -16
- package/src/post-excerpt/index.php +1 -2
- package/src/post-featured-image/dimension-controls.js +2 -10
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-featured-image/editor.scss +1 -0
- package/src/post-featured-image/style.scss +1 -0
- package/src/post-template/block.json +1 -1
- package/src/post-template/style.scss +1 -1
- package/src/post-time-to-read/block.json +17 -1
- package/src/post-time-to-read/style.scss +4 -0
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/preformatted/test/transforms.native.js +42 -0
- package/src/pullquote/deprecated.js +2 -6
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/pullquote/test/transforms.native.js +46 -0
- package/src/query/edit/query-placeholder.js +10 -5
- package/src/query/test/utils.js +33 -1
- package/src/query/utils.js +19 -6
- package/src/query-title/index.php +2 -5
- package/src/quote/block.json +1 -0
- package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
- package/src/quote/test/transforms.native.js +67 -0
- package/src/search/style.scss +16 -12
- package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
- package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/search/test/transforms.native.js +40 -0
- package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/separator/test/transforms.native.js +42 -0
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/shortcode/test/transforms.native.js +42 -0
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/social-links/test/transforms.native.js +53 -0
- package/src/spacer/edit.js +18 -5
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/spacer/test/transforms.native.js +42 -0
- package/src/style.scss +1 -0
- package/src/table/state.js +8 -17
- package/src/template-part/edit/import-controls.js +2 -29
- package/src/template-part/edit/utils/transformers.js +96 -19
- package/src/text-columns/edit.js +1 -6
- package/src/text-columns/save.js +1 -6
- package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/verse/test/transforms.native.js +42 -0
- package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
- package/src/video/test/transforms.native.js +48 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/cover/test/block-controls.js +0 -62
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'Embed';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:embed {"url":"https://twitter.com/notnownikki","type":"rich","providerNameSlug":"twitter","responsive":true} -->
|
|
15
|
+
<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
|
|
16
|
+
https://twitter.com/notnownikki
|
|
17
|
+
</div></figure>
|
|
18
|
+
<!-- /wp:embed -->`;
|
|
19
|
+
|
|
20
|
+
const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
21
|
+
const blockTransforms = [ ...transformsWithInnerBlocks ];
|
|
22
|
+
|
|
23
|
+
setupCoreBlocks();
|
|
24
|
+
|
|
25
|
+
describe( `${ block } block transforms`, () => {
|
|
26
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
27
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
28
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
29
|
+
hasInnerBlocks:
|
|
30
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
31
|
+
} );
|
|
32
|
+
expect( newBlock ).toBeVisible();
|
|
33
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
34
|
+
} );
|
|
35
|
+
|
|
36
|
+
it( 'matches expected transformation options', async () => {
|
|
37
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
38
|
+
const transformOptions = await getBlockTransformOptions(
|
|
39
|
+
screen,
|
|
40
|
+
block
|
|
41
|
+
);
|
|
42
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
43
|
+
} );
|
|
44
|
+
} );
|
package/src/embed/util.js
CHANGED
|
@@ -152,6 +152,21 @@ export const createUpgradedEmbedBlock = (
|
|
|
152
152
|
} );
|
|
153
153
|
};
|
|
154
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Determine if the block already has an aspect ratio class applied.
|
|
157
|
+
*
|
|
158
|
+
* @param {string} existingClassNames Existing block classes.
|
|
159
|
+
* @return {boolean} True or false if the classnames contain an aspect ratio class.
|
|
160
|
+
*/
|
|
161
|
+
export const hasAspectRatioClass = ( existingClassNames ) => {
|
|
162
|
+
if ( ! existingClassNames ) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
return ASPECT_RATIOS.some( ( { className } ) =>
|
|
166
|
+
existingClassNames.includes( className )
|
|
167
|
+
);
|
|
168
|
+
};
|
|
169
|
+
|
|
155
170
|
/**
|
|
156
171
|
* Removes all previously set aspect ratio related classes and return the rest
|
|
157
172
|
* existing class names.
|
|
@@ -283,6 +298,13 @@ export const getAttributesFromPreview = memoize(
|
|
|
283
298
|
attributes.providerNameSlug = providerNameSlug;
|
|
284
299
|
}
|
|
285
300
|
|
|
301
|
+
// Aspect ratio classes are removed when the embed URL is updated.
|
|
302
|
+
// If the embed already has an aspect ratio class, that means the URL has not changed.
|
|
303
|
+
// Which also means no need to regenerate it with getClassNames.
|
|
304
|
+
if ( hasAspectRatioClass( currentClassNames ) ) {
|
|
305
|
+
return attributes;
|
|
306
|
+
}
|
|
307
|
+
|
|
286
308
|
attributes.className = getClassNames(
|
|
287
309
|
html,
|
|
288
310
|
currentClassNames,
|
|
@@ -296,27 +318,26 @@ export const getAttributesFromPreview = memoize(
|
|
|
296
318
|
/**
|
|
297
319
|
* Returns the attributes derived from the preview, merged with the current attributes.
|
|
298
320
|
*
|
|
299
|
-
* @param {Object} currentAttributes
|
|
300
|
-
* @param {Object} preview
|
|
301
|
-
* @param {string} title
|
|
302
|
-
* @param {boolean} isResponsive
|
|
303
|
-
* @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
|
|
321
|
+
* @param {Object} currentAttributes The current attributes of the block.
|
|
322
|
+
* @param {Object} preview The preview data.
|
|
323
|
+
* @param {string} title The block's title, e.g. Twitter.
|
|
324
|
+
* @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
|
|
304
325
|
* @return {Object} Merged attributes.
|
|
305
326
|
*/
|
|
306
327
|
export const getMergedAttributesWithPreview = (
|
|
307
328
|
currentAttributes,
|
|
308
329
|
preview,
|
|
309
330
|
title,
|
|
310
|
-
isResponsive
|
|
311
|
-
ignorePreviousClassName = false
|
|
331
|
+
isResponsive
|
|
312
332
|
) => {
|
|
313
333
|
const { allowResponsive, className } = currentAttributes;
|
|
334
|
+
|
|
314
335
|
return {
|
|
315
336
|
...currentAttributes,
|
|
316
337
|
...getAttributesFromPreview(
|
|
317
338
|
preview,
|
|
318
339
|
title,
|
|
319
|
-
|
|
340
|
+
className,
|
|
320
341
|
isResponsive,
|
|
321
342
|
allowResponsive
|
|
322
343
|
),
|
|
@@ -115,7 +115,15 @@ exports[`File block renders file error state without crashing 1`] = `
|
|
|
115
115
|
/>
|
|
116
116
|
</View>
|
|
117
117
|
<View>
|
|
118
|
-
Svg
|
|
118
|
+
<Svg
|
|
119
|
+
height={24}
|
|
120
|
+
style={{}}
|
|
121
|
+
viewBox="-2 -2 24 24"
|
|
122
|
+
width={24}
|
|
123
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
124
|
+
>
|
|
125
|
+
Path
|
|
126
|
+
</Svg>
|
|
119
127
|
<TextInput
|
|
120
128
|
editable={false}
|
|
121
129
|
fontFamily="serif"
|
|
@@ -464,7 +472,15 @@ exports[`File block renders placeholder without crashing 1`] = `
|
|
|
464
472
|
<View
|
|
465
473
|
style={{}}
|
|
466
474
|
>
|
|
467
|
-
Svg
|
|
475
|
+
<Svg
|
|
476
|
+
height={24}
|
|
477
|
+
style={{}}
|
|
478
|
+
viewBox="0 0 24 24"
|
|
479
|
+
width={24}
|
|
480
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
481
|
+
>
|
|
482
|
+
Path
|
|
483
|
+
</Svg>
|
|
468
484
|
</View>
|
|
469
485
|
</View>
|
|
470
486
|
<Text>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`File block transformations to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:file {"id":3,"href":"https://wordpress.org/latest.zip"} -->
|
|
7
|
+
<div class="wp-block-file"><a href="https://wordpress.org/latest.zip">WordPress.zip</a><a href="https://wordpress.org/latest.zip" class="wp-block-file__button wp-element-button" download>Download</a></div>
|
|
8
|
+
<!-- /wp:file --></div>
|
|
9
|
+
<!-- /wp:column --></div>
|
|
10
|
+
<!-- /wp:columns -->"
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
exports[`File block transformations to Group block 1`] = `
|
|
14
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
15
|
+
<div class="wp-block-group"><!-- wp:file {"id":3,"href":"https://wordpress.org/latest.zip"} -->
|
|
16
|
+
<div class="wp-block-file"><a href="https://wordpress.org/latest.zip">WordPress.zip</a><a href="https://wordpress.org/latest.zip" class="wp-block-file__button wp-element-button" download>Download</a></div>
|
|
17
|
+
<!-- /wp:file --></div>
|
|
18
|
+
<!-- /wp:group -->"
|
|
19
|
+
`;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'File';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:file {"id":3,"href":"https://wordpress.org/latest.zip"} -->
|
|
15
|
+
<div class="wp-block-file"><a href="https://wordpress.org/latest.zip">WordPress.zip</a><a href="https://wordpress.org/latest.zip" class="wp-block-file__button wp-element-button" download>Download</a></div>
|
|
16
|
+
<!-- /wp:file -->`;
|
|
17
|
+
|
|
18
|
+
const tranformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
19
|
+
const blockTransforms = [ ...tranformsWithInnerBlocks ];
|
|
20
|
+
|
|
21
|
+
setupCoreBlocks();
|
|
22
|
+
|
|
23
|
+
describe( `${ block } block transformations`, () => {
|
|
24
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
25
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
26
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
27
|
+
isMediaBlock: false,
|
|
28
|
+
hasInnerBlocks: tranformsWithInnerBlocks.includes( blockTransform ),
|
|
29
|
+
} );
|
|
30
|
+
expect( newBlock ).toBeVisible();
|
|
31
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
32
|
+
} );
|
|
33
|
+
|
|
34
|
+
it( 'matches expected transformation options', async () => {
|
|
35
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
36
|
+
const transformOptions = await getBlockTransformOptions(
|
|
37
|
+
screen,
|
|
38
|
+
block
|
|
39
|
+
);
|
|
40
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
41
|
+
} );
|
|
42
|
+
} );
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Classic block transforms to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:freeform -->
|
|
7
|
+
<p>Classic block</p>
|
|
8
|
+
<!-- /wp:freeform --></div>
|
|
9
|
+
<!-- /wp:column --></div>
|
|
10
|
+
<!-- /wp:columns -->"
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
exports[`Classic block transforms to Group block 1`] = `
|
|
14
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
15
|
+
<div class="wp-block-group"><!-- wp:freeform -->
|
|
16
|
+
<p>Classic block</p>
|
|
17
|
+
<!-- /wp:freeform --></div>
|
|
18
|
+
<!-- /wp:group -->"
|
|
19
|
+
`;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'Classic';
|
|
13
|
+
const initialHtml = `Classic block`;
|
|
14
|
+
|
|
15
|
+
const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
16
|
+
const blockTransforms = [ ...transformsWithInnerBlocks ];
|
|
17
|
+
|
|
18
|
+
setupCoreBlocks();
|
|
19
|
+
|
|
20
|
+
describe( `${ block } block transforms`, () => {
|
|
21
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
22
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
23
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
24
|
+
hasInnerBlocks:
|
|
25
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
26
|
+
} );
|
|
27
|
+
expect( newBlock ).toBeVisible();
|
|
28
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
29
|
+
} );
|
|
30
|
+
|
|
31
|
+
it( 'matches expected transformation options', async () => {
|
|
32
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
33
|
+
const transformOptions = await getBlockTransformOptions(
|
|
34
|
+
screen,
|
|
35
|
+
block
|
|
36
|
+
);
|
|
37
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
38
|
+
} );
|
|
39
|
+
} );
|
package/src/gallery/edit.js
CHANGED
|
@@ -562,6 +562,7 @@ function GalleryEdit( props ) {
|
|
|
562
562
|
max={ Math.min( MAX_COLUMNS, images.length ) }
|
|
563
563
|
{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }
|
|
564
564
|
required
|
|
565
|
+
size="__unstable-large"
|
|
565
566
|
/>
|
|
566
567
|
) }
|
|
567
568
|
<ToggleControl
|
|
@@ -578,6 +579,7 @@ function GalleryEdit( props ) {
|
|
|
578
579
|
onChange={ setLinkTo }
|
|
579
580
|
options={ linkOptions }
|
|
580
581
|
hideCancelButton={ true }
|
|
582
|
+
size="__unstable-large"
|
|
581
583
|
/>
|
|
582
584
|
{ hasLinkTo && (
|
|
583
585
|
<ToggleControl
|
|
@@ -590,17 +592,21 @@ function GalleryEdit( props ) {
|
|
|
590
592
|
{ imageSizeOptions?.length > 0 && (
|
|
591
593
|
<SelectControl
|
|
592
594
|
__nextHasNoMarginBottom
|
|
593
|
-
label={ __( '
|
|
595
|
+
label={ __( 'Resolution' ) }
|
|
596
|
+
help={ __(
|
|
597
|
+
'Select the size of the source images.'
|
|
598
|
+
) }
|
|
594
599
|
value={ sizeSlug }
|
|
595
600
|
options={ imageSizeOptions }
|
|
596
601
|
onChange={ updateImagesSize }
|
|
597
602
|
hideCancelButton={ true }
|
|
603
|
+
size="__unstable-large"
|
|
598
604
|
/>
|
|
599
605
|
) }
|
|
600
606
|
{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (
|
|
601
607
|
<BaseControl className={ 'gallery-image-sizes' }>
|
|
602
608
|
<BaseControl.VisualLabel>
|
|
603
|
-
{ __( '
|
|
609
|
+
{ __( 'Resolution' ) }
|
|
604
610
|
</BaseControl.VisualLabel>
|
|
605
611
|
<View className={ 'gallery-image-sizes__loading' }>
|
|
606
612
|
<Spinner />
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Gallery block transformations to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:gallery {"columns":8,"linkTo":"none","className":"alignfull"} -->
|
|
7
|
+
<figure class="wp-block-gallery has-nested-images columns-8 is-cropped alignfull"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
8
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon.png" alt=""/><figcaption class="wp-element-caption">Paragraph</figcaption></figure>
|
|
9
|
+
<!-- /wp:image -->
|
|
10
|
+
|
|
11
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
12
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Heading.png" alt=""/><figcaption class="wp-element-caption">Heading</figcaption></figure>
|
|
13
|
+
<!-- /wp:image -->
|
|
14
|
+
|
|
15
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
16
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Subheading.png" alt=""/><figcaption class="wp-element-caption">Subheading</figcaption></figure>
|
|
17
|
+
<!-- /wp:image --></figure>
|
|
18
|
+
<!-- /wp:gallery --></div>
|
|
19
|
+
<!-- /wp:column --></div>
|
|
20
|
+
<!-- /wp:columns -->"
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
exports[`Gallery block transformations to Group block 1`] = `
|
|
24
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
25
|
+
<div class="wp-block-group"><!-- wp:gallery {"columns":8,"linkTo":"none","className":"alignfull"} -->
|
|
26
|
+
<figure class="wp-block-gallery has-nested-images columns-8 is-cropped alignfull"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
27
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon.png" alt=""/><figcaption class="wp-element-caption">Paragraph</figcaption></figure>
|
|
28
|
+
<!-- /wp:image -->
|
|
29
|
+
|
|
30
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
31
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Heading.png" alt=""/><figcaption class="wp-element-caption">Heading</figcaption></figure>
|
|
32
|
+
<!-- /wp:image -->
|
|
33
|
+
|
|
34
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
35
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Subheading.png" alt=""/><figcaption class="wp-element-caption">Subheading</figcaption></figure>
|
|
36
|
+
<!-- /wp:image --></figure>
|
|
37
|
+
<!-- /wp:gallery --></div>
|
|
38
|
+
<!-- /wp:group -->"
|
|
39
|
+
`;
|
|
40
|
+
|
|
41
|
+
exports[`Gallery block transformations to Image block 1`] = `
|
|
42
|
+
"<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
43
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon.png" alt=""/><figcaption class="wp-element-caption">Paragraph</figcaption></figure>
|
|
44
|
+
<!-- /wp:image -->
|
|
45
|
+
|
|
46
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
47
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Heading.png" alt=""/><figcaption class="wp-element-caption">Heading</figcaption></figure>
|
|
48
|
+
<!-- /wp:image -->
|
|
49
|
+
|
|
50
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
51
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Subheading.png" alt=""/><figcaption class="wp-element-caption">Subheading</figcaption></figure>
|
|
52
|
+
<!-- /wp:image -->"
|
|
53
|
+
`;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'Gallery';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:gallery {"columns":8,"linkTo":"none","className":"alignfull"} -->
|
|
15
|
+
<figure class="wp-block-gallery has-nested-images columns-8 is-cropped alignfull"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
16
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon.png" alt=""/><figcaption class="wp-element-caption">Paragraph</figcaption></figure>
|
|
17
|
+
<!-- /wp:image -->
|
|
18
|
+
|
|
19
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
20
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Heading.png" alt=""/><figcaption class="wp-element-caption">Heading</figcaption></figure>
|
|
21
|
+
<!-- /wp:image -->
|
|
22
|
+
|
|
23
|
+
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
|
|
24
|
+
<figure class="wp-block-image size-large"><img src="https://wordpress.org/gutenberg/files/2018/07/Block-Icon-Subheading.png" alt=""/><figcaption class="wp-element-caption">Subheading</figcaption></figure>
|
|
25
|
+
<!-- /wp:image --></figure>
|
|
26
|
+
<!-- /wp:gallery -->`;
|
|
27
|
+
|
|
28
|
+
const tranformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
29
|
+
const blockTransforms = [ 'Image', ...tranformsWithInnerBlocks ];
|
|
30
|
+
|
|
31
|
+
setupCoreBlocks();
|
|
32
|
+
|
|
33
|
+
describe( `${ block } block transformations`, () => {
|
|
34
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
35
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
36
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
37
|
+
isMediaBlock: true,
|
|
38
|
+
hasInnerBlocks: tranformsWithInnerBlocks.includes( blockTransform ),
|
|
39
|
+
} );
|
|
40
|
+
expect( newBlock ).toBeVisible();
|
|
41
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
42
|
+
} );
|
|
43
|
+
|
|
44
|
+
it( 'matches expected transformation options', async () => {
|
|
45
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
46
|
+
const transformOptions = await getBlockTransformOptions(
|
|
47
|
+
screen,
|
|
48
|
+
block
|
|
49
|
+
);
|
|
50
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
51
|
+
} );
|
|
52
|
+
} );
|
|
@@ -5,7 +5,7 @@ import { useMemo } from '@wordpress/element';
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Calculates the image sizes that are avaible for the current gallery images in order to
|
|
8
|
-
* populate the '
|
|
8
|
+
* populate the 'Resolution' selector.
|
|
9
9
|
*
|
|
10
10
|
* @param {Array} images Basic image block data taken from current gallery innerBlock
|
|
11
11
|
* @param {boolean} isSelected Is the block currently selected in the editor.
|
package/src/group/deprecated.js
CHANGED
|
@@ -50,7 +50,8 @@ const deprecated = [
|
|
|
50
50
|
default: 'div',
|
|
51
51
|
},
|
|
52
52
|
templateLock: {
|
|
53
|
-
type: 'string',
|
|
53
|
+
type: [ 'string', 'boolean' ],
|
|
54
|
+
enum: [ 'all', 'insert', false ],
|
|
54
55
|
},
|
|
55
56
|
},
|
|
56
57
|
supports: {
|
|
@@ -135,7 +136,8 @@ const deprecated = [
|
|
|
135
136
|
default: 'div',
|
|
136
137
|
},
|
|
137
138
|
templateLock: {
|
|
138
|
-
type: 'string',
|
|
139
|
+
type: [ 'string', 'boolean' ],
|
|
140
|
+
enum: [ 'all', 'insert', false ],
|
|
139
141
|
},
|
|
140
142
|
},
|
|
141
143
|
supports: {
|
package/src/group/edit.js
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from '@wordpress/block-editor';
|
|
13
13
|
import { SelectControl } from '@wordpress/components';
|
|
14
14
|
import { __ } from '@wordpress/i18n';
|
|
15
|
+
import { View } from '@wordpress/primitives';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Internal dependencies
|
|
@@ -97,7 +98,8 @@ function GroupEdit( {
|
|
|
97
98
|
? { ...defaultLayout, ...layout, type: 'default' }
|
|
98
99
|
: { ...defaultLayout, ...layout };
|
|
99
100
|
const { type = 'default' } = usedLayout;
|
|
100
|
-
const layoutSupportEnabled =
|
|
101
|
+
const layoutSupportEnabled =
|
|
102
|
+
themeSupportsLayout || type === 'flex' || type === 'grid';
|
|
101
103
|
|
|
102
104
|
// Hooks.
|
|
103
105
|
const blockProps = useBlockProps( {
|
|
@@ -108,15 +110,28 @@ function GroupEdit( {
|
|
|
108
110
|
usedLayoutType: usedLayout?.type,
|
|
109
111
|
hasInnerBlocks,
|
|
110
112
|
} );
|
|
113
|
+
|
|
114
|
+
// Default to the regular appender being rendered.
|
|
115
|
+
let renderAppender;
|
|
116
|
+
if ( showPlaceholder ) {
|
|
117
|
+
// In the placeholder state, ensure the appender is not rendered.
|
|
118
|
+
// This is needed because `...innerBlocksProps` is used in the placeholder
|
|
119
|
+
// state so that blocks can dragged onto the placeholder area
|
|
120
|
+
// from both the list view and in the editor canvas.
|
|
121
|
+
renderAppender = false;
|
|
122
|
+
} else if ( ! hasInnerBlocks ) {
|
|
123
|
+
// When there is no placeholder, but the block is also empty,
|
|
124
|
+
// use the larger button appender.
|
|
125
|
+
renderAppender = InnerBlocks.ButtonBlockAppender;
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
const innerBlocksProps = useInnerBlocksProps(
|
|
112
129
|
layoutSupportEnabled
|
|
113
130
|
? blockProps
|
|
114
131
|
: { className: 'wp-block-group__inner-container' },
|
|
115
132
|
{
|
|
116
133
|
templateLock,
|
|
117
|
-
renderAppender
|
|
118
|
-
? undefined
|
|
119
|
-
: InnerBlocks.ButtonBlockAppender,
|
|
134
|
+
renderAppender,
|
|
120
135
|
__unstableDisableLayoutClassNames: ! layoutSupportEnabled,
|
|
121
136
|
}
|
|
122
137
|
);
|
|
@@ -138,11 +153,14 @@ function GroupEdit( {
|
|
|
138
153
|
}
|
|
139
154
|
/>
|
|
140
155
|
{ showPlaceholder && (
|
|
141
|
-
<
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
156
|
+
<View { ...innerBlocksProps }>
|
|
157
|
+
{ innerBlocksProps.children }
|
|
158
|
+
<GroupPlaceHolder
|
|
159
|
+
clientId={ clientId }
|
|
160
|
+
name={ name }
|
|
161
|
+
onSelect={ selectVariation }
|
|
162
|
+
/>
|
|
163
|
+
</View>
|
|
146
164
|
) }
|
|
147
165
|
{ layoutSupportEnabled && ! showPlaceholder && (
|
|
148
166
|
<TagName { ...innerBlocksProps } />
|
package/src/group/placeholder.js
CHANGED
|
@@ -47,6 +47,17 @@ const getGroupPlaceholderIcons = ( name = 'group' ) => {
|
|
|
47
47
|
<Path d="M42 0H2C.9 0 0 .9 0 2v12.5c0 .6.4 1 1 1h42c.6 0 1-.4 1-1V2c0-1.1-.9-2-2-2zm1 16.5H1c-.6 0-1 .4-1 1V30c0 1.1.9 2 2 2h40c1.1 0 2-.9 2-2V17.5c0-.6-.4-1-1-1z" />
|
|
48
48
|
</SVG>
|
|
49
49
|
),
|
|
50
|
+
'group-grid': (
|
|
51
|
+
<SVG
|
|
52
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
53
|
+
width="44"
|
|
54
|
+
height="32"
|
|
55
|
+
viewBox="0 0 44 32"
|
|
56
|
+
>
|
|
57
|
+
<Path d="m20.30137,-0.00025l-18.9728,0c-0.86524,0.07234 -1.41711,0.79149 -1.41711,1.89149l0,12.64468c0,0.6 0.73401,0.96383 1.0304,0.96383l19.67469,0.03617c0.29639,0 1.0304,-0.4 1.0304,-1l-0.03576,-12.7532c0,-1.1 -0.76644,-1.78297 -1.30983,-1.78297zm0.52975,16.60851l-19.99654,-0.03617c-0.29639,0 -0.92312,0.36383 -0.92312,0.96383l-0.03576,12.68085c0,1.1 0.8022,1.81915 1.34559,1.81915l19.00857,0c0.54339,0 1.45287,-0.71915 1.45287,-1.81915l0,-12.53617c0,-0.6 -0.5552,-1.07234 -0.8516,-1.07234z" />
|
|
58
|
+
<Path d="m42.73056,-0.03617l-18.59217,0c-0.84788,0.07234 -1.38868,0.79149 -1.38868,1.89149l0,12.64468c0,0.6 0.71928,0.96383 1.00973,0.96383l19.27997,0.03617c0.29045,0 1.00973,-0.4 1.00973,-1l-0.03504,-12.7532c0,-1.1 -0.75106,-1.78297 -1.28355,-1.78297zm0.51912,16.60851l-19.59537,-0.03617c-0.29045,0 -0.9046,0.36383 -0.9046,0.96383l-0.03504,12.68085c0,1.1 0.78611,1.81915 1.31859,1.81915l18.62721,0c0.53249,0 1.42372,-0.71915 1.42372,-1.81915l0,-12.53617c0,-0.6 -0.54407,-1.07234 -0.83451,-1.07234z" />
|
|
59
|
+
</SVG>
|
|
60
|
+
),
|
|
50
61
|
};
|
|
51
62
|
return icons?.[ name ];
|
|
52
63
|
};
|
|
@@ -85,7 +96,8 @@ export function useShouldShowPlaceHolder( {
|
|
|
85
96
|
! fontSize &&
|
|
86
97
|
! textColor &&
|
|
87
98
|
! style &&
|
|
88
|
-
usedLayoutType !== 'flex'
|
|
99
|
+
usedLayoutType !== 'flex' &&
|
|
100
|
+
usedLayoutType !== 'grid'
|
|
89
101
|
);
|
|
90
102
|
|
|
91
103
|
useEffect( () => {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Group block transforms to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:group -->
|
|
7
|
+
<div id="this-is-another-anchor" class="wp-block-group"><!-- wp:paragraph -->
|
|
8
|
+
<p>One.</p>
|
|
9
|
+
<!-- /wp:paragraph -->
|
|
10
|
+
|
|
11
|
+
<!-- wp:paragraph -->
|
|
12
|
+
<p>Two</p>
|
|
13
|
+
<!-- /wp:paragraph -->
|
|
14
|
+
|
|
15
|
+
<!-- wp:paragraph -->
|
|
16
|
+
<p>Three.</p>
|
|
17
|
+
<!-- /wp:paragraph --></div>
|
|
18
|
+
<!-- /wp:group --></div>
|
|
19
|
+
<!-- /wp:column --></div>
|
|
20
|
+
<!-- /wp:columns -->"
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
exports[`Group block transforms unwraps content 1`] = `
|
|
24
|
+
"<!-- wp:paragraph -->
|
|
25
|
+
<p>One.</p>
|
|
26
|
+
<!-- /wp:paragraph -->
|
|
27
|
+
|
|
28
|
+
<!-- wp:paragraph -->
|
|
29
|
+
<p>Two</p>
|
|
30
|
+
<!-- /wp:paragraph -->
|
|
31
|
+
|
|
32
|
+
<!-- wp:paragraph -->
|
|
33
|
+
<p>Three.</p>
|
|
34
|
+
<!-- /wp:paragraph -->"
|
|
35
|
+
`;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlock,
|
|
10
|
+
openBlockActionsMenu,
|
|
11
|
+
fireEvent,
|
|
12
|
+
getBlockTransformOptions,
|
|
13
|
+
} from 'test/helpers';
|
|
14
|
+
|
|
15
|
+
const block = 'Group';
|
|
16
|
+
const initialHtml = `
|
|
17
|
+
<!-- wp:group -->
|
|
18
|
+
<div id="this-is-another-anchor" class="wp-block-group"><!-- wp:paragraph -->
|
|
19
|
+
<p>One.</p>
|
|
20
|
+
<!-- /wp:paragraph -->
|
|
21
|
+
|
|
22
|
+
<!-- wp:paragraph -->
|
|
23
|
+
<p>Two</p>
|
|
24
|
+
<!-- /wp:paragraph -->
|
|
25
|
+
|
|
26
|
+
<!-- wp:paragraph -->
|
|
27
|
+
<p>Three.</p>
|
|
28
|
+
<!-- /wp:paragraph --></div>
|
|
29
|
+
<!-- /wp:group -->`;
|
|
30
|
+
|
|
31
|
+
const transformsWithInnerBlocks = [ 'Columns' ];
|
|
32
|
+
const blockTransforms = [ ...transformsWithInnerBlocks ];
|
|
33
|
+
|
|
34
|
+
setupCoreBlocks();
|
|
35
|
+
|
|
36
|
+
describe( `${ block } block transforms`, () => {
|
|
37
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
38
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
39
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
40
|
+
hasInnerBlocks:
|
|
41
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
42
|
+
} );
|
|
43
|
+
expect( newBlock ).toBeVisible();
|
|
44
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
45
|
+
} );
|
|
46
|
+
|
|
47
|
+
it( 'unwraps content', async () => {
|
|
48
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
49
|
+
const { getByText } = screen;
|
|
50
|
+
fireEvent.press( getBlock( screen, block ) );
|
|
51
|
+
|
|
52
|
+
await openBlockActionsMenu( screen );
|
|
53
|
+
fireEvent.press( getByText( 'Transform block…' ) );
|
|
54
|
+
fireEvent.press( getByText( 'Unwrap' ) );
|
|
55
|
+
|
|
56
|
+
// The first block created is the content of the Paragraph block.
|
|
57
|
+
const paragraph = getBlock( screen, 'Paragraph', 0 );
|
|
58
|
+
expect( paragraph ).toBeVisible();
|
|
59
|
+
// The second block created is the content of the citation element.
|
|
60
|
+
const citation = getBlock( screen, 'Paragraph', 1 );
|
|
61
|
+
expect( citation ).toBeVisible();
|
|
62
|
+
|
|
63
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
64
|
+
} );
|
|
65
|
+
|
|
66
|
+
it( 'matches expected transformation options', async () => {
|
|
67
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
68
|
+
const transformOptions = await getBlockTransformOptions(
|
|
69
|
+
screen,
|
|
70
|
+
block,
|
|
71
|
+
{ canUnwrap: true }
|
|
72
|
+
);
|
|
73
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
74
|
+
} );
|
|
75
|
+
} );
|