diff --git a/packages/block-editor/src/hooks/anchor.js b/packages/block-editor/src/hooks/anchor.js index 9bff8e8e313aa7..a5e5bcc9febf66 100644 --- a/packages/block-editor/src/hooks/anchor.js +++ b/packages/block-editor/src/hooks/anchor.js @@ -99,6 +99,7 @@ export const withInspectorControl = createHigherOrderComponent( anchor: nextValue, } ); } } + autoComplete="off" /> diff --git a/packages/block-library/src/audio/block.json b/packages/block-library/src/audio/block.json index 31c6c8f9efd8b9..30b165e51cfa0c 100644 --- a/packages/block-library/src/audio/block.json +++ b/packages/block-library/src/audio/block.json @@ -36,6 +36,7 @@ } }, "supports": { + "anchor": true, "align": true, "lightBlockWrapper": true } diff --git a/packages/block-library/src/button/block.json b/packages/block-library/src/button/block.json index b2af0f5a4c4c15..4e44f9d8769eea 100644 --- a/packages/block-library/src/button/block.json +++ b/packages/block-library/src/button/block.json @@ -54,6 +54,7 @@ } }, "supports": { + "anchor": true, "align": true, "alignWide": false, "reusable": false, diff --git a/packages/block-library/src/buttons/block.json b/packages/block-library/src/buttons/block.json index 4004a9591a99e6..ce5c22427a8bfc 100644 --- a/packages/block-library/src/buttons/block.json +++ b/packages/block-library/src/buttons/block.json @@ -2,6 +2,7 @@ "name": "core/buttons", "category": "design", "supports": { + "anchor": true, "align": true, "alignWide": false, "lightBlockWrapper": true diff --git a/packages/block-library/src/code/block.json b/packages/block-library/src/code/block.json index d7cab6cf3424be..231f44cb30ce63 100644 --- a/packages/block-library/src/code/block.json +++ b/packages/block-library/src/code/block.json @@ -9,6 +9,7 @@ } }, "supports": { + "anchor": true, "html": false, "lightBlockWrapper": true } diff --git a/packages/block-library/src/column/block.json b/packages/block-library/src/column/block.json index 328dbb6201e6a1..bc8d16aa9601c2 100644 --- a/packages/block-library/src/column/block.json +++ b/packages/block-library/src/column/block.json @@ -15,6 +15,7 @@ } }, "supports": { + "anchor": true, "reusable": false, "html": false, "lightBlockWrapper": true diff --git a/packages/block-library/src/columns/block.json b/packages/block-library/src/columns/block.json index 352b1e5caaaa48..0a84a4a35d7812 100644 --- a/packages/block-library/src/columns/block.json +++ b/packages/block-library/src/columns/block.json @@ -7,6 +7,7 @@ } }, "supports": { + "anchor": true, "align": [ "wide", "full" diff --git a/packages/block-library/src/cover/block.json b/packages/block-library/src/cover/block.json index d3923b8d86e095..922e7cff034c6c 100644 --- a/packages/block-library/src/cover/block.json +++ b/packages/block-library/src/cover/block.json @@ -46,6 +46,7 @@ } }, "supports": { + "anchor": true, "align": true, "html": false, "lightBlockWrapper": true, diff --git a/packages/block-library/src/cover/transforms.js b/packages/block-library/src/cover/transforms.js index 799cb7a730ae9b..57de4c49acc880 100644 --- a/packages/block-library/src/cover/transforms.js +++ b/packages/block-library/src/cover/transforms.js @@ -13,24 +13,26 @@ const transforms = { { type: 'block', blocks: [ 'core/image' ], - transform: ( { caption, url, align, id } ) => + transform: ( { caption, url, align, id, anchor } ) => createBlock( 'core/cover', { title: caption, url, align, id, + anchor, } ), }, { type: 'block', blocks: [ 'core/video' ], - transform: ( { caption, src, align, id } ) => + transform: ( { caption, src, align, id, anchor } ) => createBlock( 'core/cover', { title: caption, url: src, align, id, backgroundType: VIDEO_BACKGROUND_TYPE, + anchor, } ), }, ], @@ -58,12 +60,13 @@ const transforms = { ! customGradient ); }, - transform: ( { title, url, align, id } ) => + transform: ( { title, url, align, id, anchor } ) => createBlock( 'core/image', { caption: title, url, align, id, + anchor, } ), }, { @@ -89,12 +92,13 @@ const transforms = { ! customGradient ); }, - transform: ( { title, url, align, id } ) => + transform: ( { title, url, align, id, anchor } ) => createBlock( 'core/video', { caption: title, src: url, id, align, + anchor, } ), }, ], diff --git a/packages/block-library/src/file/block.json b/packages/block-library/src/file/block.json index 664ec1154a4d00..c19ba5f7143007 100644 --- a/packages/block-library/src/file/block.json +++ b/packages/block-library/src/file/block.json @@ -36,6 +36,7 @@ } }, "supports": { + "anchor": true, "align": true } } diff --git a/packages/block-library/src/file/transforms.js b/packages/block-library/src/file/transforms.js index e48d5cffedbe0e..ca0263a4492854 100644 --- a/packages/block-library/src/file/transforms.js +++ b/packages/block-library/src/file/transforms.js @@ -48,6 +48,7 @@ const transforms = { fileName: attributes.caption, textLinkHref: attributes.src, id: attributes.id, + anchor: attributes.anchor, } ); }, }, @@ -60,6 +61,7 @@ const transforms = { fileName: attributes.caption, textLinkHref: attributes.src, id: attributes.id, + anchor: attributes.anchor, } ); }, }, @@ -72,6 +74,7 @@ const transforms = { fileName: attributes.caption, textLinkHref: attributes.url, id: attributes.id, + anchor: attributes.anchor, } ); }, }, @@ -93,6 +96,7 @@ const transforms = { src: attributes.href, caption: attributes.fileName, id: attributes.id, + anchor: attributes.anchor, } ); }, }, @@ -112,6 +116,7 @@ const transforms = { src: attributes.href, caption: attributes.fileName, id: attributes.id, + anchor: attributes.anchor, } ); }, }, @@ -131,6 +136,7 @@ const transforms = { url: attributes.href, caption: attributes.fileName, id: attributes.id, + anchor: attributes.anchor, } ); }, }, diff --git a/packages/block-library/src/gallery/block.json b/packages/block-library/src/gallery/block.json index c16a21e734f2c7..dadb8f562c9206 100644 --- a/packages/block-library/src/gallery/block.json +++ b/packages/block-library/src/gallery/block.json @@ -77,6 +77,7 @@ } }, "supports": { + "anchor": true, "align": true } } diff --git a/packages/block-library/src/heading/transforms.js b/packages/block-library/src/heading/transforms.js index 6c08ca29d919ee..16728bcd2fba32 100644 --- a/packages/block-library/src/heading/transforms.js +++ b/packages/block-library/src/heading/transforms.js @@ -14,9 +14,10 @@ const transforms = { { type: 'block', blocks: [ 'core/paragraph' ], - transform: ( { content } ) => { + transform: ( { content, anchor } ) => { return createBlock( name, { content, + anchor, } ); }, }, @@ -26,7 +27,7 @@ const transforms = { schema: ( { phrasingContentSchema, isPaste } ) => { const schema = { children: phrasingContentSchema, - attributes: isPaste ? [] : [ 'style' ], + attributes: isPaste ? [] : [ 'style', 'id' ], }; return { h1: schema, @@ -69,9 +70,10 @@ const transforms = { { type: 'block', blocks: [ 'core/paragraph' ], - transform: ( { content } ) => { + transform: ( { content, anchor } ) => { return createBlock( 'core/paragraph', { content, + anchor, } ); }, }, diff --git a/packages/block-library/src/image/block.json b/packages/block-library/src/image/block.json index d403ec3827f81a..decd621688cea1 100644 --- a/packages/block-library/src/image/block.json +++ b/packages/block-library/src/image/block.json @@ -71,6 +71,7 @@ } }, "supports": { + "anchor": true, "lightBlockWrapper": true } } diff --git a/packages/block-library/src/image/transforms.js b/packages/block-library/src/image/transforms.js index f2cf8e61ba6634..80750e8601bf5f 100644 --- a/packages/block-library/src/image/transforms.js +++ b/packages/block-library/src/image/transforms.js @@ -85,6 +85,7 @@ const transforms = { const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec( className ); + const anchor = node.id === '' ? undefined : node.id; const align = alignMatches ? alignMatches[ 1 ] : undefined; const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec( className @@ -115,6 +116,7 @@ const transforms = { href, rel, linkClass, + anchor, } ); return createBlock( 'core/image', attributes ); diff --git a/packages/block-library/src/list/block.json b/packages/block-library/src/list/block.json index e195a1b6f4c191..031ce7b628cc83 100644 --- a/packages/block-library/src/list/block.json +++ b/packages/block-library/src/list/block.json @@ -28,6 +28,7 @@ } }, "supports": { + "anchor": true, "className": false, "__unstablePasteTextInline": true, "lightBlockWrapper": true diff --git a/packages/block-library/src/list/transforms.js b/packages/block-library/src/list/transforms.js index 13c2338aa54746..db6b6edf527f76 100644 --- a/packages/block-library/src/list/transforms.js +++ b/packages/block-library/src/list/transforms.js @@ -61,18 +61,20 @@ const transforms = { ), multilineTag: 'li', } ), + anchor: blockAttributes.anchor, } ); }, }, { type: 'block', blocks: [ 'core/quote' ], - transform: ( { value } ) => { + transform: ( { value, anchor } ) => { return createBlock( 'core/list', { values: toHTMLString( { value: create( { html: value, multilineTag: 'p' } ), multilineTag: 'li', } ), + anchor, } ); }, }, @@ -86,6 +88,7 @@ const transforms = { transform( node ) { const attributes = { ordered: node.nodeName === 'OL', + anchor: node.id === '' ? undefined : node.id, }; if ( attributes.ordered ) { @@ -157,7 +160,7 @@ const transforms = { { type: 'block', blocks: [ 'core/quote' ], - transform: ( { values } ) => { + transform: ( { values, anchor } ) => { return createBlock( 'core/quote', { value: toHTMLString( { value: create( { @@ -167,6 +170,7 @@ const transforms = { } ), multilineTag: 'p', } ), + anchor, } ); }, }, diff --git a/packages/block-library/src/media-text/block.json b/packages/block-library/src/media-text/block.json index 91f12cf51b460c..2186fb2c6c93cb 100644 --- a/packages/block-library/src/media-text/block.json +++ b/packages/block-library/src/media-text/block.json @@ -78,6 +78,7 @@ } }, "supports": { + "anchor": true, "align": [ "wide", "full" diff --git a/packages/block-library/src/media-text/transforms.js b/packages/block-library/src/media-text/transforms.js index 9c884ab2181cb7..0851b6d550421d 100644 --- a/packages/block-library/src/media-text/transforms.js +++ b/packages/block-library/src/media-text/transforms.js @@ -8,22 +8,24 @@ const transforms = { { type: 'block', blocks: [ 'core/image' ], - transform: ( { alt, url, id } ) => + transform: ( { alt, url, id, anchor } ) => createBlock( 'core/media-text', { mediaAlt: alt, mediaId: id, mediaUrl: url, mediaType: 'image', + anchor, } ), }, { type: 'block', blocks: [ 'core/video' ], - transform: ( { src, id } ) => + transform: ( { src, id, anchor } ) => createBlock( 'core/media-text', { mediaId: id, mediaUrl: src, mediaType: 'video', + anchor, } ), }, ], @@ -34,11 +36,12 @@ const transforms = { isMatch: ( { mediaType, mediaUrl } ) => { return ! mediaUrl || mediaType === 'image'; }, - transform: ( { mediaAlt, mediaId, mediaUrl } ) => { + transform: ( { mediaAlt, mediaId, mediaUrl, anchor } ) => { return createBlock( 'core/image', { alt: mediaAlt, id: mediaId, url: mediaUrl, + anchor, } ); }, }, @@ -48,10 +51,11 @@ const transforms = { isMatch: ( { mediaType, mediaUrl } ) => { return ! mediaUrl || mediaType === 'video'; }, - transform: ( { mediaId, mediaUrl } ) => { + transform: ( { mediaId, mediaUrl, anchor } ) => { return createBlock( 'core/video', { id: mediaId, src: mediaUrl, + anchor, } ); }, }, diff --git a/packages/block-library/src/paragraph/block.json b/packages/block-library/src/paragraph/block.json index 959fd9294393c8..24df851e88011b 100644 --- a/packages/block-library/src/paragraph/block.json +++ b/packages/block-library/src/paragraph/block.json @@ -27,6 +27,7 @@ } }, "supports": { + "anchor": true, "className": false, "lightBlockWrapper": true, "__experimentalColor": { diff --git a/packages/block-library/src/paragraph/transforms.js b/packages/block-library/src/paragraph/transforms.js index 5dc3a5f4bd041a..5179a7f05c22fa 100644 --- a/packages/block-library/src/paragraph/transforms.js +++ b/packages/block-library/src/paragraph/transforms.js @@ -18,7 +18,7 @@ const transforms = { schema: ( { phrasingContentSchema, isPaste } ) => ( { p: { children: phrasingContentSchema, - attributes: isPaste ? [] : [ 'style' ], + attributes: isPaste ? [] : [ 'style', 'id' ], }, } ), transform( node ) { diff --git a/packages/block-library/src/preformatted/block.json b/packages/block-library/src/preformatted/block.json index 8220666e29b470..4eb99004f7a0ee 100644 --- a/packages/block-library/src/preformatted/block.json +++ b/packages/block-library/src/preformatted/block.json @@ -11,6 +11,7 @@ } }, "supports": { + "anchor": true, "lightBlockWrapper": true } } diff --git a/packages/block-library/src/preformatted/transforms.js b/packages/block-library/src/preformatted/transforms.js index 38df8799960ec9..ef5f3324474091 100644 --- a/packages/block-library/src/preformatted/transforms.js +++ b/packages/block-library/src/preformatted/transforms.js @@ -8,9 +8,10 @@ const transforms = { { type: 'block', blocks: [ 'core/code', 'core/paragraph' ], - transform: ( { content } ) => + transform: ( { content, anchor } ) => createBlock( 'core/preformatted', { content, + anchor, } ), }, { diff --git a/packages/block-library/src/pullquote/block.json b/packages/block-library/src/pullquote/block.json index 08ebd960d5e282..7591b123f81594 100644 --- a/packages/block-library/src/pullquote/block.json +++ b/packages/block-library/src/pullquote/block.json @@ -28,6 +28,7 @@ } }, "supports": { + "anchor": true, "align": [ "left", "right", diff --git a/packages/block-library/src/quote/block.json b/packages/block-library/src/quote/block.json index fe0ebe158638f5..d828557e145808 100644 --- a/packages/block-library/src/quote/block.json +++ b/packages/block-library/src/quote/block.json @@ -18,5 +18,8 @@ "align": { "type": "string" } + }, + "supports": { + "anchor": true } } diff --git a/packages/block-library/src/quote/transforms.js b/packages/block-library/src/quote/transforms.js index 574029cc07c1ba..134aff4339eda7 100644 --- a/packages/block-library/src/quote/transforms.js +++ b/packages/block-library/src/quote/transforms.js @@ -21,25 +21,28 @@ const transforms = { ), multilineTag: 'p', } ), + anchor: attributes.anchor, } ); }, }, { type: 'block', blocks: [ 'core/heading' ], - transform: ( { content } ) => { + transform: ( { content, anchor } ) => { return createBlock( 'core/quote', { value: `

${ content }

`, + anchor, } ); }, }, { type: 'block', blocks: [ 'core/pullquote' ], - transform: ( { value, citation } ) => + transform: ( { value, citation, anchor } ) => createBlock( 'core/quote', { value, citation, + anchor, } ), }, { @@ -172,10 +175,11 @@ const transforms = { { type: 'block', blocks: [ 'core/pullquote' ], - transform: ( { value, citation } ) => { + transform: ( { value, citation, anchor } ) => { return createBlock( 'core/pullquote', { value, citation, + anchor, } ); }, }, diff --git a/packages/block-library/src/separator/block.json b/packages/block-library/src/separator/block.json index be78a415d8d0ec..52a05abf93ef38 100644 --- a/packages/block-library/src/separator/block.json +++ b/packages/block-library/src/separator/block.json @@ -8,5 +8,8 @@ "customColor": { "type": "string" } + }, + "supports": { + "anchor": true } } diff --git a/packages/block-library/src/social-links/block.json b/packages/block-library/src/social-links/block.json index 816932a9fbd835..93f8a1f226afbe 100644 --- a/packages/block-library/src/social-links/block.json +++ b/packages/block-library/src/social-links/block.json @@ -7,6 +7,7 @@ "center", "right" ], - "lightBlockWrapper": true + "lightBlockWrapper": true, + "anchor": true } } diff --git a/packages/block-library/src/spacer/block.json b/packages/block-library/src/spacer/block.json index 4719c6305b78ae..7ea6c98944c89f 100644 --- a/packages/block-library/src/spacer/block.json +++ b/packages/block-library/src/spacer/block.json @@ -6,5 +6,8 @@ "type": "number", "default": 100 } + }, + "supports": { + "anchor": true } } diff --git a/packages/block-library/src/table/block.json b/packages/block-library/src/table/block.json index 81583f20508cbb..9b031f56e503cf 100644 --- a/packages/block-library/src/table/block.json +++ b/packages/block-library/src/table/block.json @@ -122,6 +122,7 @@ } }, "supports": { + "anchor": true, "align": true } } diff --git a/packages/block-library/src/verse/block.json b/packages/block-library/src/verse/block.json index 88fc168d452061..57084b270b0a89 100644 --- a/packages/block-library/src/verse/block.json +++ b/packages/block-library/src/verse/block.json @@ -14,6 +14,7 @@ } }, "supports": { + "anchor": true, "lightBlockWrapper": true } } diff --git a/packages/block-library/src/video/block.json b/packages/block-library/src/video/block.json index 4ac3cf98a71fdd..f35e400362c84a 100644 --- a/packages/block-library/src/video/block.json +++ b/packages/block-library/src/video/block.json @@ -62,6 +62,7 @@ } }, "supports": { + "anchor": true, "align": true, "lightBlockWrapper": true }