@wordpress/block-library 7.17.0 → 7.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/audio/edit.js +44 -4
- package/build/audio/edit.js.map +1 -1
- package/build/button/deprecated.js +16 -2
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +14 -8
- package/build/button/edit.js.map +1 -1
- package/build/button/index.js +4 -1
- package/build/button/index.js.map +1 -1
- package/build/button/save.js +2 -0
- package/build/button/save.js.map +1 -1
- package/build/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/columns/transforms.js +5 -0
- package/build/columns/transforms.js.map +1 -1
- package/build/comment-template/index.js +6 -2
- package/build/comment-template/index.js.map +1 -1
- package/build/cover/edit/index.js +3 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +3 -7
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/embed/deprecated.js +43 -4
- package/build/embed/deprecated.js.map +1 -1
- package/build/file/deprecated.js +108 -4
- package/build/file/deprecated.js.map +1 -1
- package/build/file/transforms.js +3 -9
- package/build/file/transforms.js.map +1 -1
- package/build/gallery/deprecated.js +148 -23
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/gallery.js +3 -2
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/use-image-sizes.js +2 -1
- package/build/gallery/use-image-sizes.js.map +1 -1
- package/build/gallery/v1/edit.js +6 -3
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/group/edit.js +105 -48
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -0
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +168 -0
- package/build/group/placeholder.js.map +1 -0
- package/build/group/variations.js +3 -3
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.native.js +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +6 -9
- package/build/image/image.js.map +1 -1
- package/build/latest-comments/edit.js +2 -1
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-comments/index.js +5 -1
- package/build/latest-comments/index.js.map +1 -1
- package/build/latest-posts/deprecated.js +13 -0
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/edit.js +1 -1
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/index.js +13 -0
- package/build/latest-posts/index.js.map +1 -1
- package/build/list/utils.js +4 -8
- package/build/list/utils.js.map +1 -1
- package/build/list-item/edit.js +2 -1
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +5 -7
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/navigation/edit/index.js +94 -103
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/manage-menus-button.js +36 -0
- package/build/navigation/edit/manage-menus-button.js.map +1 -0
- package/build/navigation/edit/navigation-menu-selector.js +12 -5
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +2 -6
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +5 -17
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation-link/edit.js +14 -3
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +4 -4
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +29 -10
- package/build/page-list/edit.js.map +1 -1
- package/build/post-author/edit.js +35 -20
- package/build/post-author/edit.js.map +1 -1
- package/build/post-comments-count/index.js +4 -0
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-form/index.js +4 -0
- package/build/post-comments-form/index.js.map +1 -1
- package/build/post-comments-link/index.js +4 -0
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-content/edit.js +14 -6
- package/build/post-content/edit.js.map +1 -1
- package/build/post-content/index.js +3 -0
- package/build/post-content/index.js.map +1 -1
- package/build/pullquote/deprecated.js +6 -6
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/search/edit.js +1 -3
- package/build/search/edit.js.map +1 -1
- package/build/site-logo/edit.js +2 -2
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-tagline/edit.js +21 -9
- package/build/site-tagline/edit.js.map +1 -1
- package/build/site-title/edit/index.js +20 -8
- package/build/site-title/edit/index.js.map +1 -1
- package/build/social-link/edit.js +11 -2
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/index.js +3 -0
- package/build/social-link/index.js.map +1 -1
- package/build/spacer/controls.js +3 -7
- package/build/spacer/controls.js.map +1 -1
- package/build/table/deprecated.js +282 -27
- package/build/table/deprecated.js.map +1 -1
- package/build/table/state.js +1 -1
- package/build/table/state.js.map +1 -1
- package/build/template-part/variations.js +5 -0
- package/build/template-part/variations.js.map +1 -1
- package/build/utils/clean-empty-object.js +5 -4
- package/build/utils/clean-empty-object.js.map +1 -1
- package/build/video/deprecated.js +159 -0
- package/build/video/deprecated.js.map +1 -0
- package/build/video/edit.js +41 -5
- package/build/video/edit.js.map +1 -1
- package/build/video/index.js +3 -0
- package/build/video/index.js.map +1 -1
- package/build/video/tracks-editor.js +3 -28
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/audio/edit.js +46 -7
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/button/deprecated.js +16 -2
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +16 -10
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/index.js +4 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/save.js +2 -0
- package/build-module/button/save.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/columns/transforms.js +5 -0
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/comment-template/index.js +6 -2
- package/build-module/comment-template/index.js.map +1 -1
- package/build-module/cover/edit/index.js +3 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +4 -8
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/embed/deprecated.js +44 -5
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/file/deprecated.js +108 -4
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/transforms.js +3 -8
- package/build-module/file/transforms.js.map +1 -1
- package/build-module/gallery/deprecated.js +147 -25
- package/build-module/gallery/deprecated.js.map +1 -1
- package/build-module/gallery/gallery.js +3 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/use-image-sizes.js +3 -2
- package/build-module/gallery/use-image-sizes.js.map +1 -1
- package/build-module/gallery/v1/edit.js +7 -4
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/group/edit.js +101 -48
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +154 -0
- package/build-module/group/placeholder.js.map +1 -0
- package/build-module/group/variations.js +3 -3
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.native.js +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +8 -11
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-comments/edit.js +2 -1
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-comments/index.js +5 -1
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/latest-posts/deprecated.js +13 -0
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -2
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/index.js +13 -0
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/list/utils.js +5 -9
- package/build-module/list/utils.js.map +1 -1
- package/build-module/list-item/edit.js +2 -1
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +5 -6
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/navigation/edit/index.js +96 -105
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/manage-menus-button.js +26 -0
- package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
- package/build-module/navigation/edit/navigation-menu-selector.js +13 -6
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +2 -6
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -18
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation-link/edit.js +14 -4
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +4 -4
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +29 -10
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/post-author/edit.js +35 -21
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-comments-count/index.js +4 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-form/index.js +4 -0
- package/build-module/post-comments-form/index.js.map +1 -1
- package/build-module/post-comments-link/index.js +4 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-content/edit.js +14 -6
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-content/index.js +3 -0
- package/build-module/post-content/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js +7 -7
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/search/edit.js +1 -3
- package/build-module/search/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +3 -3
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-tagline/edit.js +23 -11
- package/build-module/site-tagline/edit.js.map +1 -1
- package/build-module/site-title/edit/index.js +22 -10
- package/build-module/site-title/edit/index.js.map +1 -1
- package/build-module/social-link/edit.js +11 -2
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/index.js +3 -0
- package/build-module/social-link/index.js.map +1 -1
- package/build-module/spacer/controls.js +4 -8
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/table/deprecated.js +282 -27
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/state.js +1 -1
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/variations.js +5 -0
- package/build-module/template-part/variations.js.map +1 -1
- package/build-module/utils/clean-empty-object.js +5 -5
- package/build-module/utils/clean-empty-object.js.map +1 -1
- package/build-module/video/deprecated.js +147 -0
- package/build-module/video/deprecated.js.map +1 -0
- package/build-module/video/edit.js +45 -9
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/index.js +2 -0
- package/build-module/video/index.js.map +1 -1
- package/build-module/video/tracks-editor.js +4 -29
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/button/style-rtl.css +1 -0
- package/build-style/button/style.css +1 -0
- package/build-style/comment-template/style-rtl.css +1 -0
- package/build-style/comment-template/style.css +1 -0
- package/build-style/editor-rtl.css +80 -5
- package/build-style/editor.css +80 -5
- package/build-style/group/editor-rtl.css +44 -0
- package/build-style/group/editor.css +44 -0
- package/build-style/latest-comments/style-rtl.css +1 -0
- package/build-style/latest-comments/style.css +1 -0
- package/build-style/latest-posts/style-rtl.css +3 -0
- package/build-style/latest-posts/style.css +3 -0
- package/build-style/navigation/editor-rtl.css +27 -4
- package/build-style/navigation/editor.css +27 -4
- package/build-style/navigation/style-rtl.css +13 -1
- package/build-style/navigation/style.css +13 -1
- package/build-style/navigation-link/editor-rtl.css +8 -1
- package/build-style/navigation-link/editor.css +8 -1
- package/build-style/post-comments-form/style-rtl.css +3 -0
- package/build-style/post-comments-form/style.css +3 -0
- package/build-style/query/editor-rtl.css +1 -1
- package/build-style/query/editor.css +1 -1
- package/build-style/query-pagination/style-rtl.css +1 -1
- package/build-style/query-pagination/style.css +1 -1
- package/build-style/style-rtl.css +28 -2
- package/build-style/style.css +28 -2
- package/build-style/table/editor-rtl.css +1 -0
- package/build-style/table/editor.css +1 -0
- package/build-style/table/style-rtl.css +5 -0
- package/build-style/table/style.css +5 -0
- package/build-style/table/theme-rtl.css +1 -3
- package/build-style/table/theme.css +1 -3
- package/build-style/theme-rtl.css +1 -3
- package/build-style/theme.css +1 -3
- package/package.json +29 -28
- package/src/audio/edit.js +79 -24
- package/src/avatar/index.php +1 -1
- package/src/block/test/edit.native.js +8 -8
- package/src/button/block.json +4 -1
- package/src/button/deprecated.js +18 -2
- package/src/button/edit.js +12 -10
- package/src/button/save.js +12 -2
- package/src/button/style.scss +2 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/edit.native.js +19 -19
- package/src/columns/test/edit.native.js +32 -32
- package/src/columns/transforms.js +8 -0
- package/src/comment-template/block.json +6 -2
- package/src/comment-template/style.scss +2 -0
- package/src/cover/edit/index.js +3 -1
- package/src/cover/edit/inspector-controls.js +11 -13
- package/src/cover/test/edit.native.js +26 -26
- package/src/embed/deprecated.js +53 -26
- package/src/embed/test/index.native.js +43 -43
- package/src/file/deprecated.js +130 -2
- package/src/file/transforms.js +3 -8
- package/src/gallery/deprecated.js +129 -4
- package/src/gallery/gallery.js +2 -0
- package/src/gallery/index.php +19 -10
- package/src/gallery/test/index.native.js +11 -11
- package/src/gallery/use-image-sizes.js +3 -2
- package/src/gallery/v1/edit.js +21 -25
- package/src/group/block.json +3 -0
- package/src/group/edit.js +105 -46
- package/src/group/editor.scss +48 -0
- package/src/group/placeholder.js +187 -0
- package/src/group/test/edit.native.js +3 -3
- package/src/group/test/placeholder.js +78 -0
- package/src/group/variations.js +3 -3
- package/src/image/edit.native.js +1 -1
- package/src/image/image.js +22 -10
- package/src/image/test/edit.native.js +17 -17
- package/src/latest-comments/block.json +5 -1
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-comments/style.scss +3 -0
- package/src/latest-posts/block.json +13 -0
- package/src/latest-posts/edit.js +2 -2
- package/src/latest-posts/style.scss +3 -0
- package/src/list/test/edit.native.js +36 -36
- package/src/list/utils.js +3 -11
- package/src/list-item/edit.js +1 -0
- package/src/list-item/hooks/use-outdent-list-item.js +3 -6
- package/src/missing/test/edit-integration.native.js +5 -5
- package/src/navigation/edit/index.js +186 -161
- package/src/navigation/edit/manage-menus-button.js +21 -0
- package/src/navigation/edit/navigation-menu-selector.js +20 -5
- package/src/navigation/edit/responsive-wrapper.js +2 -10
- package/src/navigation/edit/unsaved-inner-blocks.js +5 -22
- package/src/navigation/editor.scss +29 -4
- package/src/navigation/style.scss +19 -1
- package/src/navigation-link/edit.js +13 -4
- package/src/navigation-link/editor.scss +8 -0
- package/src/navigation-submenu/edit.js +7 -5
- package/src/page-list/edit.js +36 -22
- package/src/post-author/edit.js +44 -20
- package/src/post-comments-count/block.json +4 -0
- package/src/post-comments-form/block.json +4 -0
- package/src/post-comments-form/style.scss +3 -0
- package/src/post-comments-link/block.json +4 -0
- package/src/post-content/block.json +3 -0
- package/src/post-content/edit.js +8 -4
- package/src/pullquote/deprecated.js +7 -7
- package/src/query/editor.scss +1 -1
- package/src/query-pagination/style.scss +1 -1
- package/src/read-more/index.php +9 -2
- package/src/search/edit.js +1 -1
- package/src/shortcode/test/edit.native.js +5 -5
- package/src/site-logo/edit.js +3 -3
- package/src/site-tagline/edit.js +25 -18
- package/src/site-title/edit/index.js +26 -12
- package/src/social-link/block.json +3 -0
- package/src/social-link/edit.js +8 -1
- package/src/social-link/index.php +11 -7
- package/src/social-link/test/index.native.js +10 -10
- package/src/social-links/test/edit.native.js +4 -4
- package/src/spacer/controls.js +10 -12
- package/src/spacer/test/index.native.js +17 -17
- package/src/table/deprecated.js +587 -348
- package/src/table/editor.scss +1 -0
- package/src/table/state.js +1 -1
- package/src/table/style.scss +7 -0
- package/src/table/theme.scss +1 -3
- package/src/template-part/index.php +5 -0
- package/src/template-part/variations.js +4 -0
- package/src/utils/clean-empty-object.js +5 -6
- package/src/video/deprecated.js +57 -0
- package/src/video/edit.js +71 -23
- package/src/video/index.js +2 -0
- package/src/video/tracks-editor.js +12 -28
package/src/table/editor.scss
CHANGED
package/src/table/state.js
CHANGED
|
@@ -281,7 +281,7 @@ export function deleteColumn( state, { columnIndex } ) {
|
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
|
-
* Toggles the
|
|
284
|
+
* Toggles the existence of a section.
|
|
285
285
|
*
|
|
286
286
|
* @param {Object} state Current table state.
|
|
287
287
|
* @param {string} sectionName Name of the section to toggle.
|
package/src/table/style.scss
CHANGED
package/src/table/theme.scss
CHANGED
|
@@ -193,6 +193,11 @@ function build_template_part_block_instance_variations() {
|
|
|
193
193
|
if ( wp_installing() ) {
|
|
194
194
|
return array();
|
|
195
195
|
}
|
|
196
|
+
|
|
197
|
+
if ( ! current_theme_supports( 'block-templates' ) && ! current_theme_supports( 'block-template-parts' ) ) {
|
|
198
|
+
return array();
|
|
199
|
+
}
|
|
200
|
+
|
|
196
201
|
$variations = array();
|
|
197
202
|
$template_parts = get_block_templates(
|
|
198
203
|
array(
|
|
@@ -40,6 +40,10 @@ export function enhanceTemplatePartVariations( settings, name ) {
|
|
|
40
40
|
'wp_template_part',
|
|
41
41
|
`${ theme }//${ slug }`
|
|
42
42
|
);
|
|
43
|
+
|
|
44
|
+
if ( entity?.slug ) {
|
|
45
|
+
return entity.slug === variationAttributes.slug;
|
|
46
|
+
}
|
|
43
47
|
return entity?.area === variationAttributes.area;
|
|
44
48
|
};
|
|
45
49
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { isEmpty, mapValues
|
|
5
|
-
|
|
6
|
-
const identity = ( x ) => x;
|
|
4
|
+
import { isEmpty, mapValues } from 'lodash';
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* Removed empty nodes from nested objects.
|
|
@@ -19,9 +17,10 @@ const cleanEmptyObject = ( object ) => {
|
|
|
19
17
|
) {
|
|
20
18
|
return object;
|
|
21
19
|
}
|
|
22
|
-
const cleanedNestedObjects =
|
|
23
|
-
mapValues( object, cleanEmptyObject )
|
|
24
|
-
|
|
20
|
+
const cleanedNestedObjects = Object.fromEntries(
|
|
21
|
+
Object.entries( mapValues( object, cleanEmptyObject ) ).filter(
|
|
22
|
+
( [ , value ] ) => Boolean( value )
|
|
23
|
+
)
|
|
25
24
|
);
|
|
26
25
|
return isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;
|
|
27
26
|
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { RichText, useBlockProps } from '@wordpress/block-editor';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import metadata from './block.json';
|
|
10
|
+
import Tracks from './tracks';
|
|
11
|
+
|
|
12
|
+
const { attributes: blockAttributes } = metadata;
|
|
13
|
+
|
|
14
|
+
// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
|
|
15
|
+
// to the video figcaption element.
|
|
16
|
+
const v1 = {
|
|
17
|
+
attributes: blockAttributes,
|
|
18
|
+
save( { attributes } ) {
|
|
19
|
+
const {
|
|
20
|
+
autoplay,
|
|
21
|
+
caption,
|
|
22
|
+
controls,
|
|
23
|
+
loop,
|
|
24
|
+
muted,
|
|
25
|
+
poster,
|
|
26
|
+
preload,
|
|
27
|
+
src,
|
|
28
|
+
playsInline,
|
|
29
|
+
tracks,
|
|
30
|
+
} = attributes;
|
|
31
|
+
return (
|
|
32
|
+
<figure { ...useBlockProps.save() }>
|
|
33
|
+
{ src && (
|
|
34
|
+
<video
|
|
35
|
+
autoPlay={ autoplay }
|
|
36
|
+
controls={ controls }
|
|
37
|
+
loop={ loop }
|
|
38
|
+
muted={ muted }
|
|
39
|
+
poster={ poster }
|
|
40
|
+
preload={ preload !== 'metadata' ? preload : undefined }
|
|
41
|
+
src={ src }
|
|
42
|
+
playsInline={ playsInline }
|
|
43
|
+
>
|
|
44
|
+
<Tracks tracks={ tracks } />
|
|
45
|
+
</video>
|
|
46
|
+
) }
|
|
47
|
+
{ ! RichText.isEmpty( caption ) && (
|
|
48
|
+
<RichText.Content tagName="figcaption" value={ caption } />
|
|
49
|
+
) }
|
|
50
|
+
</figure>
|
|
51
|
+
);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const deprecated = [ v1 ];
|
|
56
|
+
|
|
57
|
+
export default deprecated;
|
package/src/video/edit.js
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
PanelBody,
|
|
15
15
|
Spinner,
|
|
16
16
|
Placeholder,
|
|
17
|
+
ToolbarButton,
|
|
17
18
|
} from '@wordpress/components';
|
|
18
19
|
import {
|
|
19
20
|
BlockControls,
|
|
@@ -28,11 +29,11 @@ import {
|
|
|
28
29
|
store as blockEditorStore,
|
|
29
30
|
__experimentalGetElementClassName,
|
|
30
31
|
} from '@wordpress/block-editor';
|
|
31
|
-
import { useRef, useEffect } from '@wordpress/element';
|
|
32
|
+
import { useRef, useEffect, useState, useCallback } from '@wordpress/element';
|
|
32
33
|
import { __, sprintf } from '@wordpress/i18n';
|
|
33
|
-
import { useInstanceId } from '@wordpress/compose';
|
|
34
|
+
import { useInstanceId, usePrevious } from '@wordpress/compose';
|
|
34
35
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
35
|
-
import { video as icon } from '@wordpress/icons';
|
|
36
|
+
import { video as icon, caption as captionIcon } from '@wordpress/icons';
|
|
36
37
|
import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
|
|
37
38
|
import { store as noticesStore } from '@wordpress/notices';
|
|
38
39
|
|
|
@@ -76,6 +77,8 @@ function VideoEdit( {
|
|
|
76
77
|
const videoPlayer = useRef();
|
|
77
78
|
const posterImageButton = useRef();
|
|
78
79
|
const { id, caption, controls, poster, src, tracks } = attributes;
|
|
80
|
+
const prevCaption = usePrevious( caption );
|
|
81
|
+
const [ showCaption, setShowCaption ] = useState( !! caption );
|
|
79
82
|
const isTemporaryVideo = ! id && isBlobURL( src );
|
|
80
83
|
const mediaUpload = useSelect(
|
|
81
84
|
( select ) => select( blockEditorStore ).getSettings().mediaUpload,
|
|
@@ -103,6 +106,30 @@ function VideoEdit( {
|
|
|
103
106
|
}
|
|
104
107
|
}, [ poster ] );
|
|
105
108
|
|
|
109
|
+
// We need to show the caption when changes come from
|
|
110
|
+
// history navigation(undo/redo).
|
|
111
|
+
useEffect( () => {
|
|
112
|
+
if ( caption && ! prevCaption ) {
|
|
113
|
+
setShowCaption( true );
|
|
114
|
+
}
|
|
115
|
+
}, [ caption, prevCaption ] );
|
|
116
|
+
|
|
117
|
+
// Focus the caption when we click to add one.
|
|
118
|
+
const captionRef = useCallback(
|
|
119
|
+
( node ) => {
|
|
120
|
+
if ( node && ! caption ) {
|
|
121
|
+
node.focus();
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
[ caption ]
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
useEffect( () => {
|
|
128
|
+
if ( ! isSelected && ! caption ) {
|
|
129
|
+
setShowCaption( false );
|
|
130
|
+
}
|
|
131
|
+
}, [ isSelected, caption ] );
|
|
132
|
+
|
|
106
133
|
function onSelectVideo( media ) {
|
|
107
134
|
if ( ! media || ! media.url ) {
|
|
108
135
|
// In this case there was an error
|
|
@@ -112,6 +139,7 @@ function VideoEdit( {
|
|
|
112
139
|
src: undefined,
|
|
113
140
|
id: undefined,
|
|
114
141
|
poster: undefined,
|
|
142
|
+
caption: undefined,
|
|
115
143
|
} );
|
|
116
144
|
return;
|
|
117
145
|
}
|
|
@@ -123,6 +151,7 @@ function VideoEdit( {
|
|
|
123
151
|
id: media.id,
|
|
124
152
|
poster:
|
|
125
153
|
media.image?.src !== media.icon ? media.image?.src : undefined,
|
|
154
|
+
caption: media.caption,
|
|
126
155
|
} );
|
|
127
156
|
}
|
|
128
157
|
|
|
@@ -186,6 +215,23 @@ function VideoEdit( {
|
|
|
186
215
|
return (
|
|
187
216
|
<>
|
|
188
217
|
<BlockControls group="block">
|
|
218
|
+
<ToolbarButton
|
|
219
|
+
onClick={ () => {
|
|
220
|
+
setShowCaption( ! showCaption );
|
|
221
|
+
if ( showCaption && caption ) {
|
|
222
|
+
setAttributes( { caption: undefined } );
|
|
223
|
+
}
|
|
224
|
+
} }
|
|
225
|
+
icon={ captionIcon }
|
|
226
|
+
isPressed={ showCaption }
|
|
227
|
+
label={
|
|
228
|
+
showCaption
|
|
229
|
+
? __( 'Remove caption' )
|
|
230
|
+
: __( 'Add caption' )
|
|
231
|
+
}
|
|
232
|
+
/>
|
|
233
|
+
</BlockControls>
|
|
234
|
+
<BlockControls>
|
|
189
235
|
<TracksEditor
|
|
190
236
|
tracks={ tracks }
|
|
191
237
|
onChange={ ( newTracks ) => {
|
|
@@ -278,26 +324,28 @@ function VideoEdit( {
|
|
|
278
324
|
</video>
|
|
279
325
|
</Disabled>
|
|
280
326
|
{ isTemporaryVideo && <Spinner /> }
|
|
281
|
-
{
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
327
|
+
{ showCaption &&
|
|
328
|
+
( ! RichText.isEmpty( caption ) || isSelected ) && (
|
|
329
|
+
<RichText
|
|
330
|
+
tagName="figcaption"
|
|
331
|
+
className={ __experimentalGetElementClassName(
|
|
332
|
+
'caption'
|
|
333
|
+
) }
|
|
334
|
+
aria-label={ __( 'Video caption text' ) }
|
|
335
|
+
ref={ captionRef }
|
|
336
|
+
placeholder={ __( 'Add caption' ) }
|
|
337
|
+
value={ caption }
|
|
338
|
+
onChange={ ( value ) =>
|
|
339
|
+
setAttributes( { caption: value } )
|
|
340
|
+
}
|
|
341
|
+
inlineToolbar
|
|
342
|
+
__unstableOnSplitAtEnd={ () =>
|
|
343
|
+
insertBlocksAfter(
|
|
344
|
+
createBlock( getDefaultBlockName() )
|
|
345
|
+
)
|
|
346
|
+
}
|
|
347
|
+
/>
|
|
348
|
+
) }
|
|
301
349
|
</figure>
|
|
302
350
|
</>
|
|
303
351
|
);
|
package/src/video/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { video as icon } from '@wordpress/icons';
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import initBlock from '../utils/init-block';
|
|
11
|
+
import deprecated from './deprecated';
|
|
11
12
|
import edit from './edit';
|
|
12
13
|
import metadata from './block.json';
|
|
13
14
|
import save from './save';
|
|
@@ -27,6 +28,7 @@ export const settings = {
|
|
|
27
28
|
},
|
|
28
29
|
},
|
|
29
30
|
transforms,
|
|
31
|
+
deprecated,
|
|
30
32
|
edit,
|
|
31
33
|
save,
|
|
32
34
|
};
|
|
@@ -7,11 +7,9 @@ import {
|
|
|
7
7
|
MenuItem,
|
|
8
8
|
FormFileUpload,
|
|
9
9
|
MenuGroup,
|
|
10
|
+
ToolbarGroup,
|
|
10
11
|
ToolbarButton,
|
|
11
12
|
Dropdown,
|
|
12
|
-
SVG,
|
|
13
|
-
Rect,
|
|
14
|
-
Path,
|
|
15
13
|
Button,
|
|
16
14
|
TextControl,
|
|
17
15
|
SelectControl,
|
|
@@ -38,23 +36,6 @@ const KIND_OPTIONS = [
|
|
|
38
36
|
{ label: __( 'Metadata' ), value: 'metadata' },
|
|
39
37
|
];
|
|
40
38
|
|
|
41
|
-
const captionIcon = (
|
|
42
|
-
<SVG width="18" height="14" viewBox="0 0 18 14" role="img" fill="none">
|
|
43
|
-
<Rect
|
|
44
|
-
x="0.75"
|
|
45
|
-
y="0.75"
|
|
46
|
-
width="16.5"
|
|
47
|
-
height="12.5"
|
|
48
|
-
rx="1.25"
|
|
49
|
-
stroke="black"
|
|
50
|
-
strokeWidth="1.5"
|
|
51
|
-
fill="none"
|
|
52
|
-
/>
|
|
53
|
-
<Path d="M3 7H15" stroke="black" strokeWidth="1.5" />
|
|
54
|
-
<Path d="M3 10L15 10" stroke="black" strokeWidth="1.5" />
|
|
55
|
-
</SVG>
|
|
56
|
-
);
|
|
57
|
-
|
|
58
39
|
function TrackList( { tracks, onEditPress } ) {
|
|
59
40
|
let content;
|
|
60
41
|
if ( tracks.length === 0 ) {
|
|
@@ -200,14 +181,17 @@ export default function TracksEditor( { tracks = [], onChange } ) {
|
|
|
200
181
|
<Dropdown
|
|
201
182
|
contentClassName="block-library-video-tracks-editor"
|
|
202
183
|
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
203
|
-
<
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
184
|
+
<ToolbarGroup>
|
|
185
|
+
<ToolbarButton
|
|
186
|
+
label={ __( 'Text tracks' ) }
|
|
187
|
+
showTooltip
|
|
188
|
+
aria-expanded={ isOpen }
|
|
189
|
+
aria-haspopup="true"
|
|
190
|
+
onClick={ onToggle }
|
|
191
|
+
>
|
|
192
|
+
{ __( 'Text tracks' ) }
|
|
193
|
+
</ToolbarButton>
|
|
194
|
+
</ToolbarGroup>
|
|
211
195
|
) }
|
|
212
196
|
renderContent={ () => {
|
|
213
197
|
if ( trackBeingEdited !== null ) {
|