@wordpress/block-library 11.0.0 → 11.1.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 +29 -0
- package/README.md +7 -7
- package/build/accordion/block.json +4 -1
- package/build/accordion-item/block.json +7 -1
- package/build/accordion-panel/block.json +9 -1
- package/build/archives/block.json +9 -0
- package/build/archives/edit.cjs.map +3 -3
- package/build/audio/block.json +8 -0
- package/build/audio/edit.cjs.map +3 -3
- package/build/avatar/hooks.cjs.map +2 -2
- package/build/breadcrumbs/block.json +3 -0
- package/build/breadcrumbs/edit.cjs.map +3 -3
- package/build/button/edit.cjs.map +2 -2
- package/build/buttons/block.json +9 -0
- package/build/categories/block.json +12 -1
- package/build/categories/edit.cjs.map +3 -3
- package/build/code/block.json +10 -0
- package/build/code/save.cjs.map +2 -2
- package/build/column/block.json +9 -0
- package/build/columns/block.json +9 -0
- package/build/comment-author-name/block.json +3 -0
- package/build/comment-content/block.json +5 -0
- package/build/comment-date/block.json +3 -0
- package/build/comment-edit-link/block.json +3 -0
- package/build/comment-reply-link/block.json +3 -0
- package/build/comment-template/hooks.cjs.map +2 -2
- package/build/comments/block.json +10 -0
- package/build/comments-pagination/block.json +3 -0
- package/build/comments-pagination-next/block.json +3 -0
- package/build/comments-pagination-numbers/block.json +3 -0
- package/build/comments-pagination-previous/block.json +6 -0
- package/build/comments-title/block.json +3 -0
- package/build/cover/edit/index.cjs +4 -1
- package/build/cover/edit/index.cjs.map +2 -2
- package/build/cover/edit/inspector-controls.cjs +52 -13
- package/build/cover/edit/inspector-controls.cjs.map +2 -2
- package/build/cover/transforms.cjs.map +2 -2
- package/build/details/block.json +12 -0
- package/build/details/index.cjs.map +2 -2
- package/build/embed/embed-controls.cjs.map +2 -2
- package/build/file/block.json +9 -0
- package/build/file/deprecated.cjs.map +2 -2
- package/build/file/edit.cjs.map +2 -2
- package/build/file/inspector.cjs.map +3 -3
- package/build/file/save.cjs.map +2 -2
- package/build/footnotes/block.json +10 -0
- package/build/footnotes/edit.cjs.map +2 -2
- package/build/gallery/block.json +9 -0
- package/build/gallery/dynamic-gallery.cjs.map +3 -3
- package/build/gallery/edit.cjs +65 -39
- package/build/gallery/edit.cjs.map +3 -3
- package/build/gallery/{flex-styles.cjs → gallery-styles.cjs} +31 -32
- package/build/gallery/gallery-styles.cjs.map +7 -0
- package/build/gallery/responsive-styles.cjs +27 -5
- package/build/gallery/responsive-styles.cjs.map +2 -2
- package/build/group/block.json +1 -0
- package/build/heading/block.json +11 -0
- package/build/heading/index.cjs.map +2 -2
- package/build/home-link/block.json +18 -0
- package/build/home-link/edit.cjs.map +3 -3
- package/build/html/modal.cjs +3 -6
- package/build/html/modal.cjs.map +2 -2
- package/build/image/edit.cjs.map +2 -2
- package/build/image/image.cjs +10 -8
- package/build/image/image.cjs.map +3 -3
- package/build/image/use-open-image-media-editor-modal.cjs +20 -0
- package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
- package/build/index.cjs.map +2 -2
- package/build/latest-comments/block.json +10 -0
- package/build/latest-comments/edit.cjs.map +3 -3
- package/build/latest-posts/block.json +10 -0
- package/build/latest-posts/edit.cjs.map +2 -2
- package/build/list/ordered-list-settings.cjs.map +3 -3
- package/build/list-item/hooks/use-enter.cjs.map +2 -2
- package/build/loginout/block.json +10 -0
- package/build/math/block.json +12 -0
- package/build/math/deprecated.cjs +29 -12
- package/build/math/deprecated.cjs.map +2 -2
- package/build/math/edit.cjs +67 -46
- package/build/math/edit.cjs.map +2 -2
- package/build/math/save.cjs +2 -2
- package/build/math/save.cjs.map +2 -2
- package/build/media-text/block.json +1 -0
- package/build/media-text/constants.cjs +3 -0
- package/build/media-text/constants.cjs.map +2 -2
- package/build/media-text/deprecated.cjs.map +2 -2
- package/build/media-text/edit.cjs +40 -0
- package/build/media-text/edit.cjs.map +3 -3
- package/build/media-text/image-fill.cjs.map +2 -2
- package/build/media-text/media-container.cjs +3 -3
- package/build/media-text/media-container.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +1 -4
- package/build/navigation/edit/index.cjs.map +2 -2
- package/build/navigation/edit/menu-inspector-controls.cjs.map +2 -2
- package/build/navigation/edit/overlay-template-part-selector.cjs.map +3 -3
- package/build/navigation/edit/responsive-wrapper.cjs.map +2 -2
- package/build/navigation/edit/use-generate-default-navigation-title.cjs.map +2 -2
- package/build/navigation/view.cjs +2 -2
- package/build/navigation/view.cjs.map +2 -2
- package/build/navigation-link/edit.cjs.map +2 -2
- package/build/navigation-link/link-ui/page-creator.cjs.map +3 -3
- package/build/navigation-link/shared/controls.cjs.map +3 -3
- package/build/navigation-link/shared/invalid-draft-display.cjs.map +2 -2
- package/build/navigation-link/shared/use-link-preview.cjs +13 -13
- package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
- package/build/navigation-overlay-close/block.json +7 -0
- package/build/navigation-submenu/block.json +6 -0
- package/build/navigation-submenu/edit.cjs +9 -1
- package/build/navigation-submenu/edit.cjs.map +3 -3
- package/build/page-list/block.json +10 -0
- package/build/paragraph/block.json +1 -0
- package/build/paragraph/edit.cjs +1 -2
- package/build/paragraph/edit.cjs.map +2 -2
- package/build/paragraph/index.cjs +6 -0
- package/build/paragraph/index.cjs.map +3 -3
- package/build/playlist/block.json +1 -0
- package/build/playlist/edit.cjs +2 -1
- package/build/playlist/edit.cjs.map +3 -3
- package/build/post-author/edit.cjs.map +3 -3
- package/build/post-author-biography/block.json +4 -0
- package/build/post-author-name/block.json +5 -0
- package/build/post-author-name/edit.cjs.map +2 -2
- package/build/post-comments-count/block.json +3 -0
- package/build/post-comments-form/block.json +10 -0
- package/build/post-content/block.json +3 -0
- package/build/post-date/block.json +3 -0
- package/build/post-date/edit.cjs.map +2 -2
- package/build/post-excerpt/block.json +6 -0
- package/build/post-excerpt/edit.cjs.map +2 -2
- package/build/post-featured-image/edit.cjs +11 -9
- package/build/post-featured-image/edit.cjs.map +2 -2
- package/build/post-navigation-link/block.json +30 -0
- package/build/post-navigation-link/edit.cjs +13 -2
- package/build/post-navigation-link/edit.cjs.map +3 -3
- package/build/post-template/block.json +13 -1
- package/build/post-terms/block.json +6 -0
- package/build/post-time-to-read/block.json +6 -0
- package/build/post-time-to-read/edit.cjs.map +2 -2
- package/build/post-title/block.json +10 -0
- package/build/preformatted/block.json +7 -0
- package/build/pullquote/block.json +1 -0
- package/build/pullquote/deprecated.cjs.map +2 -2
- package/build/query/deprecated.cjs.map +2 -2
- package/build/query/edit/inspector-controls/index.cjs.map +3 -3
- package/build/query/edit/inspector-controls/order-control.cjs.map +3 -3
- package/build/query/edit/inspector-controls/sticky-control.cjs.map +3 -3
- package/build/query/view.cjs.map +2 -2
- package/build/query-no-results/block.json +10 -2
- package/build/query-pagination/block.json +3 -0
- package/build/query-pagination-next/block.json +3 -0
- package/build/query-pagination-numbers/block.json +3 -0
- package/build/query-pagination-previous/block.json +3 -0
- package/build/query-title/block.json +3 -0
- package/build/query-title/use-archive-label.cjs.map +2 -2
- package/build/query-total/block.json +6 -0
- package/build/quote/block.json +1 -0
- package/build/quote/deprecated.cjs.map +2 -2
- package/build/quote/transforms.cjs.map +2 -2
- package/build/read-more/block.json +6 -0
- package/build/rss/block.json +6 -0
- package/build/search/edit.cjs.map +3 -3
- package/build/separator/edit.cjs.map +3 -3
- package/build/site-tagline/block.json +8 -1
- package/build/site-title/block.json +7 -1
- package/build/social-links/block.json +3 -0
- package/build/social-links/edit.cjs +2 -3
- package/build/social-links/edit.cjs.map +3 -3
- package/build/tab-panel/block.json +25 -0
- package/build/tab-panel/controls.cjs.map +3 -3
- package/build/tab-panels/block.json +18 -1
- package/build/table/state.cjs.map +2 -2
- package/build/table-of-contents/block.json +7 -0
- package/build/table-of-contents/edit.cjs.map +3 -3
- package/build/table-of-contents/utils.cjs.map +2 -2
- package/build/tabs/block.json +24 -1
- package/build/tabs/use-tab-actions.cjs.map +2 -2
- package/build/tag-cloud/block.json +19 -0
- package/build/tag-cloud/edit.cjs.map +3 -3
- package/build/template-part/edit/advanced-controls.cjs.map +3 -3
- package/build/template-part/edit/import-controls.cjs.map +3 -3
- package/build/template-part/edit/index.cjs.map +2 -2
- package/build/template-part/edit/inner-blocks.cjs.map +2 -2
- package/build/template-part/edit/placeholder.cjs.map +2 -2
- package/build/template-part/edit/selection-modal.cjs.map +1 -1
- package/build/term-count/block.json +7 -0
- package/build/term-count/use-term-count.cjs.map +2 -2
- package/build/term-description/block.json +9 -0
- package/build/term-description/use-term-description.cjs.map +2 -2
- package/build/term-name/block.json +10 -0
- package/build/term-name/use-term-name.cjs.map +2 -2
- package/build/term-template/block.json +10 -1
- package/build/terms-query/edit/inspector-controls/index.cjs.map +2 -2
- package/build/terms-query/edit/inspector-controls/inherit-control.cjs.map +2 -2
- package/build/terms-query/edit/inspector-controls/order-control.cjs.map +3 -3
- package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs.map +3 -3
- package/build/utils/hooks.cjs.map +2 -2
- package/build/utils/media-control.cjs +5 -1
- package/build/utils/media-control.cjs.map +2 -2
- package/build/utils/poster-image.cjs.map +2 -2
- package/build/utils/search-patterns.cjs +7 -43
- package/build/utils/search-patterns.cjs.map +3 -3
- package/build/utils/style-state.cjs +4 -6
- package/build/utils/style-state.cjs.map +2 -2
- package/build/verse/block.json +1 -0
- package/build/video/block.json +6 -0
- package/build/video/edit-common-settings.cjs.map +3 -3
- package/build/video/edit.cjs +23 -15
- package/build/video/edit.cjs.map +3 -3
- package/build/video/index.cjs +0 -2
- package/build/video/index.cjs.map +3 -3
- package/build/video/save.cjs +5 -1
- package/build/video/save.cjs.map +3 -3
- package/build/video/tracks-editor.cjs.map +3 -3
- package/build-module/accordion/block.json +4 -1
- package/build-module/accordion-item/block.json +7 -1
- package/build-module/accordion-panel/block.json +9 -1
- package/build-module/archives/block.json +9 -0
- package/build-module/archives/edit.mjs +2 -2
- package/build-module/archives/edit.mjs.map +2 -2
- package/build-module/audio/block.json +8 -0
- package/build-module/audio/edit.mjs +2 -2
- package/build-module/audio/edit.mjs.map +2 -2
- package/build-module/avatar/hooks.mjs.map +2 -2
- package/build-module/breadcrumbs/block.json +3 -0
- package/build-module/breadcrumbs/edit.mjs +3 -3
- package/build-module/breadcrumbs/edit.mjs.map +2 -2
- package/build-module/button/edit.mjs.map +2 -2
- package/build-module/buttons/block.json +9 -0
- package/build-module/categories/block.json +12 -1
- package/build-module/categories/edit.mjs +2 -2
- package/build-module/categories/edit.mjs.map +2 -2
- package/build-module/code/block.json +10 -0
- package/build-module/code/save.mjs.map +2 -2
- package/build-module/column/block.json +9 -0
- package/build-module/columns/block.json +9 -0
- package/build-module/comment-author-name/block.json +3 -0
- package/build-module/comment-content/block.json +5 -0
- package/build-module/comment-date/block.json +3 -0
- package/build-module/comment-edit-link/block.json +3 -0
- package/build-module/comment-reply-link/block.json +3 -0
- package/build-module/comment-template/hooks.mjs.map +2 -2
- package/build-module/comments/block.json +10 -0
- package/build-module/comments-pagination/block.json +3 -0
- package/build-module/comments-pagination-next/block.json +3 -0
- package/build-module/comments-pagination-numbers/block.json +3 -0
- package/build-module/comments-pagination-previous/block.json +6 -0
- package/build-module/comments-title/block.json +3 -0
- package/build-module/cover/edit/index.mjs +4 -1
- package/build-module/cover/edit/index.mjs.map +2 -2
- package/build-module/cover/edit/inspector-controls.mjs +57 -14
- package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
- package/build-module/cover/transforms.mjs.map +2 -2
- package/build-module/details/block.json +12 -0
- package/build-module/details/index.mjs.map +2 -2
- package/build-module/embed/embed-controls.mjs.map +2 -2
- package/build-module/file/block.json +9 -0
- package/build-module/file/deprecated.mjs.map +2 -2
- package/build-module/file/edit.mjs.map +2 -2
- package/build-module/file/inspector.mjs +2 -2
- package/build-module/file/inspector.mjs.map +2 -2
- package/build-module/file/save.mjs.map +2 -2
- package/build-module/footnotes/block.json +10 -0
- package/build-module/footnotes/edit.mjs.map +2 -2
- package/build-module/gallery/block.json +9 -0
- package/build-module/gallery/dynamic-gallery.mjs +2 -2
- package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
- package/build-module/gallery/edit.mjs +68 -42
- package/build-module/gallery/edit.mjs.map +2 -2
- package/build-module/gallery/{flex-styles.mjs → gallery-styles.mjs} +29 -30
- package/build-module/gallery/gallery-styles.mjs.map +7 -0
- package/build-module/gallery/responsive-styles.mjs +25 -4
- package/build-module/gallery/responsive-styles.mjs.map +2 -2
- package/build-module/group/block.json +1 -0
- package/build-module/heading/block.json +11 -0
- package/build-module/heading/index.mjs.map +2 -2
- package/build-module/home-link/block.json +18 -0
- package/build-module/home-link/edit.mjs +2 -2
- package/build-module/home-link/edit.mjs.map +2 -2
- package/build-module/html/modal.mjs +3 -6
- package/build-module/html/modal.mjs.map +2 -2
- package/build-module/image/edit.mjs.map +2 -2
- package/build-module/image/image.mjs +12 -10
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/image/use-open-image-media-editor-modal.mjs +20 -0
- package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
- package/build-module/index.mjs.map +2 -2
- package/build-module/latest-comments/block.json +10 -0
- package/build-module/latest-comments/edit.mjs +2 -2
- package/build-module/latest-comments/edit.mjs.map +2 -2
- package/build-module/latest-posts/block.json +10 -0
- package/build-module/latest-posts/edit.mjs.map +2 -2
- package/build-module/list/ordered-list-settings.mjs +2 -2
- package/build-module/list/ordered-list-settings.mjs.map +2 -2
- package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
- package/build-module/loginout/block.json +10 -0
- package/build-module/math/block.json +12 -0
- package/build-module/math/deprecated.mjs +29 -12
- package/build-module/math/deprecated.mjs.map +2 -2
- package/build-module/math/edit.mjs +68 -47
- package/build-module/math/edit.mjs.map +2 -2
- package/build-module/math/save.mjs +2 -2
- package/build-module/math/save.mjs.map +2 -2
- package/build-module/media-text/block.json +1 -0
- package/build-module/media-text/constants.mjs +2 -0
- package/build-module/media-text/constants.mjs.map +2 -2
- package/build-module/media-text/deprecated.mjs.map +2 -2
- package/build-module/media-text/edit.mjs +42 -1
- package/build-module/media-text/edit.mjs.map +2 -2
- package/build-module/media-text/image-fill.mjs.map +2 -2
- package/build-module/media-text/media-container.mjs +1 -1
- package/build-module/media-text/media-container.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +1 -4
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation/edit/menu-inspector-controls.mjs.map +2 -2
- package/build-module/navigation/edit/overlay-template-part-selector.mjs +2 -2
- package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
- package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
- package/build-module/navigation/edit/use-generate-default-navigation-title.mjs.map +2 -2
- package/build-module/navigation/view.mjs +2 -2
- package/build-module/navigation/view.mjs.map +2 -2
- package/build-module/navigation-link/edit.mjs.map +2 -2
- package/build-module/navigation-link/link-ui/page-creator.mjs +2 -2
- package/build-module/navigation-link/link-ui/page-creator.mjs.map +2 -2
- package/build-module/navigation-link/shared/controls.mjs +2 -2
- package/build-module/navigation-link/shared/controls.mjs.map +2 -2
- package/build-module/navigation-link/shared/invalid-draft-display.mjs.map +2 -2
- package/build-module/navigation-link/shared/use-link-preview.mjs +13 -13
- package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
- package/build-module/navigation-overlay-close/block.json +7 -0
- package/build-module/navigation-submenu/block.json +6 -0
- package/build-module/navigation-submenu/edit.mjs +11 -2
- package/build-module/navigation-submenu/edit.mjs.map +2 -2
- package/build-module/page-list/block.json +10 -0
- package/build-module/paragraph/block.json +1 -0
- package/build-module/paragraph/edit.mjs +1 -2
- package/build-module/paragraph/edit.mjs.map +2 -2
- package/build-module/paragraph/index.mjs +6 -0
- package/build-module/paragraph/index.mjs.map +2 -2
- package/build-module/playlist/block.json +1 -0
- package/build-module/playlist/edit.mjs +5 -4
- package/build-module/playlist/edit.mjs.map +2 -2
- package/build-module/post-author/edit.mjs +2 -2
- package/build-module/post-author/edit.mjs.map +2 -2
- package/build-module/post-author-biography/block.json +4 -0
- package/build-module/post-author-name/block.json +5 -0
- package/build-module/post-author-name/edit.mjs.map +2 -2
- package/build-module/post-comments-count/block.json +3 -0
- package/build-module/post-comments-form/block.json +10 -0
- package/build-module/post-content/block.json +3 -0
- package/build-module/post-date/block.json +3 -0
- package/build-module/post-date/edit.mjs.map +2 -2
- package/build-module/post-excerpt/block.json +6 -0
- package/build-module/post-excerpt/edit.mjs.map +2 -2
- package/build-module/post-featured-image/edit.mjs +11 -9
- package/build-module/post-featured-image/edit.mjs.map +2 -2
- package/build-module/post-navigation-link/block.json +30 -0
- package/build-module/post-navigation-link/edit.mjs +19 -5
- package/build-module/post-navigation-link/edit.mjs.map +2 -2
- package/build-module/post-template/block.json +13 -1
- package/build-module/post-terms/block.json +6 -0
- package/build-module/post-time-to-read/block.json +6 -0
- package/build-module/post-time-to-read/edit.mjs.map +2 -2
- package/build-module/post-title/block.json +10 -0
- package/build-module/preformatted/block.json +7 -0
- package/build-module/pullquote/block.json +1 -0
- package/build-module/pullquote/deprecated.mjs.map +2 -2
- package/build-module/query/deprecated.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/index.mjs +2 -2
- package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
- package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/sticky-control.mjs +2 -2
- package/build-module/query/edit/inspector-controls/sticky-control.mjs.map +2 -2
- package/build-module/query/view.mjs.map +2 -2
- package/build-module/query-no-results/block.json +10 -2
- package/build-module/query-pagination/block.json +3 -0
- package/build-module/query-pagination-next/block.json +3 -0
- package/build-module/query-pagination-numbers/block.json +3 -0
- package/build-module/query-pagination-previous/block.json +3 -0
- package/build-module/query-title/block.json +3 -0
- package/build-module/query-title/use-archive-label.mjs.map +2 -2
- package/build-module/query-total/block.json +6 -0
- package/build-module/quote/block.json +1 -0
- package/build-module/quote/deprecated.mjs.map +2 -2
- package/build-module/quote/transforms.mjs.map +2 -2
- package/build-module/read-more/block.json +6 -0
- package/build-module/rss/block.json +6 -0
- package/build-module/search/edit.mjs +3 -3
- package/build-module/search/edit.mjs.map +2 -2
- package/build-module/separator/edit.mjs +5 -2
- package/build-module/separator/edit.mjs.map +2 -2
- package/build-module/site-tagline/block.json +8 -1
- package/build-module/site-title/block.json +7 -1
- package/build-module/social-links/block.json +3 -0
- package/build-module/social-links/edit.mjs +4 -5
- package/build-module/social-links/edit.mjs.map +2 -2
- package/build-module/tab-panel/block.json +25 -0
- package/build-module/tab-panel/controls.mjs +2 -2
- package/build-module/tab-panel/controls.mjs.map +2 -2
- package/build-module/tab-panels/block.json +18 -1
- package/build-module/table/state.mjs.map +2 -2
- package/build-module/table-of-contents/block.json +7 -0
- package/build-module/table-of-contents/edit.mjs +2 -2
- package/build-module/table-of-contents/edit.mjs.map +2 -2
- package/build-module/table-of-contents/utils.mjs.map +2 -2
- package/build-module/tabs/block.json +24 -1
- package/build-module/tabs/use-tab-actions.mjs.map +2 -2
- package/build-module/tag-cloud/block.json +19 -0
- package/build-module/tag-cloud/edit.mjs +2 -2
- package/build-module/tag-cloud/edit.mjs.map +2 -2
- package/build-module/template-part/edit/advanced-controls.mjs +5 -2
- package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
- package/build-module/template-part/edit/import-controls.mjs +2 -2
- package/build-module/template-part/edit/import-controls.mjs.map +2 -2
- package/build-module/template-part/edit/index.mjs.map +2 -2
- package/build-module/template-part/edit/inner-blocks.mjs.map +2 -2
- package/build-module/template-part/edit/placeholder.mjs.map +2 -2
- package/build-module/template-part/edit/selection-modal.mjs.map +1 -1
- package/build-module/term-count/block.json +7 -0
- package/build-module/term-count/use-term-count.mjs.map +2 -2
- package/build-module/term-description/block.json +9 -0
- package/build-module/term-description/use-term-description.mjs.map +2 -2
- package/build-module/term-name/block.json +10 -0
- package/build-module/term-name/use-term-name.mjs.map +2 -2
- package/build-module/term-template/block.json +10 -1
- package/build-module/terms-query/edit/inspector-controls/index.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
- package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs +2 -2
- package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs.map +2 -2
- package/build-module/utils/hooks.mjs.map +2 -2
- package/build-module/utils/media-control.mjs +5 -1
- package/build-module/utils/media-control.mjs.map +2 -2
- package/build-module/utils/poster-image.mjs.map +2 -2
- package/build-module/utils/search-patterns.mjs +7 -32
- package/build-module/utils/search-patterns.mjs.map +2 -2
- package/build-module/utils/style-state.mjs +6 -4
- package/build-module/utils/style-state.mjs.map +2 -2
- package/build-module/verse/block.json +1 -0
- package/build-module/video/block.json +6 -0
- package/build-module/video/edit-common-settings.mjs +2 -2
- package/build-module/video/edit-common-settings.mjs.map +2 -2
- package/build-module/video/edit.mjs +25 -16
- package/build-module/video/edit.mjs.map +2 -2
- package/build-module/video/index.mjs +0 -2
- package/build-module/video/index.mjs.map +2 -2
- package/build-module/video/save.mjs +7 -2
- package/build-module/video/save.mjs.map +2 -2
- package/build-module/video/tracks-editor.mjs +2 -2
- package/build-module/video/tracks-editor.mjs.map +2 -2
- package/build-style/button/style-rtl.css +2 -1
- package/build-style/button/style.css +2 -1
- package/build-style/columns/style-rtl.css +1 -1
- package/build-style/columns/style.css +1 -1
- package/build-style/comments/editor-rtl.css +1 -1
- package/build-style/comments/editor.css +1 -1
- package/build-style/comments/style-rtl.css +1 -1
- package/build-style/comments/style.css +1 -1
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/style-rtl.css +6 -0
- package/build-style/cover/style.css +6 -0
- package/build-style/editor-rtl.css +21 -7
- package/build-style/editor.css +21 -7
- package/build-style/embed/editor-rtl.css +2 -1
- package/build-style/embed/editor.css +2 -1
- package/build-style/gallery/style-rtl.css +1 -2
- package/build-style/gallery/style.css +1 -2
- package/build-style/image/editor-rtl.css +6 -0
- package/build-style/image/editor.css +6 -0
- package/build-style/image/style-rtl.css +6 -9
- package/build-style/image/style.css +6 -9
- package/build-style/math/editor-rtl.css +5 -0
- package/build-style/math/editor.css +5 -0
- package/build-style/navigation/editor-rtl.css +1 -0
- package/build-style/navigation/editor.css +1 -0
- package/build-style/navigation/style-rtl.css +19 -4
- package/build-style/navigation/style.css +19 -4
- package/build-style/navigation-link/editor-rtl.css +3 -1
- package/build-style/navigation-link/editor.css +3 -1
- package/build-style/navigation-overlay-close/style-rtl.css +1 -1
- package/build-style/navigation-overlay-close/style.css +1 -1
- package/build-style/navigation-submenu/editor-rtl.css +3 -1
- package/build-style/navigation-submenu/editor.css +3 -1
- package/build-style/post-navigation-link/style-rtl.css +3 -0
- package/build-style/post-navigation-link/style.css +3 -0
- package/build-style/post-title/style-rtl.css +2 -2
- package/build-style/post-title/style.css +2 -2
- package/build-style/query-pagination/editor-rtl.css +0 -3
- package/build-style/query-pagination/editor.css +0 -3
- package/build-style/search/theme-rtl.css +1 -1
- package/build-style/search/theme.css +1 -1
- package/build-style/style-rtl.css +47 -23
- package/build-style/style.css +47 -23
- package/build-style/tab-panel/style-rtl.css +2 -0
- package/build-style/tab-panel/style.css +2 -0
- package/build-style/theme-rtl.css +1 -1
- package/build-style/theme.css +1 -1
- package/build-style/verse/style-rtl.css +2 -1
- package/build-style/verse/style.css +2 -1
- package/package.json +42 -43
- package/src/accordion/README.md +3 -0
- package/src/accordion/block.json +4 -1
- package/src/accordion-item/README.md +5 -0
- package/src/accordion-item/block.json +7 -1
- package/src/accordion-panel/README.md +7 -0
- package/src/accordion-panel/block.json +9 -1
- package/src/archives/README.md +4 -0
- package/src/archives/block.json +9 -0
- package/src/archives/edit.jsx +2 -2
- package/src/audio/README.md +4 -0
- package/src/audio/block.json +8 -0
- package/src/audio/edit.jsx +2 -2
- package/src/avatar/hooks.js +2 -2
- package/src/breadcrumbs/README.md +2 -0
- package/src/breadcrumbs/block.json +3 -0
- package/src/breadcrumbs/edit.jsx +3 -3
- package/src/breadcrumbs/index.php +1 -1
- package/src/button/edit.jsx +1 -1
- package/src/button/style.scss +2 -2
- package/src/buttons/README.md +4 -0
- package/src/buttons/block.json +9 -0
- package/src/calendar/index.php +1 -1
- package/src/categories/README.md +6 -0
- package/src/categories/block.json +12 -1
- package/src/categories/edit.jsx +2 -2
- package/src/code/README.md +5 -0
- package/src/code/block.json +10 -0
- package/src/code/save.jsx +1 -1
- package/src/column/README.md +4 -0
- package/src/column/block.json +9 -0
- package/src/columns/README.md +4 -0
- package/src/columns/block.json +9 -0
- package/src/columns/style.scss +2 -3
- package/src/comment-author-name/README.md +2 -0
- package/src/comment-author-name/block.json +3 -0
- package/src/comment-content/README.md +4 -0
- package/src/comment-content/block.json +5 -0
- package/src/comment-date/README.md +2 -0
- package/src/comment-date/block.json +3 -0
- package/src/comment-edit-link/README.md +2 -0
- package/src/comment-edit-link/block.json +3 -0
- package/src/comment-reply-link/README.md +2 -0
- package/src/comment-reply-link/block.json +3 -0
- package/src/comment-template/hooks.js +1 -1
- package/src/comments/README.md +5 -0
- package/src/comments/block.json +10 -0
- package/src/comments/style.scss +1 -1
- package/src/comments-pagination/README.md +2 -0
- package/src/comments-pagination/block.json +3 -0
- package/src/comments-pagination-next/README.md +2 -0
- package/src/comments-pagination-next/block.json +3 -0
- package/src/comments-pagination-numbers/README.md +2 -0
- package/src/comments-pagination-numbers/block.json +3 -0
- package/src/comments-pagination-previous/README.md +2 -0
- package/src/comments-pagination-previous/block.json +6 -0
- package/src/comments-title/README.md +2 -0
- package/src/comments-title/block.json +3 -0
- package/src/common.scss +1 -2
- package/src/cover/edit/index.jsx +5 -2
- package/src/cover/edit/inspector-controls.jsx +66 -15
- package/src/cover/style.scss +10 -0
- package/src/cover/test/{edit.jsdom.test.js → edit.browser.test.js} +122 -147
- package/src/cover/transforms.js +3 -3
- package/src/details/README.md +7 -0
- package/src/details/block.json +12 -0
- package/src/details/index.js +1 -1
- package/src/embed/editor.scss +2 -2
- package/src/embed/embed-controls.jsx +2 -2
- package/src/file/README.md +4 -0
- package/src/file/block.json +9 -0
- package/src/file/deprecated.jsx +3 -3
- package/src/file/edit.jsx +5 -3
- package/src/file/inspector.jsx +3 -3
- package/src/file/save.jsx +2 -2
- package/src/footnotes/README.md +5 -0
- package/src/footnotes/block.json +10 -0
- package/src/footnotes/edit.jsx +1 -1
- package/src/gallery/README.md +4 -0
- package/src/gallery/block.json +9 -0
- package/src/gallery/dynamic-gallery.jsx +4 -4
- package/src/gallery/edit.jsx +122 -70
- package/src/gallery/gallery-styles.js +117 -0
- package/src/gallery/index.php +181 -67
- package/src/gallery/responsive-styles.js +59 -5
- package/src/gallery/test/edit.jsdom.test.js +71 -3
- package/src/gallery/test/responsive-styles.js +59 -5
- package/src/group/README.md +1 -0
- package/src/group/block.json +1 -0
- package/src/heading/README.md +6 -0
- package/src/heading/block.json +11 -0
- package/src/heading/index.js +2 -2
- package/src/home-link/README.md +5 -0
- package/src/home-link/block.json +18 -0
- package/src/home-link/edit.jsx +2 -2
- package/src/html/modal.jsx +0 -3
- package/src/icon/index.php +9 -0
- package/src/image/edit.jsx +1 -1
- package/src/image/editor.scss +8 -0
- package/src/image/image.jsx +20 -18
- package/src/image/index.php +10 -4
- package/src/image/style.scss +1 -0
- package/src/image/test/use-open-image-media-editor-modal.jsdom.test.js +140 -1
- package/src/image/use-open-image-media-editor-modal.js +37 -0
- package/src/index.jsx +1 -1
- package/src/latest-comments/README.md +5 -0
- package/src/latest-comments/block.json +10 -0
- package/src/latest-comments/edit.jsx +2 -2
- package/src/latest-posts/README.md +5 -0
- package/src/latest-posts/block.json +10 -0
- package/src/latest-posts/edit.jsx +1 -1
- package/src/list/ordered-list-settings.jsx +2 -2
- package/src/list-item/hooks/use-enter.js +1 -1
- package/src/loginout/README.md +5 -0
- package/src/loginout/block.json +10 -0
- package/src/math/README.md +7 -2
- package/src/math/block.json +12 -0
- package/src/math/deprecated.jsx +38 -12
- package/src/math/edit.jsx +49 -20
- package/src/math/editor.scss +5 -0
- package/src/math/save.jsx +20 -4
- package/src/media-text/README.md +1 -0
- package/src/media-text/block.json +1 -0
- package/src/media-text/constants.js +1 -0
- package/src/media-text/deprecated.jsx +3 -3
- package/src/media-text/edit.jsx +48 -3
- package/src/media-text/image-fill.js +2 -2
- package/src/media-text/media-container.jsx +1 -1
- package/src/navigation/edit/index.jsx +3 -5
- package/src/navigation/edit/menu-inspector-controls.jsx +2 -2
- package/src/navigation/edit/overlay-template-part-selector.jsx +3 -3
- package/src/navigation/edit/responsive-wrapper.jsx +1 -1
- package/src/navigation/edit/use-generate-default-navigation-title.js +2 -2
- package/src/navigation/editor.scss +1 -0
- package/src/navigation/index.php +12 -0
- package/src/navigation/style.scss +41 -5
- package/src/navigation/test/use-navigation-menu.jsdom.test.js +6 -28
- package/src/navigation/test/view.jsdom.test.js +23 -0
- package/src/navigation/view.js +9 -6
- package/src/navigation-link/edit.jsx +1 -1
- package/src/navigation-link/editor.scss +6 -1
- package/src/navigation-link/link-ui/page-creator.jsx +2 -2
- package/src/navigation-link/shared/controls.jsx +2 -2
- package/src/navigation-link/shared/invalid-draft-display.jsx +2 -2
- package/src/navigation-link/shared/test/use-link-preview.jsdom.test.js +22 -22
- package/src/navigation-link/shared/use-link-preview.js +15 -14
- package/src/navigation-link/test/__snapshots__/hooks.jsdom.test.js.snap +41 -11
- package/src/navigation-overlay-close/README.md +1 -0
- package/src/navigation-overlay-close/block.json +7 -0
- package/src/navigation-overlay-close/style.scss +1 -1
- package/src/navigation-submenu/README.md +7 -0
- package/src/navigation-submenu/block.json +6 -0
- package/src/navigation-submenu/edit.jsx +12 -2
- package/src/navigation-submenu/editor.scss +6 -1
- package/src/navigation-submenu/index.php +11 -0
- package/src/page-list/README.md +5 -0
- package/src/page-list/block.json +10 -0
- package/src/paragraph/README.md +1 -0
- package/src/paragraph/block.json +1 -0
- package/src/paragraph/edit.jsx +2 -4
- package/src/paragraph/index.js +7 -0
- package/src/pattern/index.php +2 -2
- package/src/playlist/README.md +1 -0
- package/src/playlist/block.json +1 -0
- package/src/playlist/edit.jsx +6 -4
- package/src/playlist-track/test/edit.jsdom.test.jsx +2 -3
- package/src/post-author/edit.jsx +2 -2
- package/src/post-author-biography/README.md +3 -0
- package/src/post-author-biography/block.json +4 -0
- package/src/post-author-name/README.md +4 -0
- package/src/post-author-name/block.json +5 -0
- package/src/post-author-name/edit.jsx +1 -1
- package/src/post-comments-count/README.md +2 -0
- package/src/post-comments-count/block.json +3 -0
- package/src/post-comments-form/README.md +5 -0
- package/src/post-comments-form/block.json +10 -0
- package/src/post-content/README.md +3 -0
- package/src/post-content/block.json +3 -0
- package/src/post-date/README.md +2 -0
- package/src/post-date/block.json +3 -0
- package/src/post-date/edit.jsx +2 -2
- package/src/post-excerpt/README.md +5 -0
- package/src/post-excerpt/block.json +6 -0
- package/src/post-excerpt/edit.jsx +1 -1
- package/src/post-featured-image/edit.jsx +13 -11
- package/src/post-navigation-link/README.md +12 -0
- package/src/post-navigation-link/block.json +30 -0
- package/src/post-navigation-link/edit.jsx +27 -6
- package/src/post-navigation-link/index.php +94 -5
- package/src/post-navigation-link/style.scss +2 -0
- package/src/post-template/README.md +7 -0
- package/src/post-template/block.json +13 -1
- package/src/post-terms/README.md +5 -0
- package/src/post-terms/block.json +6 -0
- package/src/post-time-to-read/README.md +5 -0
- package/src/post-time-to-read/block.json +6 -0
- package/src/post-time-to-read/edit.jsx +2 -2
- package/src/post-title/README.md +5 -0
- package/src/post-title/block.json +10 -0
- package/src/post-title/style.scss +2 -3
- package/src/preformatted/README.md +6 -0
- package/src/preformatted/block.json +7 -0
- package/src/pullquote/README.md +1 -0
- package/src/pullquote/block.json +1 -0
- package/src/pullquote/deprecated.jsx +1 -1
- package/src/query/deprecated.jsx +1 -1
- package/src/query/edit/inspector-controls/index.jsx +4 -4
- package/src/query/edit/inspector-controls/order-control.jsx +2 -2
- package/src/query/edit/inspector-controls/sticky-control.jsx +2 -2
- package/src/query/view.js +6 -9
- package/src/query-no-results/README.md +7 -0
- package/src/query-no-results/block.json +10 -2
- package/src/query-pagination/README.md +2 -0
- package/src/query-pagination/block.json +3 -0
- package/src/query-pagination/editor.scss +0 -3
- package/src/query-pagination-next/README.md +2 -0
- package/src/query-pagination-next/block.json +3 -0
- package/src/query-pagination-numbers/README.md +2 -0
- package/src/query-pagination-numbers/block.json +3 -0
- package/src/query-pagination-previous/README.md +2 -0
- package/src/query-pagination-previous/block.json +3 -0
- package/src/query-title/README.md +2 -0
- package/src/query-title/block.json +3 -0
- package/src/query-title/use-archive-label.js +1 -1
- package/src/query-total/README.md +5 -0
- package/src/query-total/block.json +6 -0
- package/src/quote/README.md +1 -0
- package/src/quote/block.json +1 -0
- package/src/quote/deprecated.jsx +2 -2
- package/src/quote/transforms.js +3 -3
- package/src/read-more/README.md +5 -0
- package/src/read-more/block.json +6 -0
- package/src/rss/README.md +5 -0
- package/src/rss/block.json +6 -0
- package/src/search/edit.jsx +6 -6
- package/src/search/theme.scss +1 -1
- package/src/separator/edit.jsx +7 -4
- package/src/site-tagline/README.md +6 -0
- package/src/site-tagline/block.json +8 -1
- package/src/site-title/README.md +5 -0
- package/src/site-title/block.json +7 -1
- package/src/social-links/README.md +2 -0
- package/src/social-links/block.json +3 -0
- package/src/social-links/edit.jsx +4 -5
- package/src/tab-panel/README.md +9 -0
- package/src/tab-panel/block.json +25 -0
- package/src/tab-panel/controls.jsx +2 -2
- package/src/tab-panel/style.scss +5 -2
- package/src/tab-panels/README.md +7 -0
- package/src/tab-panels/block.json +18 -1
- package/src/table/state.js +1 -1
- package/src/table-of-contents/README.md +6 -0
- package/src/table-of-contents/block.json +7 -0
- package/src/table-of-contents/edit.jsx +6 -6
- package/src/table-of-contents/utils.ts +2 -2
- package/src/tabs/README.md +9 -0
- package/src/tabs/block.json +24 -1
- package/src/tabs/use-tab-actions.js +1 -1
- package/src/tag-cloud/README.md +9 -0
- package/src/tag-cloud/block.json +19 -0
- package/src/tag-cloud/edit.jsx +2 -2
- package/src/template-part/edit/advanced-controls.jsx +5 -2
- package/src/template-part/edit/import-controls.jsx +2 -2
- package/src/template-part/edit/index.jsx +2 -2
- package/src/template-part/edit/inner-blocks.jsx +1 -1
- package/src/template-part/edit/placeholder.jsx +2 -2
- package/src/template-part/edit/selection-modal.jsx +1 -1
- package/src/term-count/README.md +6 -0
- package/src/term-count/block.json +7 -0
- package/src/term-count/use-term-count.js +1 -1
- package/src/term-description/README.md +5 -0
- package/src/term-description/block.json +9 -0
- package/src/term-description/use-term-description.js +1 -1
- package/src/term-name/README.md +5 -0
- package/src/term-name/block.json +10 -0
- package/src/term-name/index.php +1 -1
- package/src/term-name/use-term-name.js +1 -1
- package/src/term-template/README.md +5 -0
- package/src/term-template/block.json +10 -1
- package/src/terms-query/edit/inspector-controls/index.jsx +2 -2
- package/src/terms-query/edit/inspector-controls/inherit-control.jsx +1 -1
- package/src/terms-query/edit/inspector-controls/order-control.jsx +2 -2
- package/src/terms-query/edit/inspector-controls/taxonomy-control.jsx +2 -2
- package/src/utils/hooks.js +1 -1
- package/src/utils/media-control.jsx +16 -10
- package/src/utils/poster-image.jsx +2 -2
- package/src/utils/search-patterns.js +9 -53
- package/src/utils/style-state.js +6 -4
- package/src/utils/test/{search-patterns.js → search-patterns.jsdom.test.js} +1 -22
- package/src/utils/test/waveform-player.jsdom.test.jsx +36 -38
- package/src/utils/test/{waveform-utils.jsdom.test.js → waveform-utils.browser.test.js} +64 -44
- package/src/verse/README.md +1 -0
- package/src/verse/block.json +1 -0
- package/src/verse/style.scss +2 -2
- package/src/video/README.md +7 -0
- package/src/video/block.json +6 -0
- package/src/video/edit-common-settings.jsx +3 -3
- package/src/video/edit.jsx +56 -51
- package/src/video/index.js +0 -2
- package/src/video/save.jsx +10 -1
- package/src/video/tracks-editor.jsx +2 -2
- package/build/gallery/flex-styles.cjs.map +0 -7
- package/build/video/variations.cjs +0 -75
- package/build/video/variations.cjs.map +0 -7
- package/build-module/gallery/flex-styles.mjs.map +0 -7
- package/build-module/video/variations.mjs +0 -50
- package/build-module/video/variations.mjs.map +0 -7
- package/src/gallery/flex-styles.js +0 -99
- package/src/video/test/variations.js +0 -63
- package/src/video/variations.js +0 -62
package/src/video/edit.jsx
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
MediaReplaceFlow,
|
|
14
14
|
useBlockProps,
|
|
15
15
|
useBlockEditingMode,
|
|
16
|
+
__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,
|
|
16
17
|
} from '@wordpress/block-editor';
|
|
17
18
|
import { useRef, useEffect, useState } from '@wordpress/element';
|
|
18
19
|
import { __ } from '@wordpress/i18n';
|
|
@@ -30,7 +31,6 @@ import TracksEditor from './tracks-editor';
|
|
|
30
31
|
import Tracks from './tracks';
|
|
31
32
|
import { Caption } from '../utils/caption';
|
|
32
33
|
import PosterImage from '../utils/poster-image';
|
|
33
|
-
import { isGifVariation } from './variations';
|
|
34
34
|
|
|
35
35
|
const ALLOWED_MEDIA_TYPES = [ 'video' ];
|
|
36
36
|
|
|
@@ -43,8 +43,19 @@ function VideoEdit( {
|
|
|
43
43
|
onReplace,
|
|
44
44
|
} ) {
|
|
45
45
|
const videoPlayer = useRef();
|
|
46
|
-
const {
|
|
47
|
-
|
|
46
|
+
const {
|
|
47
|
+
id,
|
|
48
|
+
controls,
|
|
49
|
+
poster,
|
|
50
|
+
src,
|
|
51
|
+
tracks,
|
|
52
|
+
width,
|
|
53
|
+
height,
|
|
54
|
+
autoplay,
|
|
55
|
+
loop,
|
|
56
|
+
muted,
|
|
57
|
+
playsInline,
|
|
58
|
+
} = attributes;
|
|
48
59
|
// Give the <video> an explicit (non-`auto`) aspect ratio derived from the
|
|
49
60
|
// stored dimensions. The width/height attributes alone only yield
|
|
50
61
|
// `aspect-ratio: auto W/H`, whose `auto` keyword defers to the element's
|
|
@@ -54,6 +65,10 @@ function VideoEdit( {
|
|
|
54
65
|
// swap. A non-`auto` ratio governs the box height throughout the load.
|
|
55
66
|
const aspectRatio =
|
|
56
67
|
width && height ? `${ width } / ${ height }` : undefined;
|
|
68
|
+
const videoStyle = {
|
|
69
|
+
...( aspectRatio && { aspectRatio } ),
|
|
70
|
+
...getShadowClassesAndStyles( attributes ).style,
|
|
71
|
+
};
|
|
57
72
|
const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
|
|
58
73
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
59
74
|
const blockEditingMode = useBlockEditingMode();
|
|
@@ -72,18 +87,6 @@ function VideoEdit( {
|
|
|
72
87
|
videoPlayer.current.load();
|
|
73
88
|
}
|
|
74
89
|
}, [ poster ] );
|
|
75
|
-
|
|
76
|
-
// The GIF variation plays like an animated GIF in the editor (the playback
|
|
77
|
-
// attributes are applied to the preview <video> below). Regular videos do
|
|
78
|
-
// not autoplay in the editor, so only nudge GIFs into playing after a
|
|
79
|
-
// source change in case the muted autoplay did not start on its own.
|
|
80
|
-
useEffect( () => {
|
|
81
|
-
if ( isGif ) {
|
|
82
|
-
// Browsers allow muted videos to be played programmatically.
|
|
83
|
-
videoPlayer.current?.play().catch( () => {} );
|
|
84
|
-
}
|
|
85
|
-
}, [ isGif, src, poster ] );
|
|
86
|
-
|
|
87
90
|
// TODO: Whether the video was obtained from the media library or was provided by URL, obtain the `videoWidth` and `videoHeight` of the video once its metadata has loaded and persist in the block attributes.
|
|
88
91
|
function onSelectVideo( media ) {
|
|
89
92
|
if ( ! media || ! media.url ) {
|
|
@@ -214,38 +217,36 @@ function VideoEdit( {
|
|
|
214
217
|
</BlockControls>
|
|
215
218
|
</>
|
|
216
219
|
) }
|
|
217
|
-
|
|
218
|
-
<
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
<InspectorControls>
|
|
221
|
+
<ToolsPanel
|
|
222
|
+
label={ __( 'Settings' ) }
|
|
223
|
+
resetAll={ () => {
|
|
224
|
+
setAttributes( {
|
|
225
|
+
autoplay: false,
|
|
226
|
+
controls: true,
|
|
227
|
+
loop: false,
|
|
228
|
+
muted: false,
|
|
229
|
+
playsInline: false,
|
|
230
|
+
preload: 'metadata',
|
|
231
|
+
poster: undefined,
|
|
232
|
+
} );
|
|
233
|
+
} }
|
|
234
|
+
dropdownMenuProps={ dropdownMenuProps }
|
|
235
|
+
>
|
|
236
|
+
<VideoCommonSettings
|
|
237
|
+
setAttributes={ setAttributes }
|
|
238
|
+
attributes={ attributes }
|
|
239
|
+
/>
|
|
240
|
+
<PosterImage
|
|
241
|
+
poster={ poster }
|
|
242
|
+
onChange={ ( posterImage ) =>
|
|
222
243
|
setAttributes( {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
poster: undefined,
|
|
230
|
-
} );
|
|
231
|
-
} }
|
|
232
|
-
dropdownMenuProps={ dropdownMenuProps }
|
|
233
|
-
>
|
|
234
|
-
<VideoCommonSettings
|
|
235
|
-
setAttributes={ setAttributes }
|
|
236
|
-
attributes={ attributes }
|
|
237
|
-
/>
|
|
238
|
-
<PosterImage
|
|
239
|
-
poster={ poster }
|
|
240
|
-
onChange={ ( posterImage ) =>
|
|
241
|
-
setAttributes( {
|
|
242
|
-
poster: posterImage?.url,
|
|
243
|
-
} )
|
|
244
|
-
}
|
|
245
|
-
/>
|
|
246
|
-
</ToolsPanel>
|
|
247
|
-
</InspectorControls>
|
|
248
|
-
) }
|
|
244
|
+
poster: posterImage?.url,
|
|
245
|
+
} )
|
|
246
|
+
}
|
|
247
|
+
/>
|
|
248
|
+
</ToolsPanel>
|
|
249
|
+
</InspectorControls>
|
|
249
250
|
<figure { ...blockProps }>
|
|
250
251
|
<video
|
|
251
252
|
controls={ controls }
|
|
@@ -253,13 +254,17 @@ function VideoEdit( {
|
|
|
253
254
|
poster={ poster }
|
|
254
255
|
src={ src || temporaryURL }
|
|
255
256
|
ref={ videoPlayer }
|
|
256
|
-
autoPlay={
|
|
257
|
-
loop={
|
|
258
|
-
muted={
|
|
259
|
-
playsInline={
|
|
257
|
+
autoPlay={ autoplay }
|
|
258
|
+
loop={ loop }
|
|
259
|
+
muted={ muted }
|
|
260
|
+
playsInline={ playsInline }
|
|
260
261
|
width={ width }
|
|
261
262
|
height={ height }
|
|
262
|
-
style={
|
|
263
|
+
style={
|
|
264
|
+
Object.keys( videoStyle ).length
|
|
265
|
+
? videoStyle
|
|
266
|
+
: undefined
|
|
267
|
+
}
|
|
263
268
|
>
|
|
264
269
|
<Tracks tracks={ tracks } />
|
|
265
270
|
</video>
|
package/src/video/index.js
CHANGED
|
@@ -6,7 +6,6 @@ import edit from './edit';
|
|
|
6
6
|
import metadata from './block.json';
|
|
7
7
|
import save from './save';
|
|
8
8
|
import transforms from './transforms';
|
|
9
|
-
import variations from './variations';
|
|
10
9
|
|
|
11
10
|
const { name } = metadata;
|
|
12
11
|
|
|
@@ -22,7 +21,6 @@ export const settings = {
|
|
|
22
21
|
},
|
|
23
22
|
},
|
|
24
23
|
transforms,
|
|
25
|
-
variations,
|
|
26
24
|
deprecated,
|
|
27
25
|
edit,
|
|
28
26
|
save,
|
package/src/video/save.jsx
CHANGED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
RichText,
|
|
3
3
|
useBlockProps,
|
|
4
4
|
__experimentalGetElementClassName,
|
|
5
|
+
__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,
|
|
5
6
|
} from '@wordpress/block-editor';
|
|
6
7
|
import Tracks from './tracks';
|
|
7
8
|
|
|
@@ -27,6 +28,10 @@ export default function save( { attributes } ) {
|
|
|
27
28
|
// `aspect-ratio: auto W/H`, whose `auto` keyword is unreliable during load.
|
|
28
29
|
const aspectRatio =
|
|
29
30
|
width && height ? `${ width } / ${ height }` : undefined;
|
|
31
|
+
const videoStyle = {
|
|
32
|
+
...( aspectRatio && { aspectRatio } ),
|
|
33
|
+
...getShadowClassesAndStyles( attributes ).style,
|
|
34
|
+
};
|
|
30
35
|
return (
|
|
31
36
|
<figure { ...useBlockProps.save() }>
|
|
32
37
|
{ src && (
|
|
@@ -41,7 +46,11 @@ export default function save( { attributes } ) {
|
|
|
41
46
|
playsInline={ playsInline }
|
|
42
47
|
width={ width }
|
|
43
48
|
height={ height }
|
|
44
|
-
style={
|
|
49
|
+
style={
|
|
50
|
+
Object.keys( videoStyle ).length
|
|
51
|
+
? videoStyle
|
|
52
|
+
: undefined
|
|
53
|
+
}
|
|
45
54
|
>
|
|
46
55
|
<Tracks tracks={ tracks } />
|
|
47
56
|
</video>
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
Dropdown,
|
|
10
10
|
Button,
|
|
11
11
|
TextControl,
|
|
12
|
-
SelectControl,
|
|
12
|
+
SelectControl as WCSelectControl,
|
|
13
13
|
ToggleControl,
|
|
14
14
|
__experimentalGrid as Grid,
|
|
15
15
|
__experimentalHStack as HStack,
|
|
@@ -135,7 +135,7 @@ function SingleTrackEditor( {
|
|
|
135
135
|
/>
|
|
136
136
|
</Grid>
|
|
137
137
|
<VStack spacing="4">
|
|
138
|
-
<
|
|
138
|
+
<WCSelectControl
|
|
139
139
|
className="block-library-video-tracks-editor__single-track-editor-kind-select"
|
|
140
140
|
options={ KIND_OPTIONS }
|
|
141
141
|
value={ kind }
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/gallery/flex-styles.js"],
|
|
4
|
-
"sourcesContent": ["import {\n\t__experimentalGetGapCSSValue as getGapCSSValue,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseStyleOverride,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';\nimport { unlock } from '../lock-unlock';\nimport { getGalleryResponsiveFlexCSS } from './responsive-styles';\n\nconst { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );\nconst { globalStylesDataKey } = unlock( blockEditorPrivateApis );\nconst GALLERY_BLOCK_NAME = 'core/gallery';\n\n// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default\n// gap on the gallery.\nconst FALLBACK_VALUE = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;\n\nfunction getGalleryGapCustomPropertyStyle( selector, blockGap ) {\n\tlet column = FALLBACK_VALUE;\n\tif ( blockGap ) {\n\t\tcolumn =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap ) || FALLBACK_VALUE\n\t\t\t\t: getGapCSSValue( blockGap?.left ) || FALLBACK_VALUE;\n\t}\n\n\t// The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.\n\treturn `${ selector } {\n\t\t--wp--style--unstable-gallery-gap: ${ column === '0' ? '0px' : column }\n\t}`;\n}\n\nfunction getBlockGapValue( style ) {\n\tif ( ! Object.hasOwn( style?.spacing || {}, 'blockGap' ) ) {\n\t\treturn undefined;\n\t}\n\n\treturn style.spacing.blockGap;\n}\n\nexport default function GalleryFlexStyles( { style, clientId } ) {\n\tconst selector = `.wp-block-gallery-${ clientId }`;\n\tconst [ viewportSettings ] = useSettings( 'viewport' );\n\tconst globalStyles = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings()?.[ globalStylesDataKey ],\n\t\t[]\n\t);\n\tconst globalGalleryStyles =\n\t\tglobalStyles?.blocks?.[ GALLERY_BLOCK_NAME ] || {};\n\tconst styleBlockGap = getBlockGapValue( style );\n\tconst globalGalleryBlockGap =\n\t\tglobalGalleryStyles?.spacing?.blockGap ?? FALLBACK_VALUE;\n\t// Prefer the block's own gap value, then Gallery global styles. Missing\n\t// values fall back to the Gallery blockGap default.\n\tconst blockGap =\n\t\tstyleBlockGap === undefined ? globalGalleryBlockGap : styleBlockGap;\n\tlet css = getGalleryGapCustomPropertyStyle( selector, blockGap );\n\tconst responsiveMediaQueries =\n\t\tgetResponsiveMediaQueries( viewportSettings );\n\n\tObject.entries( responsiveMediaQueries ).forEach(\n\t\t( [ viewport, mediaQuery ] ) => {\n\t\t\tconst styleViewportBlockGap = getBlockGapValue(\n\t\t\t\tstyle?.[ viewport ]\n\t\t\t);\n\t\t\t// Viewport-specific block values win. Gallery global viewport values\n\t\t\t// only apply when the block has no base gap, so they do not override an instance value.\n\t\t\tconst globalViewportBlockGap =\n\t\t\t\tstyleBlockGap === undefined\n\t\t\t\t\t? globalGalleryStyles?.[ viewport ]?.spacing?.blockGap\n\t\t\t\t\t: undefined;\n\t\t\tconst viewportBlockGap =\n\t\t\t\tstyleViewportBlockGap === undefined\n\t\t\t\t\t? globalViewportBlockGap\n\t\t\t\t\t: styleViewportBlockGap;\n\t\t\tif ( viewportBlockGap === undefined || viewportBlockGap === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcss += `${ mediaQuery }{${ getGalleryGapCustomPropertyStyle(\n\t\t\t\tselector,\n\t\t\t\tviewportBlockGap\n\t\t\t) }}`;\n\t\t}\n\t);\n\tcss += getGalleryResponsiveFlexCSS(\n\t\tselector,\n\t\tstyle,\n\t\tresponsiveMediaQueries\n\t);\n\n\tuseStyleOverride( { css } );\n\n\treturn null;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMO;AACP,kBAA0B;AAC1B,kCAA6D;AAC7D,yBAAuB;AACvB,+BAA4C;AAE5C,IAAM,EAAE,0BAA0B,QAAI,2BAAQ,4BAAAA,WAA8B;AAC5E,IAAM,EAAE,oBAAoB,QAAI,2BAAQ,oBAAAC,WAAuB;AAC/D,IAAM,qBAAqB;AAI3B,IAAM,iBAAiB;AAEvB,SAAS,iCAAkC,UAAU,UAAW;AAC/D,MAAI,SAAS;AACb,MAAK,UAAW;AACf,aACC,OAAO,aAAa,eACjB,oBAAAC,8BAAgB,QAAS,KAAK,qBAC9B,oBAAAA,8BAAgB,UAAU,IAAK,KAAK;AAAA,EACzC;AAGA,SAAO,GAAI,QAAS;AAAA,uCACmB,WAAW,MAAM,QAAQ,MAAO;AAAA;AAExE;AAEA,SAAS,iBAAkB,OAAQ;AAClC,MAAK,CAAE,OAAO,OAAQ,OAAO,WAAW,CAAC,GAAG,UAAW,GAAI;AAC1D,WAAO;AAAA,EACR;AAEA,SAAO,MAAM,QAAQ;AACtB;AAEe,SAAR,kBAAoC,EAAE,OAAO,SAAS,GAAI;AAChE,QAAM,WAAW,qBAAsB,QAAS;AAChD,QAAM,CAAE,gBAAiB,QAAI,iCAAa,UAAW;AACrD,QAAM,mBAAe;AAAA,IACpB,CAAE,WACD,OAAQ,oBAAAC,KAAiB,EAAE,YAAY,IAAK,mBAAoB;AAAA,IACjE,CAAC;AAAA,EACF;AACA,QAAM,sBACL,cAAc,SAAU,kBAAmB,KAAK,CAAC;AAClD,QAAM,gBAAgB,iBAAkB,KAAM;AAC9C,QAAM,wBACL,qBAAqB,SAAS,YAAY;AAG3C,QAAM,WACL,kBAAkB,SAAY,wBAAwB;AACvD,MAAI,MAAM,iCAAkC,UAAU,QAAS;AAC/D,QAAM,yBACL,0BAA2B,gBAAiB;AAE7C,SAAO,QAAS,sBAAuB,EAAE;AAAA,IACxC,CAAE,CAAE,UAAU,UAAW,MAAO;AAC/B,YAAM,wBAAwB;AAAA,QAC7B,QAAS,QAAS;AAAA,MACnB;AAGA,YAAM,yBACL,kBAAkB,SACf,sBAAuB,QAAS,GAAG,SAAS,WAC5C;AACJ,YAAM,mBACL,0BAA0B,SACvB,yBACA;AACJ,UAAK,qBAAqB,UAAa,qBAAqB,MAAO;AAClE;AAAA,MACD;AAEA,aAAO,GAAI,UAAW,IAAK;AAAA,QAC1B;AAAA,QACA;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD;AACA,aAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,4CAAkB,EAAE,IAAI,CAAE;AAE1B,SAAO;AACR;",
|
|
6
|
-
"names": ["globalStylesEnginePrivateApis", "blockEditorPrivateApis", "getGapCSSValue", "blockEditorStore"]
|
|
7
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// packages/block-library/src/video/variations.js
|
|
21
|
-
var variations_exports = {};
|
|
22
|
-
__export(variations_exports, {
|
|
23
|
-
default: () => variations_default,
|
|
24
|
-
isGifVariation: () => isGifVariation
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(variations_exports);
|
|
27
|
-
var import_i18n = require("@wordpress/i18n");
|
|
28
|
-
var import_icons = require("@wordpress/icons");
|
|
29
|
-
var isGifVariation = ({
|
|
30
|
-
controls,
|
|
31
|
-
loop,
|
|
32
|
-
autoplay,
|
|
33
|
-
muted,
|
|
34
|
-
playsInline
|
|
35
|
-
} = {}) => !controls && !!loop && !!autoplay && !!muted && !!playsInline;
|
|
36
|
-
var variations = [
|
|
37
|
-
{
|
|
38
|
-
name: "video",
|
|
39
|
-
title: (0, import_i18n.__)("Video"),
|
|
40
|
-
description: (0, import_i18n.__)(
|
|
41
|
-
"A video with customizable playback and interaction controls."
|
|
42
|
-
),
|
|
43
|
-
icon: import_icons.video,
|
|
44
|
-
attributes: { controls: true },
|
|
45
|
-
isActive: (blockAttributes) => !isGifVariation(blockAttributes),
|
|
46
|
-
// Not offered in the inserter; used to label a regular video and to
|
|
47
|
-
// switch a GIF back to a standard video.
|
|
48
|
-
scope: ["block", "transform"]
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: "gif",
|
|
52
|
-
title: (0, import_i18n.__)("GIF"),
|
|
53
|
-
description: (0, import_i18n.__)(
|
|
54
|
-
"A muted, looping video that plays automatically like an animated GIF."
|
|
55
|
-
),
|
|
56
|
-
icon: import_icons.video,
|
|
57
|
-
keywords: [(0, import_i18n.__)("animated"), "gif"],
|
|
58
|
-
attributes: {
|
|
59
|
-
controls: false,
|
|
60
|
-
loop: true,
|
|
61
|
-
autoplay: true,
|
|
62
|
-
muted: true,
|
|
63
|
-
playsInline: true
|
|
64
|
-
},
|
|
65
|
-
isActive: (blockAttributes) => isGifVariation(blockAttributes),
|
|
66
|
-
// Created by converting an uploaded GIF, not inserted directly.
|
|
67
|
-
scope: ["block", "transform"]
|
|
68
|
-
}
|
|
69
|
-
];
|
|
70
|
-
var variations_default = variations;
|
|
71
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
72
|
-
0 && (module.exports = {
|
|
73
|
-
isGifVariation
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=variations.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/video/variations.js"],
|
|
4
|
-
"sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport { video as videoIcon } from '@wordpress/icons';\n\n/**\n * Whether a set of Video block attributes describes a GIF-behaving video: a\n * muted, looping, autoplaying, inline video with no controls. An animated GIF\n * uploaded through the editor is converted to a video and presented with these\n * attributes so it plays like the original GIF.\n *\n * @param {Object} attributes Video block attributes.\n * @param {boolean} attributes.controls Whether playback controls are shown.\n * @param {boolean} attributes.loop Whether the video loops.\n * @param {boolean} attributes.autoplay Whether the video autoplays.\n * @param {boolean} attributes.muted Whether the video is muted.\n * @param {boolean} attributes.playsInline Whether the video plays inline.\n *\n * @return {boolean} Whether the attributes describe a GIF-behaving video.\n */\nexport const isGifVariation = ( {\n\tcontrols,\n\tloop,\n\tautoplay,\n\tmuted,\n\tplaysInline,\n} = {} ) => ! controls && !! loop && !! autoplay && !! muted && !! playsInline;\n\nconst variations = [\n\t{\n\t\tname: 'video',\n\t\ttitle: __( 'Video' ),\n\t\tdescription: __(\n\t\t\t'A video with customizable playback and interaction controls.'\n\t\t),\n\t\ticon: videoIcon,\n\t\tattributes: { controls: true },\n\t\tisActive: ( blockAttributes ) => ! isGifVariation( blockAttributes ),\n\t\t// Not offered in the inserter; used to label a regular video and to\n\t\t// switch a GIF back to a standard video.\n\t\tscope: [ 'block', 'transform' ],\n\t},\n\t{\n\t\tname: 'gif',\n\t\ttitle: __( 'GIF' ),\n\t\tdescription: __(\n\t\t\t'A muted, looping video that plays automatically like an animated GIF.'\n\t\t),\n\t\ticon: videoIcon,\n\t\tkeywords: [ __( 'animated' ), 'gif' ],\n\t\tattributes: {\n\t\t\tcontrols: false,\n\t\t\tloop: true,\n\t\t\tautoplay: true,\n\t\t\tmuted: true,\n\t\t\tplaysInline: true,\n\t\t},\n\t\tisActive: ( blockAttributes ) => isGifVariation( blockAttributes ),\n\t\t// Created by converting an uploaded GIF, not inserted directly.\n\t\tscope: [ 'block', 'transform' ],\n\t},\n];\n\nexport default variations;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmB;AACnB,mBAAmC;AAiB5B,IAAM,iBAAiB,CAAE;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,IAAI,CAAC,MAAO,CAAE,YAAY,CAAC,CAAE,QAAQ,CAAC,CAAE,YAAY,CAAC,CAAE,SAAS,CAAC,CAAE;AAEnE,IAAM,aAAa;AAAA,EAClB;AAAA,IACC,MAAM;AAAA,IACN,WAAO,gBAAI,OAAQ;AAAA,IACnB,iBAAa;AAAA,MACZ;AAAA,IACD;AAAA,IACA,MAAM,aAAAA;AAAA,IACN,YAAY,EAAE,UAAU,KAAK;AAAA,IAC7B,UAAU,CAAE,oBAAqB,CAAE,eAAgB,eAAgB;AAAA;AAAA;AAAA,IAGnE,OAAO,CAAE,SAAS,WAAY;AAAA,EAC/B;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,WAAO,gBAAI,KAAM;AAAA,IACjB,iBAAa;AAAA,MACZ;AAAA,IACD;AAAA,IACA,MAAM,aAAAA;AAAA,IACN,UAAU,KAAE,gBAAI,UAAW,GAAG,KAAM;AAAA,IACpC,YAAY;AAAA,MACX,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,IACd;AAAA,IACA,UAAU,CAAE,oBAAqB,eAAgB,eAAgB;AAAA;AAAA,IAEjE,OAAO,CAAE,SAAS,WAAY;AAAA,EAC/B;AACD;AAEA,IAAO,qBAAQ;",
|
|
6
|
-
"names": ["videoIcon"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/gallery/flex-styles.js"],
|
|
4
|
-
"sourcesContent": ["import {\n\t__experimentalGetGapCSSValue as getGapCSSValue,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseStyleOverride,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';\nimport { unlock } from '../lock-unlock';\nimport { getGalleryResponsiveFlexCSS } from './responsive-styles';\n\nconst { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );\nconst { globalStylesDataKey } = unlock( blockEditorPrivateApis );\nconst GALLERY_BLOCK_NAME = 'core/gallery';\n\n// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default\n// gap on the gallery.\nconst FALLBACK_VALUE = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;\n\nfunction getGalleryGapCustomPropertyStyle( selector, blockGap ) {\n\tlet column = FALLBACK_VALUE;\n\tif ( blockGap ) {\n\t\tcolumn =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap ) || FALLBACK_VALUE\n\t\t\t\t: getGapCSSValue( blockGap?.left ) || FALLBACK_VALUE;\n\t}\n\n\t// The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.\n\treturn `${ selector } {\n\t\t--wp--style--unstable-gallery-gap: ${ column === '0' ? '0px' : column }\n\t}`;\n}\n\nfunction getBlockGapValue( style ) {\n\tif ( ! Object.hasOwn( style?.spacing || {}, 'blockGap' ) ) {\n\t\treturn undefined;\n\t}\n\n\treturn style.spacing.blockGap;\n}\n\nexport default function GalleryFlexStyles( { style, clientId } ) {\n\tconst selector = `.wp-block-gallery-${ clientId }`;\n\tconst [ viewportSettings ] = useSettings( 'viewport' );\n\tconst globalStyles = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings()?.[ globalStylesDataKey ],\n\t\t[]\n\t);\n\tconst globalGalleryStyles =\n\t\tglobalStyles?.blocks?.[ GALLERY_BLOCK_NAME ] || {};\n\tconst styleBlockGap = getBlockGapValue( style );\n\tconst globalGalleryBlockGap =\n\t\tglobalGalleryStyles?.spacing?.blockGap ?? FALLBACK_VALUE;\n\t// Prefer the block's own gap value, then Gallery global styles. Missing\n\t// values fall back to the Gallery blockGap default.\n\tconst blockGap =\n\t\tstyleBlockGap === undefined ? globalGalleryBlockGap : styleBlockGap;\n\tlet css = getGalleryGapCustomPropertyStyle( selector, blockGap );\n\tconst responsiveMediaQueries =\n\t\tgetResponsiveMediaQueries( viewportSettings );\n\n\tObject.entries( responsiveMediaQueries ).forEach(\n\t\t( [ viewport, mediaQuery ] ) => {\n\t\t\tconst styleViewportBlockGap = getBlockGapValue(\n\t\t\t\tstyle?.[ viewport ]\n\t\t\t);\n\t\t\t// Viewport-specific block values win. Gallery global viewport values\n\t\t\t// only apply when the block has no base gap, so they do not override an instance value.\n\t\t\tconst globalViewportBlockGap =\n\t\t\t\tstyleBlockGap === undefined\n\t\t\t\t\t? globalGalleryStyles?.[ viewport ]?.spacing?.blockGap\n\t\t\t\t\t: undefined;\n\t\t\tconst viewportBlockGap =\n\t\t\t\tstyleViewportBlockGap === undefined\n\t\t\t\t\t? globalViewportBlockGap\n\t\t\t\t\t: styleViewportBlockGap;\n\t\t\tif ( viewportBlockGap === undefined || viewportBlockGap === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcss += `${ mediaQuery }{${ getGalleryGapCustomPropertyStyle(\n\t\t\t\tselector,\n\t\t\t\tviewportBlockGap\n\t\t\t) }}`;\n\t\t}\n\t);\n\tcss += getGalleryResponsiveFlexCSS(\n\t\tselector,\n\t\tstyle,\n\t\tresponsiveMediaQueries\n\t);\n\n\tuseStyleOverride( { css } );\n\n\treturn null;\n}\n"],
|
|
5
|
-
"mappings": ";AAAA;AAAA,EACC,gCAAgC;AAAA,EAChC,eAAe;AAAA,EACf,SAAS;AAAA,EACT;AAAA,EACA;AAAA,OACM;AACP,SAAS,iBAAiB;AAC1B,SAAS,eAAe,qCAAqC;AAC7D,SAAS,cAAc;AACvB,SAAS,mCAAmC;AAE5C,IAAM,EAAE,0BAA0B,IAAI,OAAQ,6BAA8B;AAC5E,IAAM,EAAE,oBAAoB,IAAI,OAAQ,sBAAuB;AAC/D,IAAM,qBAAqB;AAI3B,IAAM,iBAAiB;AAEvB,SAAS,iCAAkC,UAAU,UAAW;AAC/D,MAAI,SAAS;AACb,MAAK,UAAW;AACf,aACC,OAAO,aAAa,WACjB,eAAgB,QAAS,KAAK,iBAC9B,eAAgB,UAAU,IAAK,KAAK;AAAA,EACzC;AAGA,SAAO,GAAI,QAAS;AAAA,uCACmB,WAAW,MAAM,QAAQ,MAAO;AAAA;AAExE;AAEA,SAAS,iBAAkB,OAAQ;AAClC,MAAK,CAAE,OAAO,OAAQ,OAAO,WAAW,CAAC,GAAG,UAAW,GAAI;AAC1D,WAAO;AAAA,EACR;AAEA,SAAO,MAAM,QAAQ;AACtB;AAEe,SAAR,kBAAoC,EAAE,OAAO,SAAS,GAAI;AAChE,QAAM,WAAW,qBAAsB,QAAS;AAChD,QAAM,CAAE,gBAAiB,IAAI,YAAa,UAAW;AACrD,QAAM,eAAe;AAAA,IACpB,CAAE,WACD,OAAQ,gBAAiB,EAAE,YAAY,IAAK,mBAAoB;AAAA,IACjE,CAAC;AAAA,EACF;AACA,QAAM,sBACL,cAAc,SAAU,kBAAmB,KAAK,CAAC;AAClD,QAAM,gBAAgB,iBAAkB,KAAM;AAC9C,QAAM,wBACL,qBAAqB,SAAS,YAAY;AAG3C,QAAM,WACL,kBAAkB,SAAY,wBAAwB;AACvD,MAAI,MAAM,iCAAkC,UAAU,QAAS;AAC/D,QAAM,yBACL,0BAA2B,gBAAiB;AAE7C,SAAO,QAAS,sBAAuB,EAAE;AAAA,IACxC,CAAE,CAAE,UAAU,UAAW,MAAO;AAC/B,YAAM,wBAAwB;AAAA,QAC7B,QAAS,QAAS;AAAA,MACnB;AAGA,YAAM,yBACL,kBAAkB,SACf,sBAAuB,QAAS,GAAG,SAAS,WAC5C;AACJ,YAAM,mBACL,0BAA0B,SACvB,yBACA;AACJ,UAAK,qBAAqB,UAAa,qBAAqB,MAAO;AAClE;AAAA,MACD;AAEA,aAAO,GAAI,UAAW,IAAK;AAAA,QAC1B;AAAA,QACA;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,mBAAkB,EAAE,IAAI,CAAE;AAE1B,SAAO;AACR;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// packages/block-library/src/video/variations.js
|
|
2
|
-
import { __ } from "@wordpress/i18n";
|
|
3
|
-
import { video as videoIcon } from "@wordpress/icons";
|
|
4
|
-
var isGifVariation = ({
|
|
5
|
-
controls,
|
|
6
|
-
loop,
|
|
7
|
-
autoplay,
|
|
8
|
-
muted,
|
|
9
|
-
playsInline
|
|
10
|
-
} = {}) => !controls && !!loop && !!autoplay && !!muted && !!playsInline;
|
|
11
|
-
var variations = [
|
|
12
|
-
{
|
|
13
|
-
name: "video",
|
|
14
|
-
title: __("Video"),
|
|
15
|
-
description: __(
|
|
16
|
-
"A video with customizable playback and interaction controls."
|
|
17
|
-
),
|
|
18
|
-
icon: videoIcon,
|
|
19
|
-
attributes: { controls: true },
|
|
20
|
-
isActive: (blockAttributes) => !isGifVariation(blockAttributes),
|
|
21
|
-
// Not offered in the inserter; used to label a regular video and to
|
|
22
|
-
// switch a GIF back to a standard video.
|
|
23
|
-
scope: ["block", "transform"]
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
name: "gif",
|
|
27
|
-
title: __("GIF"),
|
|
28
|
-
description: __(
|
|
29
|
-
"A muted, looping video that plays automatically like an animated GIF."
|
|
30
|
-
),
|
|
31
|
-
icon: videoIcon,
|
|
32
|
-
keywords: [__("animated"), "gif"],
|
|
33
|
-
attributes: {
|
|
34
|
-
controls: false,
|
|
35
|
-
loop: true,
|
|
36
|
-
autoplay: true,
|
|
37
|
-
muted: true,
|
|
38
|
-
playsInline: true
|
|
39
|
-
},
|
|
40
|
-
isActive: (blockAttributes) => isGifVariation(blockAttributes),
|
|
41
|
-
// Created by converting an uploaded GIF, not inserted directly.
|
|
42
|
-
scope: ["block", "transform"]
|
|
43
|
-
}
|
|
44
|
-
];
|
|
45
|
-
var variations_default = variations;
|
|
46
|
-
export {
|
|
47
|
-
variations_default as default,
|
|
48
|
-
isGifVariation
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=variations.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/video/variations.js"],
|
|
4
|
-
"sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport { video as videoIcon } from '@wordpress/icons';\n\n/**\n * Whether a set of Video block attributes describes a GIF-behaving video: a\n * muted, looping, autoplaying, inline video with no controls. An animated GIF\n * uploaded through the editor is converted to a video and presented with these\n * attributes so it plays like the original GIF.\n *\n * @param {Object} attributes Video block attributes.\n * @param {boolean} attributes.controls Whether playback controls are shown.\n * @param {boolean} attributes.loop Whether the video loops.\n * @param {boolean} attributes.autoplay Whether the video autoplays.\n * @param {boolean} attributes.muted Whether the video is muted.\n * @param {boolean} attributes.playsInline Whether the video plays inline.\n *\n * @return {boolean} Whether the attributes describe a GIF-behaving video.\n */\nexport const isGifVariation = ( {\n\tcontrols,\n\tloop,\n\tautoplay,\n\tmuted,\n\tplaysInline,\n} = {} ) => ! controls && !! loop && !! autoplay && !! muted && !! playsInline;\n\nconst variations = [\n\t{\n\t\tname: 'video',\n\t\ttitle: __( 'Video' ),\n\t\tdescription: __(\n\t\t\t'A video with customizable playback and interaction controls.'\n\t\t),\n\t\ticon: videoIcon,\n\t\tattributes: { controls: true },\n\t\tisActive: ( blockAttributes ) => ! isGifVariation( blockAttributes ),\n\t\t// Not offered in the inserter; used to label a regular video and to\n\t\t// switch a GIF back to a standard video.\n\t\tscope: [ 'block', 'transform' ],\n\t},\n\t{\n\t\tname: 'gif',\n\t\ttitle: __( 'GIF' ),\n\t\tdescription: __(\n\t\t\t'A muted, looping video that plays automatically like an animated GIF.'\n\t\t),\n\t\ticon: videoIcon,\n\t\tkeywords: [ __( 'animated' ), 'gif' ],\n\t\tattributes: {\n\t\t\tcontrols: false,\n\t\t\tloop: true,\n\t\t\tautoplay: true,\n\t\t\tmuted: true,\n\t\t\tplaysInline: true,\n\t\t},\n\t\tisActive: ( blockAttributes ) => isGifVariation( blockAttributes ),\n\t\t// Created by converting an uploaded GIF, not inserted directly.\n\t\tscope: [ 'block', 'transform' ],\n\t},\n];\n\nexport default variations;\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,UAAU;AACnB,SAAS,SAAS,iBAAiB;AAiB5B,IAAM,iBAAiB,CAAE;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,IAAI,CAAC,MAAO,CAAE,YAAY,CAAC,CAAE,QAAQ,CAAC,CAAE,YAAY,CAAC,CAAE,SAAS,CAAC,CAAE;AAEnE,IAAM,aAAa;AAAA,EAClB;AAAA,IACC,MAAM;AAAA,IACN,OAAO,GAAI,OAAQ;AAAA,IACnB,aAAa;AAAA,MACZ;AAAA,IACD;AAAA,IACA,MAAM;AAAA,IACN,YAAY,EAAE,UAAU,KAAK;AAAA,IAC7B,UAAU,CAAE,oBAAqB,CAAE,eAAgB,eAAgB;AAAA;AAAA;AAAA,IAGnE,OAAO,CAAE,SAAS,WAAY;AAAA,EAC/B;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,OAAO,GAAI,KAAM;AAAA,IACjB,aAAa;AAAA,MACZ;AAAA,IACD;AAAA,IACA,MAAM;AAAA,IACN,UAAU,CAAE,GAAI,UAAW,GAAG,KAAM;AAAA,IACpC,YAAY;AAAA,MACX,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,IACd;AAAA,IACA,UAAU,CAAE,oBAAqB,eAAgB,eAAgB;AAAA;AAAA,IAEjE,OAAO,CAAE,SAAS,WAAY;AAAA,EAC/B;AACD;AAEA,IAAO,qBAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__experimentalGetGapCSSValue as getGapCSSValue,
|
|
3
|
-
privateApis as blockEditorPrivateApis,
|
|
4
|
-
store as blockEditorStore,
|
|
5
|
-
useStyleOverride,
|
|
6
|
-
useSettings,
|
|
7
|
-
} from '@wordpress/block-editor';
|
|
8
|
-
import { useSelect } from '@wordpress/data';
|
|
9
|
-
import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
|
|
10
|
-
import { unlock } from '../lock-unlock';
|
|
11
|
-
import { getGalleryResponsiveFlexCSS } from './responsive-styles';
|
|
12
|
-
|
|
13
|
-
const { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );
|
|
14
|
-
const { globalStylesDataKey } = unlock( blockEditorPrivateApis );
|
|
15
|
-
const GALLERY_BLOCK_NAME = 'core/gallery';
|
|
16
|
-
|
|
17
|
-
// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
|
|
18
|
-
// gap on the gallery.
|
|
19
|
-
const FALLBACK_VALUE = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
|
|
20
|
-
|
|
21
|
-
function getGalleryGapCustomPropertyStyle( selector, blockGap ) {
|
|
22
|
-
let column = FALLBACK_VALUE;
|
|
23
|
-
if ( blockGap ) {
|
|
24
|
-
column =
|
|
25
|
-
typeof blockGap === 'string'
|
|
26
|
-
? getGapCSSValue( blockGap ) || FALLBACK_VALUE
|
|
27
|
-
: getGapCSSValue( blockGap?.left ) || FALLBACK_VALUE;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.
|
|
31
|
-
return `${ selector } {
|
|
32
|
-
--wp--style--unstable-gallery-gap: ${ column === '0' ? '0px' : column }
|
|
33
|
-
}`;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function getBlockGapValue( style ) {
|
|
37
|
-
if ( ! Object.hasOwn( style?.spacing || {}, 'blockGap' ) ) {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return style.spacing.blockGap;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export default function GalleryFlexStyles( { style, clientId } ) {
|
|
45
|
-
const selector = `.wp-block-gallery-${ clientId }`;
|
|
46
|
-
const [ viewportSettings ] = useSettings( 'viewport' );
|
|
47
|
-
const globalStyles = useSelect(
|
|
48
|
-
( select ) =>
|
|
49
|
-
select( blockEditorStore ).getSettings()?.[ globalStylesDataKey ],
|
|
50
|
-
[]
|
|
51
|
-
);
|
|
52
|
-
const globalGalleryStyles =
|
|
53
|
-
globalStyles?.blocks?.[ GALLERY_BLOCK_NAME ] || {};
|
|
54
|
-
const styleBlockGap = getBlockGapValue( style );
|
|
55
|
-
const globalGalleryBlockGap =
|
|
56
|
-
globalGalleryStyles?.spacing?.blockGap ?? FALLBACK_VALUE;
|
|
57
|
-
// Prefer the block's own gap value, then Gallery global styles. Missing
|
|
58
|
-
// values fall back to the Gallery blockGap default.
|
|
59
|
-
const blockGap =
|
|
60
|
-
styleBlockGap === undefined ? globalGalleryBlockGap : styleBlockGap;
|
|
61
|
-
let css = getGalleryGapCustomPropertyStyle( selector, blockGap );
|
|
62
|
-
const responsiveMediaQueries =
|
|
63
|
-
getResponsiveMediaQueries( viewportSettings );
|
|
64
|
-
|
|
65
|
-
Object.entries( responsiveMediaQueries ).forEach(
|
|
66
|
-
( [ viewport, mediaQuery ] ) => {
|
|
67
|
-
const styleViewportBlockGap = getBlockGapValue(
|
|
68
|
-
style?.[ viewport ]
|
|
69
|
-
);
|
|
70
|
-
// Viewport-specific block values win. Gallery global viewport values
|
|
71
|
-
// only apply when the block has no base gap, so they do not override an instance value.
|
|
72
|
-
const globalViewportBlockGap =
|
|
73
|
-
styleBlockGap === undefined
|
|
74
|
-
? globalGalleryStyles?.[ viewport ]?.spacing?.blockGap
|
|
75
|
-
: undefined;
|
|
76
|
-
const viewportBlockGap =
|
|
77
|
-
styleViewportBlockGap === undefined
|
|
78
|
-
? globalViewportBlockGap
|
|
79
|
-
: styleViewportBlockGap;
|
|
80
|
-
if ( viewportBlockGap === undefined || viewportBlockGap === null ) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
css += `${ mediaQuery }{${ getGalleryGapCustomPropertyStyle(
|
|
85
|
-
selector,
|
|
86
|
-
viewportBlockGap
|
|
87
|
-
) }}`;
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
css += getGalleryResponsiveFlexCSS(
|
|
91
|
-
selector,
|
|
92
|
-
style,
|
|
93
|
-
responsiveMediaQueries
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
useStyleOverride( { css } );
|
|
97
|
-
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import variations, { isGifVariation } from '../variations';
|
|
3
|
-
|
|
4
|
-
const GIF_ATTRIBUTES = {
|
|
5
|
-
controls: false,
|
|
6
|
-
loop: true,
|
|
7
|
-
autoplay: true,
|
|
8
|
-
muted: true,
|
|
9
|
-
playsInline: true,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
describe( 'isGifVariation', () => {
|
|
13
|
-
it( 'matches a muted, looping, autoplaying, inline video without controls', () => {
|
|
14
|
-
expect( isGifVariation( GIF_ATTRIBUTES ) ).toBe( true );
|
|
15
|
-
} );
|
|
16
|
-
|
|
17
|
-
it( 'does not match when controls are shown', () => {
|
|
18
|
-
expect( isGifVariation( { ...GIF_ATTRIBUTES, controls: true } ) ).toBe(
|
|
19
|
-
false
|
|
20
|
-
);
|
|
21
|
-
} );
|
|
22
|
-
|
|
23
|
-
it.each( [ 'loop', 'autoplay', 'muted', 'playsInline' ] )(
|
|
24
|
-
'does not match when %s is missing',
|
|
25
|
-
( attribute ) => {
|
|
26
|
-
expect(
|
|
27
|
-
isGifVariation( { ...GIF_ATTRIBUTES, [ attribute ]: false } )
|
|
28
|
-
).toBe( false );
|
|
29
|
-
}
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
it( 'does not match a default video block', () => {
|
|
33
|
-
expect( isGifVariation( { controls: true } ) ).toBe( false );
|
|
34
|
-
} );
|
|
35
|
-
|
|
36
|
-
it( 'handles missing attributes', () => {
|
|
37
|
-
expect( isGifVariation() ).toBe( false );
|
|
38
|
-
expect( isGifVariation( {} ) ).toBe( false );
|
|
39
|
-
} );
|
|
40
|
-
} );
|
|
41
|
-
|
|
42
|
-
describe( 'video variations', () => {
|
|
43
|
-
it( 'registers exactly one active variation for any attributes', () => {
|
|
44
|
-
const active = variations.filter( ( variation ) =>
|
|
45
|
-
variation.isActive( GIF_ATTRIBUTES )
|
|
46
|
-
);
|
|
47
|
-
expect( active ).toHaveLength( 1 );
|
|
48
|
-
expect( active[ 0 ].name ).toBe( 'gif' );
|
|
49
|
-
|
|
50
|
-
const activeForVideo = variations.filter( ( variation ) =>
|
|
51
|
-
variation.isActive( { controls: true } )
|
|
52
|
-
);
|
|
53
|
-
expect( activeForVideo ).toHaveLength( 1 );
|
|
54
|
-
expect( activeForVideo[ 0 ].name ).toBe( 'video' );
|
|
55
|
-
} );
|
|
56
|
-
|
|
57
|
-
it( 'keeps the GIF variation out of the inserter', () => {
|
|
58
|
-
const gif = variations.find(
|
|
59
|
-
( variation ) => variation.name === 'gif'
|
|
60
|
-
);
|
|
61
|
-
expect( gif.scope ).not.toContain( 'inserter' );
|
|
62
|
-
} );
|
|
63
|
-
} );
|
package/src/video/variations.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { __ } from '@wordpress/i18n';
|
|
2
|
-
import { video as videoIcon } from '@wordpress/icons';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Whether a set of Video block attributes describes a GIF-behaving video: a
|
|
6
|
-
* muted, looping, autoplaying, inline video with no controls. An animated GIF
|
|
7
|
-
* uploaded through the editor is converted to a video and presented with these
|
|
8
|
-
* attributes so it plays like the original GIF.
|
|
9
|
-
*
|
|
10
|
-
* @param {Object} attributes Video block attributes.
|
|
11
|
-
* @param {boolean} attributes.controls Whether playback controls are shown.
|
|
12
|
-
* @param {boolean} attributes.loop Whether the video loops.
|
|
13
|
-
* @param {boolean} attributes.autoplay Whether the video autoplays.
|
|
14
|
-
* @param {boolean} attributes.muted Whether the video is muted.
|
|
15
|
-
* @param {boolean} attributes.playsInline Whether the video plays inline.
|
|
16
|
-
*
|
|
17
|
-
* @return {boolean} Whether the attributes describe a GIF-behaving video.
|
|
18
|
-
*/
|
|
19
|
-
export const isGifVariation = ( {
|
|
20
|
-
controls,
|
|
21
|
-
loop,
|
|
22
|
-
autoplay,
|
|
23
|
-
muted,
|
|
24
|
-
playsInline,
|
|
25
|
-
} = {} ) => ! controls && !! loop && !! autoplay && !! muted && !! playsInline;
|
|
26
|
-
|
|
27
|
-
const variations = [
|
|
28
|
-
{
|
|
29
|
-
name: 'video',
|
|
30
|
-
title: __( 'Video' ),
|
|
31
|
-
description: __(
|
|
32
|
-
'A video with customizable playback and interaction controls.'
|
|
33
|
-
),
|
|
34
|
-
icon: videoIcon,
|
|
35
|
-
attributes: { controls: true },
|
|
36
|
-
isActive: ( blockAttributes ) => ! isGifVariation( blockAttributes ),
|
|
37
|
-
// Not offered in the inserter; used to label a regular video and to
|
|
38
|
-
// switch a GIF back to a standard video.
|
|
39
|
-
scope: [ 'block', 'transform' ],
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: 'gif',
|
|
43
|
-
title: __( 'GIF' ),
|
|
44
|
-
description: __(
|
|
45
|
-
'A muted, looping video that plays automatically like an animated GIF.'
|
|
46
|
-
),
|
|
47
|
-
icon: videoIcon,
|
|
48
|
-
keywords: [ __( 'animated' ), 'gif' ],
|
|
49
|
-
attributes: {
|
|
50
|
-
controls: false,
|
|
51
|
-
loop: true,
|
|
52
|
-
autoplay: true,
|
|
53
|
-
muted: true,
|
|
54
|
-
playsInline: true,
|
|
55
|
-
},
|
|
56
|
-
isActive: ( blockAttributes ) => isGifVariation( blockAttributes ),
|
|
57
|
-
// Created by converting an uploaded GIF, not inserted directly.
|
|
58
|
-
scope: [ 'block', 'transform' ],
|
|
59
|
-
},
|
|
60
|
-
];
|
|
61
|
-
|
|
62
|
-
export default variations;
|