@wordpress/block-library 9.48.0 → 9.48.1
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 +7 -1
- package/build/columns/transforms.cjs +65 -0
- package/build/columns/transforms.cjs.map +2 -2
- package/build/gallery/edit.cjs +212 -331
- package/build/gallery/edit.cjs.map +2 -2
- package/build/gallery/transforms.cjs +43 -0
- package/build/gallery/transforms.cjs.map +2 -2
- package/build/heading/edit.cjs +0 -1
- package/build/heading/edit.cjs.map +2 -2
- package/build/list/edit.cjs +1 -8
- package/build/list/edit.cjs.map +2 -2
- package/build/list/ordered-list-settings.cjs +1 -44
- package/build/list/ordered-list-settings.cjs.map +2 -2
- package/build/list-item/hooks/use-merge.cjs +47 -24
- package/build/list-item/hooks/use-merge.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +15 -26
- package/build/navigation/edit/index.cjs.map +2 -2
- package/build/navigation-link/edit.cjs +0 -1
- package/build/navigation-link/edit.cjs.map +2 -2
- package/build/navigation-submenu/edit.cjs +2 -1
- package/build/navigation-submenu/edit.cjs.map +2 -2
- package/build/paragraph/deprecated.cjs +1 -0
- package/build/paragraph/deprecated.cjs.map +2 -2
- package/build/paragraph/edit.cjs +10 -1
- package/build/paragraph/edit.cjs.map +3 -3
- package/build/playlist/block.json +12 -0
- package/build/playlist/edit.cjs +27 -1
- package/build/playlist/edit.cjs.map +2 -2
- package/build/playlist/save.cjs +8 -1
- package/build/playlist/save.cjs.map +2 -2
- package/build/playlist/view.cjs +1 -0
- package/build/playlist/view.cjs.map +2 -2
- package/build/post-time-to-read/index.cjs +1 -1
- package/build/post-time-to-read/index.cjs.map +2 -2
- package/build/post-time-to-read/variations.cjs +1 -1
- package/build/post-time-to-read/variations.cjs.map +2 -2
- package/build/pullquote/edit.cjs +2 -7
- package/build/pullquote/edit.cjs.map +2 -2
- package/build/quote/edit.cjs +4 -9
- package/build/quote/edit.cjs.map +2 -2
- package/build/shortcode/transforms.cjs +2 -2
- package/build/shortcode/transforms.cjs.map +2 -2
- package/build/utils/waveform-player.cjs +42 -9
- package/build/utils/waveform-player.cjs.map +2 -2
- package/build/utils/waveform-utils.cjs +6 -4
- package/build/utils/waveform-utils.cjs.map +2 -2
- package/build/video/edit-common-settings.cjs +3 -6
- package/build/video/edit-common-settings.cjs.map +2 -2
- package/build-module/columns/transforms.mjs +65 -0
- package/build-module/columns/transforms.mjs.map +2 -2
- package/build-module/gallery/edit.mjs +214 -334
- package/build-module/gallery/edit.mjs.map +2 -2
- package/build-module/gallery/transforms.mjs +43 -0
- package/build-module/gallery/transforms.mjs.map +2 -2
- package/build-module/heading/edit.mjs +1 -2
- package/build-module/heading/edit.mjs.map +2 -2
- package/build-module/list/edit.mjs +2 -9
- package/build-module/list/edit.mjs.map +2 -2
- package/build-module/list/ordered-list-settings.mjs +1 -45
- package/build-module/list/ordered-list-settings.mjs.map +2 -2
- package/build-module/list-item/hooks/use-merge.mjs +48 -25
- package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +16 -33
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation-link/edit.mjs +0 -1
- package/build-module/navigation-link/edit.mjs.map +2 -2
- package/build-module/navigation-submenu/edit.mjs +2 -1
- package/build-module/navigation-submenu/edit.mjs.map +2 -2
- package/build-module/paragraph/deprecated.mjs +1 -0
- package/build-module/paragraph/deprecated.mjs.map +2 -2
- package/build-module/paragraph/edit.mjs +12 -2
- package/build-module/paragraph/edit.mjs.map +2 -2
- package/build-module/playlist/block.json +12 -0
- package/build-module/playlist/edit.mjs +27 -1
- package/build-module/playlist/edit.mjs.map +2 -2
- package/build-module/playlist/save.mjs +8 -1
- package/build-module/playlist/save.mjs.map +2 -2
- package/build-module/playlist/view.mjs +1 -0
- package/build-module/playlist/view.mjs.map +2 -2
- package/build-module/post-time-to-read/index.mjs +1 -1
- package/build-module/post-time-to-read/index.mjs.map +2 -2
- package/build-module/post-time-to-read/variations.mjs +2 -2
- package/build-module/post-time-to-read/variations.mjs.map +2 -2
- package/build-module/pullquote/edit.mjs +2 -7
- package/build-module/pullquote/edit.mjs.map +2 -2
- package/build-module/quote/edit.mjs +5 -10
- package/build-module/quote/edit.mjs.map +2 -2
- package/build-module/shortcode/transforms.mjs +2 -2
- package/build-module/shortcode/transforms.mjs.map +2 -2
- package/build-module/utils/waveform-player.mjs +44 -11
- package/build-module/utils/waveform-player.mjs.map +2 -2
- package/build-module/utils/waveform-utils.mjs +6 -4
- package/build-module/utils/waveform-utils.mjs.map +2 -2
- package/build-module/video/edit-common-settings.mjs +4 -7
- package/build-module/video/edit-common-settings.mjs.map +2 -2
- package/build-style/comment-template/style-rtl.css +1 -0
- package/build-style/comment-template/style.css +1 -0
- package/build-style/common-rtl.css +30 -10
- package/build-style/common.css +30 -10
- package/build-style/cover/style-rtl.css +2 -1
- package/build-style/cover/style.css +2 -1
- package/build-style/editor-rtl.css +22 -11
- package/build-style/editor.css +22 -11
- package/build-style/form-input/style-rtl.css +2 -0
- package/build-style/form-input/style.css +2 -0
- package/build-style/gallery/style-rtl.css +4 -2
- package/build-style/gallery/style.css +4 -2
- package/build-style/media-text/style-rtl.css +2 -1
- package/build-style/media-text/style.css +2 -1
- package/build-style/playlist/style-rtl.css +3 -0
- package/build-style/playlist/style.css +3 -0
- package/build-style/query/editor-rtl.css +8 -4
- package/build-style/query/editor.css +8 -4
- package/build-style/read-more/style-rtl.css +1 -0
- package/build-style/read-more/style.css +1 -0
- package/build-style/reset-rtl.css +3 -1
- package/build-style/reset.css +3 -1
- package/build-style/search/style-rtl.css +3 -1
- package/build-style/search/style.css +3 -1
- package/build-style/site-logo/editor-rtl.css +2 -1
- package/build-style/site-logo/editor.css +2 -1
- package/build-style/style-rtl.css +53 -17
- package/build-style/style.css +53 -17
- package/build-style/tab/style-rtl.css +3 -1
- package/build-style/tab/style.css +3 -1
- package/build-style/template-part/editor-rtl.css +8 -4
- package/build-style/template-part/editor.css +8 -4
- package/build-style/video/style-rtl.css +2 -1
- package/build-style/video/style.css +2 -1
- package/package.json +49 -45
- package/src/accordion/README.md +97 -0
- package/src/accordion-heading/README.md +81 -0
- package/src/accordion-item/README.md +85 -0
- package/src/accordion-panel/README.md +74 -0
- package/src/archives/README.md +56 -0
- package/src/audio/README.md +55 -0
- package/src/avatar/README.md +74 -0
- package/src/block/README.md +56 -0
- package/src/breadcrumbs/README.md +67 -0
- package/src/button/README.md +93 -0
- package/src/buttons/README.md +80 -0
- package/src/calendar/README.md +51 -0
- package/src/categories/README.md +69 -0
- package/src/code/README.md +55 -0
- package/src/column/README.md +72 -0
- package/src/columns/README.md +90 -0
- package/src/columns/test/transforms.js +164 -0
- package/src/columns/transforms.js +74 -0
- package/src/comment-author-avatar/README.md +63 -0
- package/src/comment-author-name/README.md +67 -0
- package/src/comment-content/README.md +61 -0
- package/src/comment-date/README.md +67 -0
- package/src/comment-edit-link/README.md +67 -0
- package/src/comment-reply-link/README.md +63 -0
- package/src/comment-template/README.md +60 -0
- package/src/comments/README.md +88 -0
- package/src/comments-pagination/README.md +77 -0
- package/src/comments-pagination-next/README.md +64 -0
- package/src/comments-pagination-numbers/README.md +64 -0
- package/src/comments-pagination-previous/README.md +64 -0
- package/src/comments-title/README.md +70 -0
- package/src/common.scss +63 -10
- package/src/cover/README.md +111 -0
- package/src/details/README.md +65 -0
- package/src/embed/README.md +56 -0
- package/src/file/README.md +60 -0
- package/src/footnotes/README.md +64 -0
- package/src/form/README.md +90 -0
- package/src/form-input/README.md +74 -0
- package/src/form-submission-notification/README.md +50 -0
- package/src/form-submit-button/README.md +54 -0
- package/src/freeform/README.md +49 -0
- package/src/gallery/README.md +115 -0
- package/src/gallery/edit.js +213 -350
- package/src/gallery/test/transforms.js +155 -0
- package/src/gallery/transforms.js +47 -0
- package/src/group/README.md +80 -0
- package/src/heading/README.md +60 -0
- package/src/heading/edit.js +1 -2
- package/src/home-link/README.md +66 -0
- package/src/home-link/index.php +3 -15
- package/src/html/README.md +48 -0
- package/src/icon/README.md +63 -0
- package/src/image/README.md +102 -0
- package/src/image/index.php +4 -4
- package/src/latest-comments/README.md +57 -0
- package/src/latest-posts/README.md +71 -0
- package/src/list/README.md +70 -0
- package/src/list/edit.js +2 -9
- package/src/list/ordered-list-settings.js +46 -92
- package/src/list-item/README.md +71 -0
- package/src/list-item/hooks/use-merge.js +53 -46
- package/src/loginout/README.md +56 -0
- package/src/math/README.md +50 -0
- package/src/media-text/README.md +92 -0
- package/src/missing/README.md +55 -0
- package/src/more/README.md +49 -0
- package/src/navigation/README.md +115 -0
- package/src/navigation/edit/index.js +10 -30
- package/src/navigation-link/README.md +93 -0
- package/src/navigation-link/edit.js +0 -1
- package/src/navigation-link/index.php +1 -15
- package/src/navigation-overlay-close/README.md +48 -0
- package/src/navigation-submenu/README.md +84 -0
- package/src/navigation-submenu/edit.js +1 -0
- package/src/navigation-submenu/index.php +1 -17
- package/src/nextpage/README.md +50 -0
- package/src/page-list/README.md +84 -0
- package/src/page-list/index.php +3 -15
- package/src/page-list-item/README.md +77 -0
- package/src/paragraph/README.md +70 -0
- package/src/paragraph/deprecated.js +1 -0
- package/src/paragraph/edit.js +13 -1
- package/src/pattern/README.md +45 -0
- package/src/playlist/README.md +86 -0
- package/src/playlist/block.json +12 -0
- package/src/playlist/edit.js +27 -0
- package/src/playlist/index.php +10 -3
- package/src/playlist/save.js +9 -1
- package/src/playlist/style.scss +7 -0
- package/src/playlist/view.js +1 -0
- package/src/playlist-track/README.md +69 -0
- package/src/post-author/README.md +78 -0
- package/src/post-author-biography/README.md +59 -0
- package/src/post-author-name/README.md +63 -0
- package/src/post-author-name/index.php +1 -1
- package/src/post-comment/README.md +61 -0
- package/src/post-comments-count/README.md +58 -0
- package/src/post-comments-form/README.md +59 -0
- package/src/post-comments-link/README.md +60 -0
- package/src/post-content/README.md +71 -0
- package/src/post-date/README.md +65 -0
- package/src/post-date/index.php +1 -1
- package/src/post-excerpt/README.md +66 -0
- package/src/post-featured-image/README.md +85 -0
- package/src/post-featured-image/index.php +1 -1
- package/src/post-navigation-link/README.md +63 -0
- package/src/post-template/README.md +71 -0
- package/src/post-terms/README.md +65 -0
- package/src/post-time-to-read/README.md +63 -0
- package/src/post-time-to-read/index.js +1 -1
- package/src/post-time-to-read/variations.js +2 -2
- package/src/post-title/README.md +69 -0
- package/src/preformatted/README.md +50 -0
- package/src/pullquote/README.md +64 -0
- package/src/pullquote/edit.js +1 -7
- package/src/query/README.md +64 -0
- package/src/query-no-results/README.md +65 -0
- package/src/query-pagination/README.md +79 -0
- package/src/query-pagination-next/README.md +67 -0
- package/src/query-pagination-numbers/README.md +65 -0
- package/src/query-pagination-previous/README.md +67 -0
- package/src/query-title/README.md +65 -0
- package/src/query-total/README.md +66 -0
- package/src/quote/README.md +75 -0
- package/src/quote/edit.js +3 -9
- package/src/read-more/README.md +61 -0
- package/src/read-more/index.php +2 -2
- package/src/rss/README.md +62 -0
- package/src/search/README.md +66 -0
- package/src/separator/README.md +62 -0
- package/src/shortcode/README.md +44 -0
- package/src/shortcode/transforms.js +2 -2
- package/src/site-logo/README.md +72 -0
- package/src/site-tagline/README.md +56 -0
- package/src/site-title/README.md +57 -0
- package/src/social-link/README.md +64 -0
- package/src/social-links/README.md +98 -0
- package/src/spacer/README.md +53 -0
- package/src/tab/README.md +69 -0
- package/src/tab-list/README.md +79 -0
- package/src/tab-panel/README.md +75 -0
- package/src/tab-panels/README.md +75 -0
- package/src/table/README.md +71 -0
- package/src/table-of-contents/README.md +61 -0
- package/src/tabs/README.md +83 -0
- package/src/tag-cloud/README.md +62 -0
- package/src/template-part/README.md +48 -0
- package/src/term-count/README.md +59 -0
- package/src/term-description/README.md +60 -0
- package/src/term-name/README.md +65 -0
- package/src/term-template/README.md +65 -0
- package/src/terms-query/README.md +58 -0
- package/src/text-columns/README.md +51 -0
- package/src/utils/test/waveform-player.js +254 -0
- package/src/utils/waveform-player.js +90 -18
- package/src/utils/waveform-utils.js +15 -11
- package/src/verse/README.md +58 -0
- package/src/video/README.md +58 -0
- package/src/video/edit-common-settings.js +4 -7
- package/src/audio/edit.native.js +0 -250
- package/src/audio/style.native.scss +0 -13
- package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
- package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
- package/src/audio/test/edit.native.js +0 -132
- package/src/audio/test/transforms.native.js +0 -43
- package/src/audio/transforms.native.js +0 -12
- package/src/block/edit-title.native.js +0 -67
- package/src/block/edit.native.js +0 -247
- package/src/block/editor.native.scss +0 -125
- package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
- package/src/block/test/edit.native.js +0 -262
- package/src/block/test/transforms.native.js +0 -40
- package/src/button/color-background.native.js +0 -41
- package/src/button/edit.native.js +0 -567
- package/src/button/editor.native.scss +0 -70
- package/src/button/rich-text.android.scss +0 -6
- package/src/button/rich-text.ios.scss +0 -6
- package/src/buttons/edit.native.js +0 -157
- package/src/buttons/editor.native.scss +0 -11
- package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
- package/src/buttons/test/edit.native.js +0 -485
- package/src/buttons/test/transforms.native.js +0 -48
- package/src/buttons/transforms.native.js +0 -12
- package/src/code/edit.native.js +0 -70
- package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
- package/src/code/test/edit.native.js +0 -65
- package/src/code/theme.native.scss +0 -22
- package/src/code/transforms.native.js +0 -12
- package/src/column/column-preview.native.js +0 -58
- package/src/column/edit.native.js +0 -273
- package/src/column/editor.native.scss +0 -75
- package/src/columns/columnCalculations.native.js +0 -178
- package/src/columns/edit.native.js +0 -507
- package/src/columns/editor.native.scss +0 -17
- package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
- package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
- package/src/columns/test/edit.native.js +0 -496
- package/src/columns/test/transforms.native.js +0 -89
- package/src/columns/transforms.native.js +0 -12
- package/src/cover/controls.native.js +0 -307
- package/src/cover/edit.native.js +0 -708
- package/src/cover/focal-point-settings-button.native.js +0 -53
- package/src/cover/overlay-color-settings.native.js +0 -106
- package/src/cover/style.native.scss +0 -220
- package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
- package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
- package/src/cover/test/edit.native.js +0 -701
- package/src/cover/test/transforms.native.js +0 -116
- package/src/cover/transforms.native.js +0 -12
- package/src/cover/use-cover-is-dark.native.js +0 -51
- package/src/embed/edit.native.js +0 -345
- package/src/embed/embed-controls.native.js +0 -65
- package/src/embed/embed-link-settings.native.js +0 -99
- package/src/embed/embed-loading.native.js +0 -29
- package/src/embed/embed-no-preview.native.js +0 -230
- package/src/embed/embed-placeholder.native.js +0 -178
- package/src/embed/embed-preview.native.js +0 -157
- package/src/embed/styles.native.scss +0 -196
- package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
- package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
- package/src/embed/test/index.native.js +0 -1125
- package/src/embed/test/transforms.native.js +0 -44
- package/src/embed/transforms.native.js +0 -12
- package/src/embed/wp-embed-preview.native.js +0 -80
- package/src/file/edit.native.js +0 -605
- package/src/file/style.native.scss +0 -79
- package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
- package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/file/test/edit.native.js +0 -93
- package/src/file/test/transforms.native.js +0 -43
- package/src/file/transforms.native.js +0 -12
- package/src/freeform/edit.native.js +0 -13
- package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/freeform/test/index.native.js +0 -57
- package/src/freeform/test/transforms.native.js +0 -39
- package/src/gallery/gallery-styles.native.scss +0 -8
- package/src/gallery/gallery.native.js +0 -124
- package/src/gallery/styles.native.scss +0 -7
- package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
- package/src/gallery/test/helpers.native.js +0 -106
- package/src/gallery/test/index.native.js +0 -700
- package/src/gallery/test/transforms.native.js +0 -53
- package/src/gallery/test/use-get-media.native.js +0 -24
- package/src/gallery/transforms.native.js +0 -12
- package/src/gallery/use-get-media.native.js +0 -49
- package/src/group/edit.native.js +0 -137
- package/src/group/editor.native.scss +0 -56
- package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
- package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
- package/src/group/test/edit.native.js +0 -100
- package/src/group/test/transforms.native.js +0 -73
- package/src/heading/edit.native.js +0 -159
- package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
- package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
- package/src/heading/test/index.native.js +0 -257
- package/src/heading/test/transforms.native.js +0 -46
- package/src/heading/transforms.native.js +0 -12
- package/src/html/transforms.native.js +0 -11
- package/src/image/edit.native.js +0 -959
- package/src/image/styles.native.scss +0 -70
- package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
- package/src/image/test/edit.native.js +0 -459
- package/src/image/test/transforms.native.js +0 -49
- package/src/image/transforms.native.js +0 -12
- package/src/index.native.js +0 -274
- package/src/latest-posts/edit.native.js +0 -294
- package/src/latest-posts/style.native.scss +0 -47
- package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
- package/src/latest-posts/test/edit.native.js +0 -49
- package/src/latest-posts/test/transforms.native.js +0 -61
- package/src/list/tag-name.native.js +0 -12
- package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
- package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
- package/src/list/test/edit.native.js +0 -602
- package/src/list/test/transforms.native.js +0 -56
- package/src/list/transforms.native.js +0 -12
- package/src/list-item/edit.native.js +0 -175
- package/src/list-item/hooks/use-enter.native.js +0 -81
- package/src/list-item/icons.native.js +0 -34
- package/src/list-item/list-style-type.native.js +0 -146
- package/src/list-item/style.native.scss +0 -57
- package/src/media-text/edit.native.js +0 -417
- package/src/media-text/icon-retry.native.js +0 -11
- package/src/media-text/media-container.native.js +0 -393
- package/src/media-text/style.native.scss +0 -191
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
- package/src/media-text/test/edit.native.js +0 -58
- package/src/media-text/test/transforms.native.js +0 -116
- package/src/media-text/transforms.native.js +0 -12
- package/src/missing/edit.native.js +0 -294
- package/src/missing/style.native.scss +0 -79
- package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
- package/src/missing/test/edit-integration.native.js +0 -168
- package/src/missing/test/edit.native.js +0 -81
- package/src/more/edit.native.js +0 -36
- package/src/more/editor.native.scss +0 -21
- package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
- package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/more/test/edit.native.js +0 -41
- package/src/more/test/transforms.native.js +0 -42
- package/src/more/transforms.native.js +0 -12
- package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
- package/src/nextpage/edit.native.js +0 -58
- package/src/nextpage/editor.native.scss +0 -21
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/nextpage/test/transforms.native.js +0 -42
- package/src/nextpage/transforms.native.js +0 -12
- package/src/paragraph/edit.native.js +0 -116
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
- package/src/paragraph/test/edit.native.js +0 -999
- package/src/paragraph/test/transforms.native.js +0 -51
- package/src/paragraph/transforms.native.js +0 -12
- package/src/preformatted/edit.native.js +0 -48
- package/src/preformatted/styles.native.scss +0 -30
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
- package/src/preformatted/test/edit.native.js +0 -111
- package/src/preformatted/test/transforms.native.js +0 -47
- package/src/preformatted/transforms.native.js +0 -12
- package/src/pullquote/blockquote.native.js +0 -39
- package/src/pullquote/blockquote.native.scss +0 -8
- package/src/pullquote/edit.native.js +0 -128
- package/src/pullquote/figure.native.js +0 -33
- package/src/pullquote/figure.native.scss +0 -16
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
- package/src/pullquote/test/edit.native.js +0 -73
- package/src/pullquote/test/transforms.native.js +0 -46
- package/src/pullquote/transforms.native.js +0 -12
- package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
- package/src/quote/test/edit.native.js +0 -94
- package/src/quote/test/transforms.native.js +0 -69
- package/src/quote/transforms.native.js +0 -12
- package/src/search/edit.native.js +0 -486
- package/src/search/style.native.scss +0 -99
- package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
- package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
- package/src/search/test/edit.native.js +0 -170
- package/src/search/test/transforms.native.js +0 -40
- package/src/separator/separator-settings.native.js +0 -3
- package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
- package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
- package/src/separator/test/edit.native.js +0 -41
- package/src/separator/test/transforms.native.js +0 -42
- package/src/separator/transforms.native.js +0 -12
- package/src/shortcode/edit.native.js +0 -77
- package/src/shortcode/style.native.scss +0 -44
- package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/shortcode/test/edit.native.js +0 -70
- package/src/shortcode/test/transforms.native.js +0 -42
- package/src/shortcode/transforms.native.js +0 -12
- package/src/social-link/edit.native.js +0 -219
- package/src/social-link/editor.native.scss +0 -18
- package/src/social-links/edit.native.js +0 -147
- package/src/social-links/editor.native.scss +0 -25
- package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
- package/src/social-links/test/edit.native.js +0 -266
- package/src/social-links/test/transforms.native.js +0 -53
- package/src/spacer/controls.native.js +0 -86
- package/src/spacer/edit.native.js +0 -110
- package/src/spacer/editor.native.scss +0 -18
- package/src/spacer/save.native.js +0 -18
- package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
- package/src/spacer/test/index.native.js +0 -257
- package/src/spacer/test/transforms.native.js +0 -42
- package/src/table/transforms.native.js +0 -11
- package/src/text-columns/transforms.native.js +0 -12
- package/src/utils/init-block.native.js +0 -40
- package/src/utils/transformation-categories.native.js +0 -47
- package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
- package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
- package/src/verse/test/edit.native.js +0 -118
- package/src/verse/test/transforms.native.js +0 -46
- package/src/verse/transforms.native.js +0 -12
- package/src/video/edit.native.js +0 -406
- package/src/video/icon-retry.native.js +0 -11
- package/src/video/style.native.scss +0 -81
- package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
- package/src/video/test/edit.native.js +0 -53
- package/src/video/test/transforms.native.js +0 -49
- package/src/video/transforms.native.js +0 -12
|
@@ -1,116 +0,0 @@
|
|
|
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 = 'Cover';
|
|
13
|
-
const initialHtmlWithImage = `
|
|
14
|
-
<!-- wp:cover {"url":"https://cldup.com/cXyG__fTLN.jpg","id":890,"dimRatio":20,"overlayColor":"luminous-vivid-orange","isUserOverlayColor":true,"focalPoint":{"x":"0.63","y":"0.83"},"minHeight":219} -->
|
|
15
|
-
<div class="wp-block-cover" style="min-height:219px"><img class="wp-block-cover__image-background wp-image-890" alt="" src="https://cldup.com/cXyG__fTLN.jpg" style="object-position:63% 83%" data-object-fit="cover" data-object-position="63% 83%"/><span aria-hidden="true" class="wp-block-cover__background has-luminous-vivid-orange-background-color has-background-dim-20 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"align":"center","placeholder":"Write title…","className":"has-text-color has-very-light-gray-color","fontSize":"large"} -->
|
|
16
|
-
<p class="has-text-align-center has-text-color has-very-light-gray-color has-large-font-size">Cool cover</p>
|
|
17
|
-
<!-- /wp:paragraph --></div></div>
|
|
18
|
-
<!-- /wp:cover -->`;
|
|
19
|
-
const initialHtmlWithVideo = `
|
|
20
|
-
<!-- wp:cover {"url":"https://i.cloudup.com/YtZFJbuQCE.mov","id":891,"dimRatio":20,"overlayColor":"luminous-vivid-orange","isUserOverlayColor":true,"backgroundType":"video","focalPoint":{"x":"0.63","y":"0.83"},"minHeight":219,"isDark":false} -->
|
|
21
|
-
<div class="wp-block-cover is-light" style="min-height:219px"><video class="wp-block-cover__video-background intrinsic-ignore" autoplay muted loop playsinline src="https://i.cloudup.com/YtZFJbuQCE.mov" style="object-position:63% 83%" data-object-fit="cover" data-object-position="63% 83%"></video><span aria-hidden="true" class="wp-block-cover__background has-luminous-vivid-orange-background-color has-background-dim-20 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"align":"center","placeholder":"Write title…","className":"has-text-color has-very-light-gray-color","fontSize":"large"} -->
|
|
22
|
-
<p class="has-text-align-center has-text-color has-very-light-gray-color has-large-font-size">Cool cover</p>
|
|
23
|
-
<!-- /wp:paragraph --></div></div>
|
|
24
|
-
<!-- /wp:cover -->`;
|
|
25
|
-
|
|
26
|
-
const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
27
|
-
const blockTransformsWithImage = [
|
|
28
|
-
'Image',
|
|
29
|
-
'Media & Text',
|
|
30
|
-
...transformsWithInnerBlocks,
|
|
31
|
-
];
|
|
32
|
-
const blockTransformsWithVideo = [
|
|
33
|
-
'Video',
|
|
34
|
-
'Media & Text',
|
|
35
|
-
...transformsWithInnerBlocks,
|
|
36
|
-
];
|
|
37
|
-
|
|
38
|
-
setupCoreBlocks();
|
|
39
|
-
|
|
40
|
-
describe( `${ block } block transformations`, () => {
|
|
41
|
-
describe( 'with Image', () => {
|
|
42
|
-
test.each( blockTransformsWithImage )(
|
|
43
|
-
'to %s block',
|
|
44
|
-
async ( blockTransform ) => {
|
|
45
|
-
const screen = await initializeEditor( {
|
|
46
|
-
initialHtml: initialHtmlWithImage,
|
|
47
|
-
} );
|
|
48
|
-
const newBlock = await transformBlock(
|
|
49
|
-
screen,
|
|
50
|
-
block,
|
|
51
|
-
blockTransform,
|
|
52
|
-
{
|
|
53
|
-
isMediaBlock: true,
|
|
54
|
-
hasInnerBlocks:
|
|
55
|
-
transformsWithInnerBlocks.includes(
|
|
56
|
-
blockTransform
|
|
57
|
-
),
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
expect( newBlock ).toBeVisible();
|
|
61
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
62
|
-
}
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
it( 'matches expected transformation options', async () => {
|
|
66
|
-
const screen = await initializeEditor( {
|
|
67
|
-
initialHtml: initialHtmlWithImage,
|
|
68
|
-
} );
|
|
69
|
-
const transformOptions = await getBlockTransformOptions(
|
|
70
|
-
screen,
|
|
71
|
-
block
|
|
72
|
-
);
|
|
73
|
-
expect( transformOptions ).toHaveLength(
|
|
74
|
-
blockTransformsWithImage.length
|
|
75
|
-
);
|
|
76
|
-
} );
|
|
77
|
-
} );
|
|
78
|
-
|
|
79
|
-
describe( 'with Video', () => {
|
|
80
|
-
test.each( blockTransformsWithVideo )(
|
|
81
|
-
'to %s block',
|
|
82
|
-
async ( blockTransform ) => {
|
|
83
|
-
const screen = await initializeEditor( {
|
|
84
|
-
initialHtml: initialHtmlWithVideo,
|
|
85
|
-
} );
|
|
86
|
-
const newBlock = await transformBlock(
|
|
87
|
-
screen,
|
|
88
|
-
block,
|
|
89
|
-
blockTransform,
|
|
90
|
-
{
|
|
91
|
-
isMediaBlock: true,
|
|
92
|
-
hasInnerBlocks:
|
|
93
|
-
transformsWithInnerBlocks.includes(
|
|
94
|
-
blockTransform
|
|
95
|
-
),
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
expect( newBlock ).toBeVisible();
|
|
99
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
100
|
-
}
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
it( 'matches expected transformation options', async () => {
|
|
104
|
-
const screen = await initializeEditor( {
|
|
105
|
-
initialHtml: initialHtmlWithVideo,
|
|
106
|
-
} );
|
|
107
|
-
const transformOptions = await getBlockTransformOptions(
|
|
108
|
-
screen,
|
|
109
|
-
block
|
|
110
|
-
);
|
|
111
|
-
expect( transformOptions ).toHaveLength(
|
|
112
|
-
blockTransformsWithVideo.length
|
|
113
|
-
);
|
|
114
|
-
} );
|
|
115
|
-
} );
|
|
116
|
-
} );
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal dependencies
|
|
3
|
-
*/
|
|
4
|
-
import webTransforms from './transforms.js';
|
|
5
|
-
import transformationCategories from '../utils/transformation-categories';
|
|
6
|
-
|
|
7
|
-
const transforms = {
|
|
8
|
-
...webTransforms,
|
|
9
|
-
supportedMobileTransforms: transformationCategories.media,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export default transforms;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { colord } from 'colord';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* WordPress dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { useEffect, useState } from '@wordpress/element';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* useCoverIsDark is a hook that returns a boolean variable specifying if the cover
|
|
14
|
-
* background is dark or not.
|
|
15
|
-
*
|
|
16
|
-
* @param {?boolean} initialValue Initial value.
|
|
17
|
-
* @param {?string} url Url of the media background.
|
|
18
|
-
* @param {?number} dimRatio Transparency of the overlay color. If an image and
|
|
19
|
-
* color are set, dimRatio is used to decide what is used
|
|
20
|
-
* for background darkness checking purposes.
|
|
21
|
-
* @param {?string} overlayColor String containing the overlay color value if one exists.
|
|
22
|
-
*
|
|
23
|
-
* @return {boolean} True if the cover background is considered "dark" and false otherwise.
|
|
24
|
-
*/
|
|
25
|
-
export default function useCoverIsDark(
|
|
26
|
-
initialValue = false,
|
|
27
|
-
url,
|
|
28
|
-
dimRatio = 50,
|
|
29
|
-
overlayColor
|
|
30
|
-
) {
|
|
31
|
-
const [ isDark, setIsDark ] = useState( initialValue );
|
|
32
|
-
useEffect( () => {
|
|
33
|
-
// If opacity is greater than 50 the dominant color is the overlay color,
|
|
34
|
-
// so use that color for the dark mode computation.
|
|
35
|
-
if ( dimRatio > 50 || ! url ) {
|
|
36
|
-
if ( ! overlayColor ) {
|
|
37
|
-
// If no overlay color exists the overlay color is black (isDark )
|
|
38
|
-
setIsDark( true );
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
setIsDark( colord( overlayColor ).isDark() );
|
|
42
|
-
}
|
|
43
|
-
}, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );
|
|
44
|
-
useEffect( () => {
|
|
45
|
-
if ( ! url && ! overlayColor ) {
|
|
46
|
-
// Reset isDark.
|
|
47
|
-
setIsDark( false );
|
|
48
|
-
}
|
|
49
|
-
}, [ ! url && ! overlayColor, setIsDark ] );
|
|
50
|
-
return isDark;
|
|
51
|
-
}
|
package/src/embed/edit.native.js
DELETED
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { _x } from '@wordpress/i18n';
|
|
10
|
-
import { useCallback, useState, useEffect } from '@wordpress/element';
|
|
11
|
-
import { useDispatch, useSelect } from '@wordpress/data';
|
|
12
|
-
import {
|
|
13
|
-
useBlockProps,
|
|
14
|
-
store as blockEditorStore,
|
|
15
|
-
} from '@wordpress/block-editor';
|
|
16
|
-
import { store as coreStore } from '@wordpress/core-data';
|
|
17
|
-
import { View } from '@wordpress/primitives';
|
|
18
|
-
/**
|
|
19
|
-
* Internal dependencies
|
|
20
|
-
*/
|
|
21
|
-
import {
|
|
22
|
-
createUpgradedEmbedBlock,
|
|
23
|
-
findMoreSuitableBlock,
|
|
24
|
-
getClassNames,
|
|
25
|
-
rewriteXToTwitter,
|
|
26
|
-
removeAspectRatioClasses,
|
|
27
|
-
fallback,
|
|
28
|
-
getEmbedInfoByProvider,
|
|
29
|
-
getMergedAttributesWithPreview,
|
|
30
|
-
} from './util';
|
|
31
|
-
import EmbedControls from './embed-controls';
|
|
32
|
-
import { embedContentIcon } from './icons';
|
|
33
|
-
import EmbedLoading from './embed-loading';
|
|
34
|
-
import EmbedPlaceholder from './embed-placeholder';
|
|
35
|
-
import EmbedPreview from './embed-preview';
|
|
36
|
-
import EmbedLinkSettings from './embed-link-settings';
|
|
37
|
-
|
|
38
|
-
// The inline preview feature will be released progressible, for this reason
|
|
39
|
-
// the embed will only be considered previewable for the following providers list.
|
|
40
|
-
const PREVIEWABLE_PROVIDERS = [ 'youtube', 'twitter', 'instagram', 'vimeo' ];
|
|
41
|
-
// Some providers are rendering the inline preview as a WordPress embed and
|
|
42
|
-
// are not supported yet, so we need to disallow them with a fixed providers list.
|
|
43
|
-
const NOT_PREVIEWABLE_WP_EMBED_PROVIDERS = [ 'pinterest' ];
|
|
44
|
-
|
|
45
|
-
const WP_EMBED_TYPE = 'wp-embed';
|
|
46
|
-
|
|
47
|
-
const EmbedEdit = ( props ) => {
|
|
48
|
-
const {
|
|
49
|
-
attributes: { align, providerNameSlug, previewable, responsive, url },
|
|
50
|
-
attributes,
|
|
51
|
-
isSelected,
|
|
52
|
-
onReplace,
|
|
53
|
-
setAttributes,
|
|
54
|
-
insertBlocksAfter,
|
|
55
|
-
onFocus,
|
|
56
|
-
clientId,
|
|
57
|
-
} = props;
|
|
58
|
-
|
|
59
|
-
const defaultEmbedInfo = {
|
|
60
|
-
title: _x( 'Embed', 'block title' ),
|
|
61
|
-
icon: embedContentIcon,
|
|
62
|
-
};
|
|
63
|
-
const embedInfoByProvider = getEmbedInfoByProvider( providerNameSlug );
|
|
64
|
-
const { icon, title } = embedInfoByProvider || defaultEmbedInfo;
|
|
65
|
-
|
|
66
|
-
const { wasBlockJustInserted } = useSelect(
|
|
67
|
-
( select ) => ( {
|
|
68
|
-
wasBlockJustInserted: select(
|
|
69
|
-
blockEditorStore
|
|
70
|
-
).wasBlockJustInserted( clientId, 'inserter_menu' ),
|
|
71
|
-
} ),
|
|
72
|
-
[ clientId ]
|
|
73
|
-
);
|
|
74
|
-
const [ isEditingURL, setIsEditingURL ] = useState(
|
|
75
|
-
isSelected && wasBlockJustInserted && ! url
|
|
76
|
-
);
|
|
77
|
-
const [ showEmbedBottomSheet, setShowEmbedBottomSheet ] =
|
|
78
|
-
useState( isEditingURL );
|
|
79
|
-
const { invalidateResolution } = useDispatch( coreStore );
|
|
80
|
-
const { __unstableMarkNextChangeAsNotPersistent } =
|
|
81
|
-
useDispatch( blockEditorStore );
|
|
82
|
-
|
|
83
|
-
const { preview, fetching, themeSupportsResponsive, cannotEmbed } =
|
|
84
|
-
useSelect(
|
|
85
|
-
( select ) => {
|
|
86
|
-
const {
|
|
87
|
-
getEmbedPreview,
|
|
88
|
-
hasFinishedResolution,
|
|
89
|
-
isPreviewEmbedFallback,
|
|
90
|
-
getThemeSupports,
|
|
91
|
-
} = select( coreStore );
|
|
92
|
-
if ( ! url ) {
|
|
93
|
-
return { fetching: false, cannotEmbed: false };
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const embedPreview = getEmbedPreview( url );
|
|
97
|
-
const hasResolvedEmbedPreview = hasFinishedResolution(
|
|
98
|
-
'getEmbedPreview',
|
|
99
|
-
[ url ]
|
|
100
|
-
);
|
|
101
|
-
const previewIsFallback = isPreviewEmbedFallback( url );
|
|
102
|
-
|
|
103
|
-
// The external oEmbed provider does not exist. We got no type info and no html.
|
|
104
|
-
const badEmbedProvider =
|
|
105
|
-
embedPreview?.html === false &&
|
|
106
|
-
embedPreview?.type === undefined;
|
|
107
|
-
// Some WordPress URLs that can't be embedded will cause the API to return
|
|
108
|
-
// a valid JSON response with no HTML and `code` set to 404, rather
|
|
109
|
-
// than generating a fallback response as other embeds do.
|
|
110
|
-
const wordpressCantEmbed = embedPreview?.code === '404';
|
|
111
|
-
const validPreview =
|
|
112
|
-
!! embedPreview &&
|
|
113
|
-
! badEmbedProvider &&
|
|
114
|
-
! wordpressCantEmbed;
|
|
115
|
-
|
|
116
|
-
return {
|
|
117
|
-
preview: validPreview ? embedPreview : undefined,
|
|
118
|
-
fetching: ! hasResolvedEmbedPreview,
|
|
119
|
-
themeSupportsResponsive:
|
|
120
|
-
getThemeSupports()[ 'responsive-embeds' ],
|
|
121
|
-
cannotEmbed: ! validPreview || previewIsFallback,
|
|
122
|
-
};
|
|
123
|
-
},
|
|
124
|
-
[ url ]
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Returns the attributes derived from the preview, merged with the current attributes.
|
|
129
|
-
*
|
|
130
|
-
* @return {Object} Merged attributes.
|
|
131
|
-
*/
|
|
132
|
-
const getMergedAttributes = () =>
|
|
133
|
-
getMergedAttributesWithPreview(
|
|
134
|
-
attributes,
|
|
135
|
-
preview,
|
|
136
|
-
title,
|
|
137
|
-
responsive
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
const toggleResponsive = () => {
|
|
141
|
-
const { allowResponsive, className } = attributes;
|
|
142
|
-
const { html } = preview;
|
|
143
|
-
const newAllowResponsive = ! allowResponsive;
|
|
144
|
-
|
|
145
|
-
setAttributes( {
|
|
146
|
-
allowResponsive: newAllowResponsive,
|
|
147
|
-
className: getClassNames(
|
|
148
|
-
html,
|
|
149
|
-
className,
|
|
150
|
-
responsive && newAllowResponsive
|
|
151
|
-
),
|
|
152
|
-
} );
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
// When the preview can't be embedded, retry without any trailing slash.
|
|
156
|
-
useEffect( () => {
|
|
157
|
-
if ( ! cannotEmbed || fetching || ! url ) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const newURL = url.replace( /\/$/, '' );
|
|
162
|
-
if ( newURL === url ) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
setIsEditingURL( false );
|
|
167
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
168
|
-
setAttributes( { url: newURL } );
|
|
169
|
-
}, [
|
|
170
|
-
url,
|
|
171
|
-
cannotEmbed,
|
|
172
|
-
fetching,
|
|
173
|
-
setAttributes,
|
|
174
|
-
__unstableMarkNextChangeAsNotPersistent,
|
|
175
|
-
] );
|
|
176
|
-
|
|
177
|
-
// Apply preview-derived attributes once the preview resolves.
|
|
178
|
-
useEffect( () => {
|
|
179
|
-
if ( ! preview || isEditingURL ) {
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
const mergedAttributes = getMergedAttributes();
|
|
184
|
-
|
|
185
|
-
if ( onReplace ) {
|
|
186
|
-
const upgradedBlock = createUpgradedEmbedBlock(
|
|
187
|
-
props,
|
|
188
|
-
mergedAttributes
|
|
189
|
-
);
|
|
190
|
-
|
|
191
|
-
if ( upgradedBlock ) {
|
|
192
|
-
// Mutate via setAttributes; onReplace would remount the
|
|
193
|
-
// block and clear the URL textbox on undo.
|
|
194
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
195
|
-
setAttributes( upgradedBlock.attributes );
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
const hasChanges = Object.keys( mergedAttributes ).some(
|
|
201
|
-
( key ) => mergedAttributes[ key ] !== attributes[ key ]
|
|
202
|
-
);
|
|
203
|
-
|
|
204
|
-
if ( hasChanges ) {
|
|
205
|
-
// Merge into the URL-submit undo level so a single undo
|
|
206
|
-
// reverts both the submit and the preview-driven attributes.
|
|
207
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
208
|
-
setAttributes( mergedAttributes );
|
|
209
|
-
}
|
|
210
|
-
}, [ preview, isEditingURL ] );
|
|
211
|
-
|
|
212
|
-
useEffect(
|
|
213
|
-
() => setShowEmbedBottomSheet( isEditingURL ),
|
|
214
|
-
[ isEditingURL ]
|
|
215
|
-
);
|
|
216
|
-
|
|
217
|
-
const onEditURL = useCallback(
|
|
218
|
-
( value ) => {
|
|
219
|
-
const rewrittenURL = rewriteXToTwitter( value );
|
|
220
|
-
const urlChanged = attributes.url !== rewrittenURL;
|
|
221
|
-
|
|
222
|
-
// The order of the following calls is important, we need to update the URL attribute before changing `isEditingURL`,
|
|
223
|
-
// otherwise the side-effect that potentially replaces the block when updating the local state won't use the new URL
|
|
224
|
-
// for creating the new block.
|
|
225
|
-
setAttributes( {
|
|
226
|
-
url: rewrittenURL,
|
|
227
|
-
...findMoreSuitableBlock( rewrittenURL )?.attributes,
|
|
228
|
-
// If the embed URL was changed, reset the aspect ratio class so it can be recalculated.
|
|
229
|
-
...( urlChanged && {
|
|
230
|
-
className: removeAspectRatioClasses( attributes.className ),
|
|
231
|
-
} ),
|
|
232
|
-
} );
|
|
233
|
-
setIsEditingURL( false );
|
|
234
|
-
},
|
|
235
|
-
[ attributes, setAttributes ]
|
|
236
|
-
);
|
|
237
|
-
|
|
238
|
-
const blockProps = useBlockProps();
|
|
239
|
-
|
|
240
|
-
if ( fetching ) {
|
|
241
|
-
return (
|
|
242
|
-
<View { ...blockProps }>
|
|
243
|
-
<EmbedLoading />
|
|
244
|
-
</View>
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
const showEmbedPlaceholder = ! preview || cannotEmbed;
|
|
249
|
-
|
|
250
|
-
// Even though we set attributes that get derived from the preview,
|
|
251
|
-
// we don't access them directly because for the initial render,
|
|
252
|
-
// the `setAttributes` call will not have taken effect. If we're
|
|
253
|
-
// rendering responsive content, setting the responsive classes
|
|
254
|
-
// after the preview has been rendered can result in unwanted
|
|
255
|
-
// clipping or scrollbars. The `getAttributesFromPreview` function
|
|
256
|
-
// that `getMergedAttributes` uses is memoized so that we're not
|
|
257
|
-
// calculating them on every render.
|
|
258
|
-
const {
|
|
259
|
-
type,
|
|
260
|
-
allowResponsive,
|
|
261
|
-
className: classFromPreview,
|
|
262
|
-
} = getMergedAttributes();
|
|
263
|
-
const className = clsx( classFromPreview, props.className );
|
|
264
|
-
|
|
265
|
-
const isProviderPreviewable =
|
|
266
|
-
PREVIEWABLE_PROVIDERS.includes( providerNameSlug ) ||
|
|
267
|
-
// For WordPress embeds, we enable the inline preview for all its providers
|
|
268
|
-
// except the ones that are not supported yet.
|
|
269
|
-
( WP_EMBED_TYPE === type &&
|
|
270
|
-
! NOT_PREVIEWABLE_WP_EMBED_PROVIDERS.includes( providerNameSlug ) );
|
|
271
|
-
|
|
272
|
-
const linkLabel = WP_EMBED_TYPE === type ? 'WordPress' : title;
|
|
273
|
-
|
|
274
|
-
return (
|
|
275
|
-
<>
|
|
276
|
-
{ showEmbedPlaceholder ? (
|
|
277
|
-
<>
|
|
278
|
-
<View { ...blockProps }>
|
|
279
|
-
<EmbedPlaceholder
|
|
280
|
-
icon={ icon }
|
|
281
|
-
isSelected={ isSelected }
|
|
282
|
-
label={ title }
|
|
283
|
-
onPress={ ( event ) => {
|
|
284
|
-
onFocus( event );
|
|
285
|
-
setIsEditingURL( true );
|
|
286
|
-
} }
|
|
287
|
-
cannotEmbed={ cannotEmbed }
|
|
288
|
-
fallback={ () => fallback( url, onReplace ) }
|
|
289
|
-
tryAgain={ () => {
|
|
290
|
-
invalidateResolution( 'getEmbedPreview', [
|
|
291
|
-
url,
|
|
292
|
-
] );
|
|
293
|
-
} }
|
|
294
|
-
openEmbedLinkSettings={ () =>
|
|
295
|
-
setShowEmbedBottomSheet( true )
|
|
296
|
-
}
|
|
297
|
-
/>
|
|
298
|
-
</View>
|
|
299
|
-
</>
|
|
300
|
-
) : (
|
|
301
|
-
<>
|
|
302
|
-
<EmbedControls
|
|
303
|
-
themeSupportsResponsive={ themeSupportsResponsive }
|
|
304
|
-
blockSupportsResponsive={ responsive }
|
|
305
|
-
allowResponsive={ allowResponsive }
|
|
306
|
-
toggleResponsive={ toggleResponsive }
|
|
307
|
-
url={ url }
|
|
308
|
-
linkLabel={ linkLabel }
|
|
309
|
-
onEditURL={ onEditURL }
|
|
310
|
-
/>
|
|
311
|
-
<View { ...blockProps }>
|
|
312
|
-
<EmbedPreview
|
|
313
|
-
align={ align }
|
|
314
|
-
className={ className }
|
|
315
|
-
clientId={ clientId }
|
|
316
|
-
icon={ icon }
|
|
317
|
-
insertBlocksAfter={ insertBlocksAfter }
|
|
318
|
-
isSelected={ isSelected }
|
|
319
|
-
label={ title }
|
|
320
|
-
onFocus={ onFocus }
|
|
321
|
-
preview={ preview }
|
|
322
|
-
isProviderPreviewable={ isProviderPreviewable }
|
|
323
|
-
previewable={ previewable }
|
|
324
|
-
type={ type }
|
|
325
|
-
url={ url }
|
|
326
|
-
isDefaultEmbedInfo={ ! embedInfoByProvider }
|
|
327
|
-
/>
|
|
328
|
-
</View>
|
|
329
|
-
</>
|
|
330
|
-
) }
|
|
331
|
-
<EmbedLinkSettings
|
|
332
|
-
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
333
|
-
autoFocus
|
|
334
|
-
value={ url }
|
|
335
|
-
label={ linkLabel }
|
|
336
|
-
isVisible={ showEmbedBottomSheet }
|
|
337
|
-
onClose={ () => setShowEmbedBottomSheet( false ) }
|
|
338
|
-
onSubmit={ onEditURL }
|
|
339
|
-
withBottomSheet
|
|
340
|
-
/>
|
|
341
|
-
</>
|
|
342
|
-
);
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
export default EmbedEdit;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal dependencies
|
|
3
|
-
*/
|
|
4
|
-
import EmbedLinkSettings from './embed-link-settings';
|
|
5
|
-
/**
|
|
6
|
-
* WordPress dependencies
|
|
7
|
-
*/
|
|
8
|
-
import { __ } from '@wordpress/i18n';
|
|
9
|
-
import { PanelBody, ToggleControl } from '@wordpress/components';
|
|
10
|
-
import { InspectorControls } from '@wordpress/block-editor';
|
|
11
|
-
import { useDispatch } from '@wordpress/data';
|
|
12
|
-
// eslint-disable-next-line no-restricted-imports
|
|
13
|
-
import { store as editPostStore } from '@wordpress/edit-post';
|
|
14
|
-
|
|
15
|
-
function getResponsiveHelp( checked ) {
|
|
16
|
-
return checked
|
|
17
|
-
? __(
|
|
18
|
-
'This embed will preserve its aspect ratio when the browser is resized.'
|
|
19
|
-
)
|
|
20
|
-
: __(
|
|
21
|
-
'This embed may not preserve its aspect ratio when the browser is resized.'
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const EmbedControls = ( {
|
|
26
|
-
blockSupportsResponsive,
|
|
27
|
-
themeSupportsResponsive,
|
|
28
|
-
allowResponsive,
|
|
29
|
-
toggleResponsive,
|
|
30
|
-
url,
|
|
31
|
-
linkLabel,
|
|
32
|
-
onEditURL,
|
|
33
|
-
} ) => {
|
|
34
|
-
const { closeGeneralSidebar: closeSettingsBottomSheet } =
|
|
35
|
-
useDispatch( editPostStore );
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<>
|
|
39
|
-
<InspectorControls>
|
|
40
|
-
{ themeSupportsResponsive && blockSupportsResponsive && (
|
|
41
|
-
<PanelBody title={ __( 'Media settings' ) }>
|
|
42
|
-
<ToggleControl
|
|
43
|
-
label={ __( 'Resize for smaller devices' ) }
|
|
44
|
-
checked={ allowResponsive }
|
|
45
|
-
help={ getResponsiveHelp }
|
|
46
|
-
onChange={ toggleResponsive }
|
|
47
|
-
/>
|
|
48
|
-
</PanelBody>
|
|
49
|
-
) }
|
|
50
|
-
<PanelBody title={ __( 'Link settings' ) }>
|
|
51
|
-
<EmbedLinkSettings
|
|
52
|
-
value={ url }
|
|
53
|
-
label={ linkLabel }
|
|
54
|
-
onSubmit={ ( value ) => {
|
|
55
|
-
closeSettingsBottomSheet();
|
|
56
|
-
onEditURL( value );
|
|
57
|
-
} }
|
|
58
|
-
/>
|
|
59
|
-
</PanelBody>
|
|
60
|
-
</InspectorControls>
|
|
61
|
-
</>
|
|
62
|
-
);
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export default EmbedControls;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
5
|
-
import {
|
|
6
|
-
LinkSettingsNavigation,
|
|
7
|
-
FooterMessageLink,
|
|
8
|
-
} from '@wordpress/components';
|
|
9
|
-
import { isURL } from '@wordpress/url';
|
|
10
|
-
import { useDispatch } from '@wordpress/data';
|
|
11
|
-
import { store as noticesStore } from '@wordpress/notices';
|
|
12
|
-
import { useCallback, useEffect, useRef, useState } from '@wordpress/element';
|
|
13
|
-
|
|
14
|
-
const EmbedLinkSettings = ( {
|
|
15
|
-
autoFocus,
|
|
16
|
-
value,
|
|
17
|
-
label,
|
|
18
|
-
isVisible,
|
|
19
|
-
onClose,
|
|
20
|
-
onSubmit,
|
|
21
|
-
withBottomSheet,
|
|
22
|
-
} ) => {
|
|
23
|
-
const url = useRef( value );
|
|
24
|
-
const [ inputURL, setInputURL ] = useState( value );
|
|
25
|
-
const { createErrorNotice } = useDispatch( noticesStore );
|
|
26
|
-
|
|
27
|
-
const linkSettingsOptions = {
|
|
28
|
-
url: {
|
|
29
|
-
label: sprintf(
|
|
30
|
-
// translators: %s: embed block variant's label e.g: "Twitter".
|
|
31
|
-
__( '%s link' ),
|
|
32
|
-
label
|
|
33
|
-
),
|
|
34
|
-
placeholder: __( 'Add link' ),
|
|
35
|
-
autoFocus,
|
|
36
|
-
autoFill: true,
|
|
37
|
-
},
|
|
38
|
-
footer: {
|
|
39
|
-
label: (
|
|
40
|
-
<FooterMessageLink
|
|
41
|
-
href={ __(
|
|
42
|
-
'https://wordpress.org/documentation/article/embeds/'
|
|
43
|
-
) }
|
|
44
|
-
value={ __( 'Learn more about embeds' ) }
|
|
45
|
-
/>
|
|
46
|
-
),
|
|
47
|
-
separatorType: 'topFullWidth',
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const onDismiss = useCallback( () => {
|
|
52
|
-
if ( ! isURL( url.current ) && url.current !== '' ) {
|
|
53
|
-
createErrorNotice( __( 'Invalid URL. Please enter a valid URL.' ) );
|
|
54
|
-
// If the URL was already defined, we submit it to stop showing the embed placeholder.
|
|
55
|
-
onSubmit( value );
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
onSubmit( url.current );
|
|
59
|
-
}, [ onSubmit, value ] );
|
|
60
|
-
|
|
61
|
-
useEffect( () => {
|
|
62
|
-
url.current = value;
|
|
63
|
-
setInputURL( value );
|
|
64
|
-
}, [ value ] );
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* If the Embed Bottom Sheet component does not utilize a bottom sheet then the onDismiss action is not
|
|
68
|
-
* called. Here we are wiring the onDismiss to the onClose callback that gets triggered when input is submitted.
|
|
69
|
-
*/
|
|
70
|
-
const performOnCloseOperations = useCallback( () => {
|
|
71
|
-
if ( onClose ) {
|
|
72
|
-
onClose();
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if ( ! withBottomSheet ) {
|
|
76
|
-
onDismiss();
|
|
77
|
-
}
|
|
78
|
-
}, [ onClose ] );
|
|
79
|
-
|
|
80
|
-
const onSetAttributes = useCallback( ( attributes ) => {
|
|
81
|
-
url.current = attributes.url;
|
|
82
|
-
setInputURL( attributes.url );
|
|
83
|
-
}, [] );
|
|
84
|
-
|
|
85
|
-
return (
|
|
86
|
-
<LinkSettingsNavigation
|
|
87
|
-
isVisible={ isVisible }
|
|
88
|
-
url={ inputURL }
|
|
89
|
-
onClose={ performOnCloseOperations }
|
|
90
|
-
onDismiss={ onDismiss }
|
|
91
|
-
setAttributes={ onSetAttributes }
|
|
92
|
-
options={ linkSettingsOptions }
|
|
93
|
-
withBottomSheet={ withBottomSheet }
|
|
94
|
-
showIcon
|
|
95
|
-
/>
|
|
96
|
-
);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
export default EmbedLinkSettings;
|