@wordpress/block-library 8.29.0 → 8.30.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 +2 -0
- package/build/audio/edit.js +7 -17
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js.map +1 -1
- package/build/avatar/edit.js.map +1 -1
- package/build/block/deprecated.js +71 -11
- package/build/block/deprecated.js.map +1 -1
- package/build/block/edit.js +49 -24
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +2 -2
- package/build/button/edit.js.map +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/buttons/transforms.js +16 -2
- package/build/buttons/transforms.js.map +1 -1
- package/build/code/transforms.js +17 -6
- package/build/code/transforms.js.map +1 -1
- package/build/columns/edit.js +3 -2
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -1
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/block-controls.js +14 -3
- package/build/cover/edit/block-controls.js.map +1 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +0 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +6 -13
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/save.js.map +1 -1
- package/build/form-input/edit.js +1 -1
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/heading/transforms.js +17 -4
- package/build/heading/transforms.js.map +1 -1
- package/build/image/edit.js +8 -4
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +22 -8
- package/build/image/image.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -1
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.js +1 -3
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/index.js +0 -7
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +1 -0
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +16 -7
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/paragraph/edit.native.js.map +1 -1
- package/build/pattern/edit.js +11 -0
- package/build/pattern/edit.js.map +1 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +8 -11
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-title/edit.js +2 -2
- package/build/post-title/edit.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/utils.js +7 -5
- package/build/query/utils.js.map +1 -1
- package/build/query-pagination-next/edit.js.map +1 -1
- package/build/query-pagination-previous/edit.js.map +1 -1
- package/build/quote/deprecated.js +111 -12
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/edit.js +5 -5
- package/build/quote/edit.js.map +1 -1
- package/build/quote/index.js +1 -1
- package/build/quote/index.js.map +1 -1
- package/build/quote/save.js +2 -2
- package/build/quote/save.js.map +1 -1
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +1 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/site-logo/edit.js +7 -2
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/{edit/index.js → edit.js} +1 -1
- package/build/site-title/edit.js.map +1 -0
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/edit.js.map +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +53 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +2 -8
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build/utils/caption.js +15 -5
- package/build/utils/caption.js.map +1 -1
- package/build/utils/get-transformed-metadata.js +57 -0
- package/build/utils/get-transformed-metadata.js.map +1 -0
- package/build/utils/hooks.js +55 -4
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +7 -16
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +2 -7
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.js +10 -20
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/block/deprecated.js +71 -11
- package/build-module/block/deprecated.js.map +1 -1
- package/build-module/block/edit.js +49 -24
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +3 -3
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/buttons/transforms.js +16 -2
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/code/transforms.js +17 -6
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/columns/edit.js +3 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -1
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +15 -4
- package/build-module/cover/edit/block-controls.js.map +1 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +1 -7
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +7 -14
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/save.js.map +1 -1
- package/build-module/form-input/edit.js +1 -1
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/heading/transforms.js +17 -4
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/edit.js +9 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +23 -9
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -1
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.js +2 -4
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/index.js +0 -1
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +17 -8
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/list-item/index.js +4 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/paragraph/edit.native.js.map +1 -1
- package/build-module/pattern/edit.js +11 -0
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +9 -12
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-title/edit.js +2 -2
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/utils.js +7 -5
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-pagination-next/edit.js.map +1 -1
- package/build-module/query-pagination-previous/edit.js.map +1 -1
- package/build-module/quote/deprecated.js +112 -13
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/edit.js +5 -5
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/save.js +2 -2
- package/build-module/quote/save.js.map +1 -1
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +1 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -2
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/{edit/index.js → edit.js} +1 -1
- package/build-module/site-title/edit.js.map +1 -0
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +57 -5
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -8
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build-module/utils/caption.js +13 -3
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/get-transformed-metadata.js +51 -0
- package/build-module/utils/get-transformed-metadata.js.map +1 -0
- package/build-module/utils/hooks.js +54 -3
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +10 -19
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +2 -7
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/common-rtl.css +1 -0
- package/build-style/common.css +1 -0
- package/build-style/cover/style-rtl.css +2 -1
- package/build-style/cover/style.css +2 -1
- package/build-style/editor-rtl.css +4 -1
- package/build-style/editor.css +4 -1
- package/build-style/group/editor-rtl.css +1 -1
- package/build-style/group/editor.css +1 -1
- package/build-style/image/editor-rtl.css +3 -0
- package/build-style/image/editor.css +3 -0
- package/build-style/search/style-rtl.css +2 -0
- package/build-style/search/style.css +2 -0
- package/build-style/style-rtl.css +4 -1
- package/build-style/style.css +4 -1
- package/package.json +34 -34
- package/src/audio/edit.js +9 -19
- package/src/audio/edit.native.js +3 -3
- package/src/avatar/edit.js +1 -1
- package/src/block/deprecated.js +76 -11
- package/src/block/edit.js +64 -19
- package/src/block/index.php +23 -12
- package/src/button/edit.js +4 -3
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/transforms.js +14 -4
- package/src/calendar/index.php +5 -0
- package/src/code/transforms.js +20 -5
- package/src/columns/edit.js +3 -2
- package/src/comment-author-avatar/edit.js +1 -1
- package/src/comments/index.php +2 -0
- package/src/cover/edit/block-controls.js +16 -2
- package/src/cover/edit/index.js +2 -2
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit/resizable-cover-popover.js +1 -6
- package/src/cover/edit.native.js +1 -1
- package/src/cover/style.scss +3 -2
- package/src/file/deprecated.js +3 -3
- package/src/file/edit.js +8 -15
- package/src/file/edit.native.js +4 -4
- package/src/file/save.js +1 -1
- package/src/footnotes/index.php +1 -1
- package/src/form-input/edit.js +1 -1
- package/src/gallery/edit.js +3 -3
- package/src/gallery/gallery.native.js +1 -1
- package/src/gallery/test/index.native.js +1 -1
- package/src/gallery/v1/edit.js +2 -2
- package/src/gallery/v1/gallery.native.js +1 -1
- package/src/group/editor.scss +1 -1
- package/src/heading/transforms.js +27 -8
- package/src/image/edit.js +13 -5
- package/src/image/edit.native.js +1 -1
- package/src/image/editor.scss +6 -0
- package/src/image/image.js +34 -22
- package/src/latest-posts/edit.native.js +1 -1
- package/src/list/ordered-list-settings.js +1 -1
- package/src/list-item/edit.js +1 -2
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/hooks/index.js +0 -1
- package/src/list-item/hooks/use-indent-list-item.js +2 -0
- package/src/list-item/hooks/use-outdent-list-item.js +2 -0
- package/src/list-item/hooks/use-space.js +16 -9
- package/src/list-item/index.js +3 -0
- package/src/media-text/media-container.native.js +5 -3
- package/src/media-text/test/edit.native.js +58 -0
- package/src/missing/test/edit-integration.native.js +2 -1
- package/src/navigation/edit/index.js +1 -1
- package/src/navigation/edit/test/navigation-menu-selector.js +3 -3
- package/src/navigation/index.php +26 -17
- package/src/navigation-link/link-ui.js +2 -2
- package/src/paragraph/edit.native.js +1 -1
- package/src/paragraph/test/edit.native.js +36 -0
- package/src/pattern/edit.js +14 -0
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +10 -12
- package/src/post-navigation-link/edit.js +1 -1
- package/src/post-template/index.php +2 -0
- package/src/post-title/edit.js +49 -43
- package/src/query/edit/pattern-selection-modal.js +1 -1
- package/src/query/utils.js +6 -4
- package/src/query-pagination-next/edit.js +1 -1
- package/src/query-pagination-previous/edit.js +1 -1
- package/src/quote/block.json +1 -1
- package/src/quote/deprecated.js +110 -15
- package/src/quote/edit.js +5 -5
- package/src/quote/save.js +2 -2
- package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
- package/src/read-more/edit.js +1 -1
- package/src/search/edit.js +1 -1
- package/src/search/edit.native.js +4 -4
- package/src/search/index.php +1 -1
- package/src/search/style.scss +2 -0
- package/src/site-logo/edit.js +11 -6
- package/src/social-link/edit.js +1 -1
- package/src/social-links/edit.native.js +1 -1
- package/src/spacer/edit.js +1 -1
- package/src/table-of-contents/edit.js +1 -1
- package/src/template-part/edit/index.js +91 -4
- package/src/template-part/edit/selection-modal.js +4 -8
- package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
- package/src/utils/caption.js +10 -1
- package/src/utils/get-transformed-metadata.js +65 -0
- package/src/utils/hooks.js +53 -3
- package/src/video/edit-common-settings.js +1 -1
- package/src/video/edit.js +10 -18
- package/src/video/edit.native.js +5 -8
- package/src/video/test/edit.native.js +0 -14
- package/build/list-item/hooks/use-copy.js +0 -39
- package/build/list-item/hooks/use-copy.js.map +0 -1
- package/build/site-title/edit/index.js.map +0 -1
- package/build-module/list-item/hooks/use-copy.js +0 -32
- package/build-module/list-item/hooks/use-copy.js.map +0 -1
- package/build-module/site-title/edit/index.js.map +0 -1
- package/src/list-item/hooks/use-copy.js +0 -38
- /package/src/site-title/{edit/index.js → edit.js} +0 -0
package/src/quote/deprecated.js
CHANGED
|
@@ -7,7 +7,7 @@ import classnames from 'classnames';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { createBlock, parseWithAttributeSchema } from '@wordpress/blocks';
|
|
10
|
-
import { RichText, useBlockProps } from '@wordpress/block-editor';
|
|
10
|
+
import { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';
|
|
11
11
|
|
|
12
12
|
export const migrateToQuoteV2 = ( attributes ) => {
|
|
13
13
|
const { value, ...restAttributes } = attributes;
|
|
@@ -34,6 +34,102 @@ export const migrateToQuoteV2 = ( attributes ) => {
|
|
|
34
34
|
];
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
+
const TEXT_ALIGN_OPTIONS = [ 'left', 'right', 'center' ];
|
|
38
|
+
|
|
39
|
+
// Migrate existing text alignment settings to the renamed attribute.
|
|
40
|
+
const migrateTextAlign = ( attributes, innerBlocks ) => {
|
|
41
|
+
const { align, ...rest } = attributes;
|
|
42
|
+
// Check if there are valid alignments stored in the old attribute
|
|
43
|
+
// and assign them to the new attribute name.
|
|
44
|
+
const migratedAttributes = TEXT_ALIGN_OPTIONS.includes( align )
|
|
45
|
+
? { ...rest, textAlign: align }
|
|
46
|
+
: attributes;
|
|
47
|
+
|
|
48
|
+
return [ migratedAttributes, innerBlocks ];
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Migrate the v2 blocks with style === `2`;
|
|
52
|
+
const migrateLargeStyle = ( attributes, innerBlocks ) => {
|
|
53
|
+
return [
|
|
54
|
+
{
|
|
55
|
+
...attributes,
|
|
56
|
+
className: attributes.className
|
|
57
|
+
? attributes.className + ' is-style-large'
|
|
58
|
+
: 'is-style-large',
|
|
59
|
+
},
|
|
60
|
+
innerBlocks,
|
|
61
|
+
];
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Version before the 'align' attribute was replaced with 'textAlign'.
|
|
65
|
+
const v4 = {
|
|
66
|
+
attributes: {
|
|
67
|
+
value: {
|
|
68
|
+
type: 'string',
|
|
69
|
+
source: 'html',
|
|
70
|
+
selector: 'blockquote',
|
|
71
|
+
multiline: 'p',
|
|
72
|
+
default: '',
|
|
73
|
+
__experimentalRole: 'content',
|
|
74
|
+
},
|
|
75
|
+
citation: {
|
|
76
|
+
type: 'string',
|
|
77
|
+
source: 'html',
|
|
78
|
+
selector: 'cite',
|
|
79
|
+
default: '',
|
|
80
|
+
__experimentalRole: 'content',
|
|
81
|
+
},
|
|
82
|
+
align: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
supports: {
|
|
87
|
+
anchor: true,
|
|
88
|
+
html: false,
|
|
89
|
+
__experimentalOnEnter: true,
|
|
90
|
+
__experimentalOnMerge: true,
|
|
91
|
+
typography: {
|
|
92
|
+
fontSize: true,
|
|
93
|
+
lineHeight: true,
|
|
94
|
+
__experimentalFontFamily: true,
|
|
95
|
+
__experimentalFontWeight: true,
|
|
96
|
+
__experimentalFontStyle: true,
|
|
97
|
+
__experimentalTextTransform: true,
|
|
98
|
+
__experimentalTextDecoration: true,
|
|
99
|
+
__experimentalLetterSpacing: true,
|
|
100
|
+
__experimentalDefaultControls: {
|
|
101
|
+
fontSize: true,
|
|
102
|
+
fontAppearance: true,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
color: {
|
|
106
|
+
gradients: true,
|
|
107
|
+
heading: true,
|
|
108
|
+
link: true,
|
|
109
|
+
__experimentalDefaultControls: {
|
|
110
|
+
background: true,
|
|
111
|
+
text: true,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
isEligible: ( { align } ) => TEXT_ALIGN_OPTIONS.includes( align ),
|
|
116
|
+
save( { attributes } ) {
|
|
117
|
+
const { align, citation } = attributes;
|
|
118
|
+
const className = classnames( {
|
|
119
|
+
[ `has-text-align-${ align }` ]: align,
|
|
120
|
+
} );
|
|
121
|
+
return (
|
|
122
|
+
<blockquote { ...useBlockProps.save( { className } ) }>
|
|
123
|
+
<InnerBlocks.Content />
|
|
124
|
+
{ ! RichText.isEmpty( citation ) && (
|
|
125
|
+
<RichText.Content tagName="cite" value={ citation } />
|
|
126
|
+
) }
|
|
127
|
+
</blockquote>
|
|
128
|
+
);
|
|
129
|
+
},
|
|
130
|
+
migrate: migrateTextAlign,
|
|
131
|
+
};
|
|
132
|
+
|
|
37
133
|
const v3 = {
|
|
38
134
|
attributes: {
|
|
39
135
|
value: {
|
|
@@ -87,7 +183,9 @@ const v3 = {
|
|
|
87
183
|
</blockquote>
|
|
88
184
|
);
|
|
89
185
|
},
|
|
90
|
-
migrate
|
|
186
|
+
migrate( attributes ) {
|
|
187
|
+
return migrateTextAlign( ...migrateToQuoteV2( attributes ) );
|
|
188
|
+
},
|
|
91
189
|
};
|
|
92
190
|
|
|
93
191
|
const v2 = {
|
|
@@ -109,7 +207,9 @@ const v2 = {
|
|
|
109
207
|
type: 'string',
|
|
110
208
|
},
|
|
111
209
|
},
|
|
112
|
-
migrate
|
|
210
|
+
migrate( attributes ) {
|
|
211
|
+
return migrateTextAlign( ...migrateToQuoteV2( attributes ) );
|
|
212
|
+
},
|
|
113
213
|
save( { attributes } ) {
|
|
114
214
|
const { align, value, citation } = attributes;
|
|
115
215
|
|
|
@@ -151,15 +251,12 @@ const v1 = {
|
|
|
151
251
|
migrate( attributes ) {
|
|
152
252
|
if ( attributes.style === 2 ) {
|
|
153
253
|
const { style, ...restAttributes } = attributes;
|
|
154
|
-
return
|
|
155
|
-
...restAttributes
|
|
156
|
-
|
|
157
|
-
? attributes.className + ' is-style-large'
|
|
158
|
-
: 'is-style-large',
|
|
159
|
-
} );
|
|
254
|
+
return migrateTextAlign(
|
|
255
|
+
...migrateLargeStyle( ...migrateToQuoteV2( restAttributes ) )
|
|
256
|
+
);
|
|
160
257
|
}
|
|
161
258
|
|
|
162
|
-
return migrateToQuoteV2( attributes );
|
|
259
|
+
return migrateTextAlign( ...migrateToQuoteV2( attributes ) );
|
|
163
260
|
},
|
|
164
261
|
|
|
165
262
|
save( { attributes } ) {
|
|
@@ -206,12 +303,10 @@ const v0 = {
|
|
|
206
303
|
migrate( attributes ) {
|
|
207
304
|
if ( ! isNaN( parseInt( attributes.style ) ) ) {
|
|
208
305
|
const { style, ...restAttributes } = attributes;
|
|
209
|
-
return migrateToQuoteV2(
|
|
210
|
-
...restAttributes,
|
|
211
|
-
} );
|
|
306
|
+
return migrateTextAlign( ...migrateToQuoteV2( restAttributes ) );
|
|
212
307
|
}
|
|
213
308
|
|
|
214
|
-
return migrateToQuoteV2( attributes );
|
|
309
|
+
return migrateTextAlign( ...migrateToQuoteV2( attributes ) );
|
|
215
310
|
},
|
|
216
311
|
|
|
217
312
|
save( { attributes } ) {
|
|
@@ -239,4 +334,4 @@ const v0 = {
|
|
|
239
334
|
*
|
|
240
335
|
* See block-deprecation.md
|
|
241
336
|
*/
|
|
242
|
-
export default [ v3, v2, v1, v0 ];
|
|
337
|
+
export default [ v4, v3, v2, v1, v0 ];
|
package/src/quote/edit.js
CHANGED
|
@@ -74,7 +74,7 @@ export default function QuoteEdit( {
|
|
|
74
74
|
className,
|
|
75
75
|
style,
|
|
76
76
|
} ) {
|
|
77
|
-
const {
|
|
77
|
+
const { textAlign, citation } = attributes;
|
|
78
78
|
|
|
79
79
|
useMigrateOnLoad( attributes, clientId );
|
|
80
80
|
|
|
@@ -86,7 +86,7 @@ export default function QuoteEdit( {
|
|
|
86
86
|
|
|
87
87
|
const blockProps = useBlockProps( {
|
|
88
88
|
className: classNames( className, {
|
|
89
|
-
[ `has-text-align-${
|
|
89
|
+
[ `has-text-align-${ textAlign }` ]: textAlign,
|
|
90
90
|
} ),
|
|
91
91
|
...( ! isWebPlatform && { style } ),
|
|
92
92
|
} );
|
|
@@ -100,9 +100,9 @@ export default function QuoteEdit( {
|
|
|
100
100
|
<>
|
|
101
101
|
<BlockControls group="block">
|
|
102
102
|
<AlignmentControl
|
|
103
|
-
value={
|
|
103
|
+
value={ textAlign }
|
|
104
104
|
onChange={ ( nextAlign ) => {
|
|
105
|
-
setAttributes( {
|
|
105
|
+
setAttributes( { textAlign: nextAlign } );
|
|
106
106
|
} }
|
|
107
107
|
/>
|
|
108
108
|
</BlockControls>
|
|
@@ -132,7 +132,7 @@ export default function QuoteEdit( {
|
|
|
132
132
|
createBlock( getDefaultBlockName() )
|
|
133
133
|
)
|
|
134
134
|
}
|
|
135
|
-
{ ...( ! isWebPlatform ? { textAlign
|
|
135
|
+
{ ...( ! isWebPlatform ? { textAlign } : {} ) }
|
|
136
136
|
/>
|
|
137
137
|
) }
|
|
138
138
|
</BlockQuotation>
|
package/src/quote/save.js
CHANGED
|
@@ -9,10 +9,10 @@ import classNames from 'classnames';
|
|
|
9
9
|
import { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';
|
|
10
10
|
|
|
11
11
|
export default function save( { attributes } ) {
|
|
12
|
-
const {
|
|
12
|
+
const { textAlign, citation } = attributes;
|
|
13
13
|
|
|
14
14
|
const className = classNames( {
|
|
15
|
-
[ `has-text-align-${
|
|
15
|
+
[ `has-text-align-${ textAlign }` ]: textAlign,
|
|
16
16
|
} );
|
|
17
17
|
|
|
18
18
|
return (
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports[`Quote block transforms to Columns block 1`] = `
|
|
4
4
|
"<!-- wp:columns -->
|
|
5
5
|
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
-
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:quote {"
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:quote {"textAlign":"left","className":"is-style-large"} -->
|
|
7
7
|
<blockquote class="wp-block-quote has-text-align-left is-style-large"><!-- wp:paragraph -->
|
|
8
8
|
<p>"This will make running your own blog a viable alternative again."</p>
|
|
9
9
|
<!-- /wp:paragraph --><cite>— <a href="https://twitter.com/azumbrunnen_/status/1019347243084800005">Adrian Zumbrunnen</a></cite></blockquote>
|
|
@@ -14,7 +14,7 @@ exports[`Quote block transforms to Columns block 1`] = `
|
|
|
14
14
|
|
|
15
15
|
exports[`Quote block transforms to Group block 1`] = `
|
|
16
16
|
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
17
|
-
<div class="wp-block-group"><!-- wp:quote {"
|
|
17
|
+
<div class="wp-block-group"><!-- wp:quote {"textAlign":"left","className":"is-style-large"} -->
|
|
18
18
|
<blockquote class="wp-block-quote has-text-align-left is-style-large"><!-- wp:paragraph -->
|
|
19
19
|
<p>"This will make running your own blog a viable alternative again."</p>
|
|
20
20
|
<!-- /wp:paragraph --><cite>— <a href="https://twitter.com/azumbrunnen_/status/1019347243084800005">Adrian Zumbrunnen</a></cite></blockquote>
|
package/src/read-more/edit.js
CHANGED
package/src/search/edit.js
CHANGED
|
@@ -400,7 +400,7 @@ export default function SearchEdit( {
|
|
|
400
400
|
</BlockControls>
|
|
401
401
|
|
|
402
402
|
<InspectorControls>
|
|
403
|
-
<PanelBody title={ __( '
|
|
403
|
+
<PanelBody title={ __( 'Settings' ) }>
|
|
404
404
|
<BaseControl
|
|
405
405
|
label={ __( 'Width' ) }
|
|
406
406
|
id={ unitControlInputId }
|
|
@@ -192,7 +192,7 @@ export default function SearchEdit( {
|
|
|
192
192
|
} );
|
|
193
193
|
} }
|
|
194
194
|
options={ BUTTON_OPTIONS }
|
|
195
|
-
hideCancelButton
|
|
195
|
+
hideCancelButton
|
|
196
196
|
/>
|
|
197
197
|
{ buttonPosition !== 'no-button' && (
|
|
198
198
|
<ToggleControl
|
|
@@ -294,7 +294,7 @@ export default function SearchEdit( {
|
|
|
294
294
|
return (
|
|
295
295
|
<View
|
|
296
296
|
style={ styles.searchInputContainer }
|
|
297
|
-
accessible
|
|
297
|
+
accessible
|
|
298
298
|
accessibilityRole="none"
|
|
299
299
|
accessibilityHint={
|
|
300
300
|
isScreenReaderEnabled
|
|
@@ -383,7 +383,7 @@ export default function SearchEdit( {
|
|
|
383
383
|
|
|
384
384
|
{ ! buttonUseIcon && (
|
|
385
385
|
<View
|
|
386
|
-
accessible
|
|
386
|
+
accessible
|
|
387
387
|
accessibilityRole="none"
|
|
388
388
|
accessibilityHint={
|
|
389
389
|
isScreenReaderEnabled
|
|
@@ -438,7 +438,7 @@ export default function SearchEdit( {
|
|
|
438
438
|
|
|
439
439
|
{ showLabel && (
|
|
440
440
|
<View
|
|
441
|
-
accessible
|
|
441
|
+
accessible
|
|
442
442
|
accessibilityRole="none"
|
|
443
443
|
accessibilityHint={
|
|
444
444
|
isScreenReaderEnabled
|
package/src/search/index.php
CHANGED
|
@@ -179,7 +179,7 @@ function render_block_core_search( $attributes ) {
|
|
|
179
179
|
if ( $is_expandable_searchfield ) {
|
|
180
180
|
$aria_label_expanded = __( 'Submit Search' );
|
|
181
181
|
$aria_label_collapsed = __( 'Expand search field' );
|
|
182
|
-
$form_context =
|
|
182
|
+
$form_context = wp_interactivity_data_wp_context(
|
|
183
183
|
array(
|
|
184
184
|
'isSearchInputVisible' => $open_by_default,
|
|
185
185
|
'inputId' => $input_id,
|
package/src/search/style.scss
CHANGED
package/src/site-logo/edit.js
CHANGED
|
@@ -268,6 +268,14 @@ const SiteLogo = ( {
|
|
|
268
268
|
</ResizableBox>
|
|
269
269
|
);
|
|
270
270
|
|
|
271
|
+
// Support the previous location for the Site Icon settings. To be removed
|
|
272
|
+
// when the required WP core version for Gutenberg is >= 6.5.0.
|
|
273
|
+
const shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;
|
|
274
|
+
|
|
275
|
+
const siteIconSettingsUrl = shouldUseNewUrl
|
|
276
|
+
? siteUrl + '/wp-admin/options-general.php'
|
|
277
|
+
: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';
|
|
278
|
+
|
|
271
279
|
const syncSiteIconHelpText = createInterpolateElement(
|
|
272
280
|
__(
|
|
273
281
|
'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'
|
|
@@ -276,10 +284,7 @@ const SiteLogo = ( {
|
|
|
276
284
|
a: (
|
|
277
285
|
// eslint-disable-next-line jsx-a11y/anchor-has-content
|
|
278
286
|
<a
|
|
279
|
-
href={
|
|
280
|
-
siteUrl +
|
|
281
|
-
'/wp-admin/customize.php?autofocus[section]=title_tagline'
|
|
282
|
-
}
|
|
287
|
+
href={ siteIconSettingsUrl }
|
|
283
288
|
target="_blank"
|
|
284
289
|
rel="noopener noreferrer"
|
|
285
290
|
/>
|
|
@@ -331,7 +336,7 @@ const SiteLogo = ( {
|
|
|
331
336
|
<>
|
|
332
337
|
<ToggleControl
|
|
333
338
|
__nextHasNoMarginBottom
|
|
334
|
-
label={ __( 'Use as
|
|
339
|
+
label={ __( 'Use as Site Icon' ) }
|
|
335
340
|
onChange={ ( value ) => {
|
|
336
341
|
setAttributes( { shouldSyncIcon: value } );
|
|
337
342
|
setIcon( value ? logoId : undefined );
|
|
@@ -569,7 +574,7 @@ export default function LogoEdit( {
|
|
|
569
574
|
<Placeholder
|
|
570
575
|
className={ placeholderClassName }
|
|
571
576
|
preview={ logoImage }
|
|
572
|
-
withIllustration
|
|
577
|
+
withIllustration
|
|
573
578
|
style={ {
|
|
574
579
|
width,
|
|
575
580
|
} }
|
package/src/social-link/edit.js
CHANGED
|
@@ -53,7 +53,7 @@ function SocialLinksEdit( {
|
|
|
53
53
|
|
|
54
54
|
const renderFooterAppender = useRef( () => (
|
|
55
55
|
<View style={ styles.footerAppenderContainer }>
|
|
56
|
-
<InnerBlocks.ButtonBlockAppender isFloating
|
|
56
|
+
<InnerBlocks.ButtonBlockAppender isFloating />
|
|
57
57
|
</View>
|
|
58
58
|
) );
|
|
59
59
|
|
package/src/spacer/edit.js
CHANGED
|
@@ -67,7 +67,7 @@ const ResizableSpacer = ( {
|
|
|
67
67
|
onResizeStop( `${ nextVal }px` );
|
|
68
68
|
setIsResizing( false );
|
|
69
69
|
} }
|
|
70
|
-
__experimentalShowTooltip
|
|
70
|
+
__experimentalShowTooltip
|
|
71
71
|
__experimentalTooltipProps={ {
|
|
72
72
|
axis: orientation === 'horizontal' ? 'x' : 'y',
|
|
73
73
|
position: 'corner',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useSelect } from '@wordpress/data';
|
|
4
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
5
|
import {
|
|
6
6
|
BlockSettingsMenuControls,
|
|
7
7
|
useBlockProps,
|
|
@@ -10,11 +10,14 @@ import {
|
|
|
10
10
|
RecursionProvider,
|
|
11
11
|
useHasRecursion,
|
|
12
12
|
InspectorControls,
|
|
13
|
+
__experimentalBlockPatternsList as BlockPatternsList,
|
|
13
14
|
} from '@wordpress/block-editor';
|
|
14
|
-
import { Spinner, Modal, MenuItem } from '@wordpress/components';
|
|
15
|
+
import { PanelBody, Spinner, Modal, MenuItem } from '@wordpress/components';
|
|
16
|
+
import { useAsyncList } from '@wordpress/compose';
|
|
15
17
|
import { __, sprintf } from '@wordpress/i18n';
|
|
16
18
|
import { store as coreStore } from '@wordpress/core-data';
|
|
17
19
|
import { useState } from '@wordpress/element';
|
|
20
|
+
import { store as noticesStore } from '@wordpress/notices';
|
|
18
21
|
|
|
19
22
|
/**
|
|
20
23
|
* Internal dependencies
|
|
@@ -24,10 +27,12 @@ import TemplatePartSelectionModal from './selection-modal';
|
|
|
24
27
|
import { TemplatePartAdvancedControls } from './advanced-controls';
|
|
25
28
|
import TemplatePartInnerBlocks from './inner-blocks';
|
|
26
29
|
import { createTemplatePartId } from './utils/create-template-part-id';
|
|
30
|
+
import { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';
|
|
27
31
|
import {
|
|
28
32
|
useAlternativeBlockPatterns,
|
|
29
33
|
useAlternativeTemplateParts,
|
|
30
34
|
useTemplatePartArea,
|
|
35
|
+
useCreateTemplatePartFromBlocks,
|
|
31
36
|
} from './utils/hooks';
|
|
32
37
|
|
|
33
38
|
function ReplaceButton( {
|
|
@@ -43,7 +48,6 @@ function ReplaceButton( {
|
|
|
43
48
|
templatePartId
|
|
44
49
|
);
|
|
45
50
|
const blockPatterns = useAlternativeBlockPatterns( area, clientId );
|
|
46
|
-
|
|
47
51
|
const hasReplacements = !! templateParts.length || !! blockPatterns.length;
|
|
48
52
|
const canReplace =
|
|
49
53
|
isEntityAvailable &&
|
|
@@ -67,11 +71,29 @@ function ReplaceButton( {
|
|
|
67
71
|
);
|
|
68
72
|
}
|
|
69
73
|
|
|
74
|
+
function TemplatesList( { availableTemplates, onSelect } ) {
|
|
75
|
+
const shownTemplates = useAsyncList( availableTemplates );
|
|
76
|
+
|
|
77
|
+
if ( ! availableTemplates ) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<BlockPatternsList
|
|
83
|
+
label={ __( 'Templates' ) }
|
|
84
|
+
blockPatterns={ availableTemplates }
|
|
85
|
+
shownPatterns={ shownTemplates }
|
|
86
|
+
onClickPattern={ onSelect }
|
|
87
|
+
/>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
70
91
|
export default function TemplatePartEdit( {
|
|
71
92
|
attributes,
|
|
72
93
|
setAttributes,
|
|
73
94
|
clientId,
|
|
74
95
|
} ) {
|
|
96
|
+
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
75
97
|
const currentTheme = useSelect(
|
|
76
98
|
( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,
|
|
77
99
|
[]
|
|
@@ -117,12 +139,28 @@ export default function TemplatePartEdit( {
|
|
|
117
139
|
[ templatePartId, attributes.area, clientId ]
|
|
118
140
|
);
|
|
119
141
|
|
|
142
|
+
const { templateParts } = useAlternativeTemplateParts(
|
|
143
|
+
area,
|
|
144
|
+
templatePartId
|
|
145
|
+
);
|
|
146
|
+
const blockPatterns = useAlternativeBlockPatterns( area, clientId );
|
|
147
|
+
const hasReplacements = !! templateParts.length || !! blockPatterns.length;
|
|
120
148
|
const areaObject = useTemplatePartArea( area );
|
|
121
149
|
const blockProps = useBlockProps();
|
|
122
150
|
const isPlaceholder = ! slug;
|
|
123
151
|
const isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;
|
|
124
152
|
const TagName = tagName || areaObject.tagName;
|
|
125
153
|
|
|
154
|
+
const canReplace =
|
|
155
|
+
isEntityAvailable &&
|
|
156
|
+
hasReplacements &&
|
|
157
|
+
( area === 'header' || area === 'footer' );
|
|
158
|
+
|
|
159
|
+
const createFromBlocks = useCreateTemplatePartFromBlocks(
|
|
160
|
+
area,
|
|
161
|
+
setAttributes
|
|
162
|
+
);
|
|
163
|
+
|
|
126
164
|
// We don't want to render a missing state if we have any inner blocks.
|
|
127
165
|
// A new template part is automatically created if we have any inner blocks but no entity.
|
|
128
166
|
if (
|
|
@@ -154,6 +192,28 @@ export default function TemplatePartEdit( {
|
|
|
154
192
|
);
|
|
155
193
|
}
|
|
156
194
|
|
|
195
|
+
const partsAsPatterns = templateParts.map( ( templatePart ) =>
|
|
196
|
+
mapTemplatePartToBlockPattern( templatePart )
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
const onTemplatePartSelect = ( templatePart ) => {
|
|
200
|
+
setAttributes( {
|
|
201
|
+
slug: templatePart.slug,
|
|
202
|
+
theme: templatePart.theme,
|
|
203
|
+
area: undefined,
|
|
204
|
+
} );
|
|
205
|
+
createSuccessNotice(
|
|
206
|
+
sprintf(
|
|
207
|
+
/* translators: %s: template part title. */
|
|
208
|
+
__( 'Template Part "%s" replaceed.' ),
|
|
209
|
+
templatePart.title?.rendered || templatePart.slug
|
|
210
|
+
),
|
|
211
|
+
{
|
|
212
|
+
type: 'snackbar',
|
|
213
|
+
}
|
|
214
|
+
);
|
|
215
|
+
};
|
|
216
|
+
|
|
157
217
|
return (
|
|
158
218
|
<>
|
|
159
219
|
<RecursionProvider uniqueId={ templatePartId }>
|
|
@@ -207,6 +267,33 @@ export default function TemplatePartEdit( {
|
|
|
207
267
|
);
|
|
208
268
|
} }
|
|
209
269
|
</BlockSettingsMenuControls>
|
|
270
|
+
|
|
271
|
+
{ canReplace &&
|
|
272
|
+
( partsAsPatterns.length > 0 ||
|
|
273
|
+
blockPatterns.length > 0 ) && (
|
|
274
|
+
<InspectorControls>
|
|
275
|
+
<PanelBody title={ __( 'Replace' ) }>
|
|
276
|
+
<TemplatesList
|
|
277
|
+
availableTemplates={ partsAsPatterns }
|
|
278
|
+
onSelect={ ( pattern ) => {
|
|
279
|
+
onTemplatePartSelect(
|
|
280
|
+
pattern.templatePart
|
|
281
|
+
);
|
|
282
|
+
} }
|
|
283
|
+
/>
|
|
284
|
+
<TemplatesList
|
|
285
|
+
availableTemplates={ blockPatterns }
|
|
286
|
+
onSelect={ ( pattern, blocks ) => {
|
|
287
|
+
createFromBlocks(
|
|
288
|
+
blocks,
|
|
289
|
+
pattern.title
|
|
290
|
+
);
|
|
291
|
+
} }
|
|
292
|
+
/>
|
|
293
|
+
</PanelBody>
|
|
294
|
+
</InspectorControls>
|
|
295
|
+
) }
|
|
296
|
+
|
|
210
297
|
{ isEntityAvailable && (
|
|
211
298
|
<TemplatePartInnerBlocks
|
|
212
299
|
tagName={ TagName }
|
|
@@ -233,7 +320,7 @@ export default function TemplatePartEdit( {
|
|
|
233
320
|
onRequestClose={ () =>
|
|
234
321
|
setIsTemplatePartSelectionOpen( false )
|
|
235
322
|
}
|
|
236
|
-
isFullScreen
|
|
323
|
+
isFullScreen
|
|
237
324
|
>
|
|
238
325
|
<TemplatePartSelectionModal
|
|
239
326
|
templatePartId={ templatePartId }
|
|
@@ -5,7 +5,6 @@ import { useMemo, useState } from '@wordpress/element';
|
|
|
5
5
|
import { __, sprintf } from '@wordpress/i18n';
|
|
6
6
|
import { store as noticesStore } from '@wordpress/notices';
|
|
7
7
|
import { useDispatch } from '@wordpress/data';
|
|
8
|
-
import { parse } from '@wordpress/blocks';
|
|
9
8
|
import { useAsyncList } from '@wordpress/compose';
|
|
10
9
|
import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
|
|
11
10
|
import {
|
|
@@ -21,7 +20,7 @@ import {
|
|
|
21
20
|
useAlternativeTemplateParts,
|
|
22
21
|
useCreateTemplatePartFromBlocks,
|
|
23
22
|
} from './utils/hooks';
|
|
24
|
-
import {
|
|
23
|
+
import { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';
|
|
25
24
|
import { searchPatterns } from '../../utils/search-patterns';
|
|
26
25
|
|
|
27
26
|
export default function TemplatePartSelectionModal( {
|
|
@@ -39,12 +38,9 @@ export default function TemplatePartSelectionModal( {
|
|
|
39
38
|
);
|
|
40
39
|
// We can map template parts to block patters to reuse the BlockPatternsList UI
|
|
41
40
|
const filteredTemplateParts = useMemo( () => {
|
|
42
|
-
const partsAsPatterns = templateParts.map( ( templatePart ) =>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
blocks: parse( templatePart.content.raw ),
|
|
46
|
-
templatePart,
|
|
47
|
-
} ) );
|
|
41
|
+
const partsAsPatterns = templateParts.map( ( templatePart ) =>
|
|
42
|
+
mapTemplatePartToBlockPattern( templatePart )
|
|
43
|
+
);
|
|
48
44
|
|
|
49
45
|
return searchPatterns( partsAsPatterns, searchValue );
|
|
50
46
|
}, [ templateParts, searchValue ] );
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { parse } from '@wordpress/blocks';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { createTemplatePartId } from './create-template-part-id';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* This maps the properties of a template part to those of a block pattern.
|
|
13
|
+
* @param {Object} templatePart
|
|
14
|
+
* @return {Object} The template part in the shape of block pattern.
|
|
15
|
+
*/
|
|
16
|
+
export function mapTemplatePartToBlockPattern( templatePart ) {
|
|
17
|
+
return {
|
|
18
|
+
name: createTemplatePartId( templatePart.theme, templatePart.slug ),
|
|
19
|
+
title: templatePart.title.rendered,
|
|
20
|
+
blocks: parse( templatePart.content.raw ),
|
|
21
|
+
templatePart,
|
|
22
|
+
};
|
|
23
|
+
}
|
package/src/utils/caption.js
CHANGED
|
@@ -10,14 +10,21 @@ import { useState, useEffect, useCallback } from '@wordpress/element';
|
|
|
10
10
|
import { usePrevious } from '@wordpress/compose';
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
12
|
import {
|
|
13
|
-
RichText,
|
|
14
13
|
BlockControls,
|
|
15
14
|
__experimentalGetElementClassName,
|
|
15
|
+
privateApis as blockEditorPrivateApis,
|
|
16
16
|
} from '@wordpress/block-editor';
|
|
17
17
|
import { ToolbarButton } from '@wordpress/components';
|
|
18
18
|
import { caption as captionIcon } from '@wordpress/icons';
|
|
19
19
|
import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies
|
|
23
|
+
*/
|
|
24
|
+
import { unlock } from '../lock-unlock';
|
|
25
|
+
|
|
26
|
+
const { PrivateRichText: RichText } = unlock( blockEditorPrivateApis );
|
|
27
|
+
|
|
21
28
|
export function Caption( {
|
|
22
29
|
key = 'caption',
|
|
23
30
|
attributes,
|
|
@@ -28,6 +35,7 @@ export function Caption( {
|
|
|
28
35
|
label = __( 'Caption text' ),
|
|
29
36
|
showToolbarButton = true,
|
|
30
37
|
className,
|
|
38
|
+
disableEditing,
|
|
31
39
|
} ) {
|
|
32
40
|
const caption = attributes[ key ];
|
|
33
41
|
const prevCaption = usePrevious( caption );
|
|
@@ -101,6 +109,7 @@ export function Caption( {
|
|
|
101
109
|
createBlock( getDefaultBlockName() )
|
|
102
110
|
)
|
|
103
111
|
}
|
|
112
|
+
disableEditing={ disableEditing }
|
|
104
113
|
/>
|
|
105
114
|
) }
|
|
106
115
|
</>
|