@wordpress/block-library 8.14.0 → 8.15.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/avatar/edit.js +1 -0
- package/build/avatar/edit.js.map +1 -1
- package/build/block/index.js +2 -1
- package/build/block/index.js.map +1 -1
- package/build/buttons/edit.js +2 -2
- package/build/buttons/edit.js.map +1 -1
- package/build/column/edit.native.js +1 -4
- package/build/column/edit.native.js.map +1 -1
- package/build/columns/edit.js +1 -0
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -0
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/deprecated.js +4 -2
- package/build/cover/deprecated.js.map +1 -1
- package/build/embed/embed-placeholder.native.js +37 -13
- package/build/embed/embed-placeholder.native.js.map +1 -1
- package/build/file/index.js +1 -2
- package/build/file/index.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/file/view-interactivity.js +23 -0
- package/build/file/view-interactivity.js.map +1 -0
- package/build/file/view.js +1 -15
- package/build/file/view.js.map +1 -1
- package/build/footnotes/edit.js +20 -1
- package/build/footnotes/edit.js.map +1 -1
- package/build/footnotes/format.js +19 -16
- package/build/footnotes/format.js.map +1 -1
- package/build/footnotes/index.js +0 -1
- package/build/footnotes/index.js.map +1 -1
- package/build/gallery/edit.js +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/latest-comments/edit.js +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +2 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/edit.js +4 -4
- package/build/list/edit.js.map +1 -1
- package/build/media-text/media-container.native.js +2 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/missing/edit.native.js +7 -5
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/constants.js +10 -4
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/index.js +16 -2
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +2 -2
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/index.js +2 -3
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +33 -45
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view-interactivity.js +185 -0
- package/build/navigation/view-interactivity.js.map +1 -0
- package/build/navigation/view-modal.js +64 -0
- package/build/navigation/view-modal.js.map +1 -0
- package/build/navigation/view.js +50 -174
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +12 -7
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +2 -2
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/query-pagination/edit.js +1 -1
- package/build/query-pagination/edit.js.map +1 -1
- package/build/query-title/edit.js +43 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/quote/transforms.js +8 -0
- package/build/quote/transforms.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.js +4 -3
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +1 -0
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +1 -0
- package/build/site-logo/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +1 -0
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/text-columns/edit.js +1 -0
- package/build/text-columns/edit.js.map +1 -1
- package/build-module/avatar/edit.js +1 -0
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/block/index.js +2 -1
- package/build-module/block/index.js.map +1 -1
- package/build-module/buttons/edit.js +2 -2
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/column/edit.native.js +1 -4
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +1 -0
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -0
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/deprecated.js +4 -2
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/embed/embed-placeholder.native.js +37 -14
- package/build-module/embed/embed-placeholder.native.js.map +1 -1
- package/build-module/file/index.js +1 -2
- package/build-module/file/index.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/file/view-interactivity.js +19 -0
- package/build-module/file/view-interactivity.js.map +1 -0
- package/build-module/file/view.js +2 -15
- package/build-module/file/view.js.map +1 -1
- package/build-module/footnotes/edit.js +18 -2
- package/build-module/footnotes/edit.js.map +1 -1
- package/build-module/footnotes/format.js +19 -16
- package/build-module/footnotes/format.js.map +1 -1
- package/build-module/footnotes/index.js +0 -1
- package/build-module/footnotes/index.js.map +1 -1
- package/build-module/gallery/edit.js +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/latest-comments/edit.js +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/edit.js +4 -4
- package/build-module/list/edit.js.map +1 -1
- package/build-module/media-text/media-container.native.js +2 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/missing/edit.native.js +8 -6
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/constants.js +8 -3
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/index.js +17 -3
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -2
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/index.js +2 -3
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +35 -47
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view-interactivity.js +182 -0
- package/build-module/navigation/view-interactivity.js.map +1 -0
- package/build-module/navigation/view-modal.js +58 -0
- package/build-module/navigation/view-modal.js.map +1 -0
- package/build-module/navigation/view.js +50 -173
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +12 -7
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +2 -2
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/query-pagination/edit.js +1 -1
- package/build-module/query-pagination/edit.js.map +1 -1
- package/build-module/query-title/edit.js +44 -3
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/quote/transforms.js +8 -0
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.js +4 -3
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +1 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +1 -0
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +1 -0
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/text-columns/edit.js +1 -0
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-style/details/style-rtl.css +4 -2
- package/build-style/details/style.css +4 -2
- package/build-style/footnotes/style-rtl.css +4 -3
- package/build-style/footnotes/style.css +4 -3
- package/build-style/navigation/style-rtl.css +14 -2
- package/build-style/navigation/style.css +14 -2
- package/build-style/query-pagination/style-rtl.css +4 -2
- package/build-style/query-pagination/style.css +4 -2
- package/build-style/style-rtl.css +26 -9
- package/build-style/style.css +26 -9
- package/package.json +33 -32
- package/src/audio/test/__snapshots__/edit.native.js.snap +58 -33
- package/src/avatar/edit.js +1 -0
- package/src/block/block.json +2 -1
- package/src/block/editor.native.scss +2 -2
- package/src/buttons/edit.js +2 -2
- package/src/column/edit.native.js +4 -10
- package/src/column/editor.native.scss +0 -4
- package/src/columns/edit.js +1 -0
- package/src/comment-author-avatar/edit.js +1 -0
- package/src/comment-template/index.php +5 -2
- package/src/cover/deprecated.js +2 -0
- package/src/embed/embed-placeholder.native.js +80 -47
- package/src/embed/styles.native.scss +54 -18
- package/src/embed/test/index.native.js +5 -5
- package/src/file/block.json +1 -2
- package/src/file/index.php +19 -1
- package/src/file/inspector.js +1 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +58 -33
- package/src/file/view-interactivity.js +18 -0
- package/src/file/view.js +5 -14
- package/src/footnotes/block.json +0 -1
- package/src/footnotes/edit.js +21 -2
- package/src/footnotes/format.js +22 -20
- package/src/footnotes/style.scss +6 -3
- package/src/gallery/edit.js +1 -1
- package/src/gallery/test/index.native.js +17 -16
- package/src/home-link/index.php +15 -2
- package/src/image/index.php +47 -8
- package/src/image/test/edit.native.js +1 -1
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-posts/edit.js +2 -0
- package/src/list/edit.js +6 -4
- package/src/list/test/edit.native.js +129 -33
- package/src/media-text/media-container.native.js +1 -0
- package/src/missing/edit.native.js +12 -10
- package/src/missing/style.native.scss +19 -12
- package/src/missing/test/__snapshots__/edit.native.js.snap +21 -13
- package/src/navigation/block.json +2 -3
- package/src/navigation/constants.js +12 -6
- package/src/navigation/edit/index.js +29 -1
- package/src/navigation/edit/inner-blocks.js +2 -2
- package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
- package/src/navigation/index.php +24 -6
- package/src/navigation/style.scss +27 -8
- package/src/navigation/use-navigation-menu.js +39 -63
- package/src/navigation/view-interactivity.js +196 -0
- package/src/navigation/view-modal.js +78 -0
- package/src/navigation/view.js +67 -189
- package/src/navigation-link/edit.js +61 -47
- package/src/navigation-submenu/edit.js +2 -2
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
- package/src/paragraph/test/edit.native.js +26 -0
- package/src/post-template/index.php +4 -2
- package/src/post-title/index.php +6 -3
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
- package/src/query-pagination/edit.js +17 -14
- package/src/query-title/edit.js +48 -6
- package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
- package/src/quote/test/transforms.native.js +5 -1
- package/src/quote/transforms.js +13 -0
- package/src/rss/edit.js +3 -0
- package/src/search/block.json +1 -0
- package/src/search/edit.js +4 -3
- package/src/search/index.php +22 -4
- package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/site-logo/edit.js +1 -0
- package/src/tag-cloud/edit.js +1 -0
- package/src/template-part/edit/index.js +1 -1
- package/src/template-part/index.php +9 -15
- package/src/text-columns/edit.js +1 -0
- package/build/gallery/shared-icon.native.js +0 -38
- package/build/gallery/shared-icon.native.js.map +0 -1
- package/build-module/gallery/shared-icon.native.js +0 -24
- package/build-module/gallery/shared-icon.native.js.map +0 -1
- package/src/gallery/shared-icon.native.js +0 -23
package/src/latest-posts/edit.js
CHANGED
|
@@ -230,6 +230,7 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
|
|
|
230
230
|
displayPostContentRadio === 'excerpt' && (
|
|
231
231
|
<RangeControl
|
|
232
232
|
__nextHasNoMarginBottom
|
|
233
|
+
__next40pxDefaultSize
|
|
233
234
|
label={ __( 'Max number of words' ) }
|
|
234
235
|
value={ excerptLength }
|
|
235
236
|
onChange={ ( value ) =>
|
|
@@ -359,6 +360,7 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
|
|
|
359
360
|
{ postLayout === 'grid' && (
|
|
360
361
|
<RangeControl
|
|
361
362
|
__nextHasNoMarginBottom
|
|
363
|
+
__next40pxDefaultSize
|
|
362
364
|
label={ __( 'Columns' ) }
|
|
363
365
|
value={ columns }
|
|
364
366
|
onChange={ ( value ) =>
|
package/src/list/edit.js
CHANGED
|
@@ -177,10 +177,12 @@ export default function Edit( { attributes, setAttributes, clientId, style } ) {
|
|
|
177
177
|
{ controls }
|
|
178
178
|
{ ordered && (
|
|
179
179
|
<OrderedListSettings
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
{ ...{
|
|
181
|
+
setAttributes,
|
|
182
|
+
reversed,
|
|
183
|
+
start,
|
|
184
|
+
type,
|
|
185
|
+
} }
|
|
184
186
|
/>
|
|
185
187
|
) }
|
|
186
188
|
</>
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
*/
|
|
20
20
|
import { getBlockTypes, unregisterBlockType } from '@wordpress/blocks';
|
|
21
21
|
import { registerCoreBlocks } from '@wordpress/block-library';
|
|
22
|
-
import { BACKSPACE } from '@wordpress/keycodes';
|
|
22
|
+
import { BACKSPACE, ENTER } from '@wordpress/keycodes';
|
|
23
23
|
|
|
24
24
|
describe( 'List block', () => {
|
|
25
25
|
beforeAll( () => {
|
|
@@ -338,34 +338,125 @@ describe( 'List block', () => {
|
|
|
338
338
|
expect( getEditorHtml() ).toMatchSnapshot();
|
|
339
339
|
} );
|
|
340
340
|
|
|
341
|
-
it( '
|
|
341
|
+
it( 'splits empty list items into paragraphs', async () => {
|
|
342
|
+
// Arrange
|
|
342
343
|
const initialHtml = `<!-- wp:list -->
|
|
343
344
|
<ul><!-- wp:list-item -->
|
|
344
|
-
<li>One</li><!-- /wp:list-item
|
|
345
|
-
<!--
|
|
346
|
-
<ul><!-- wp:list-item -->
|
|
345
|
+
<li>One</li><!-- /wp:list-item -->
|
|
346
|
+
<!-- wp:list-item -->
|
|
347
347
|
<li>Two</li><!-- /wp:list-item --></ul>
|
|
348
348
|
<!-- /wp:list -->`;
|
|
349
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
349
350
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
} );
|
|
353
|
-
|
|
354
|
-
// Select List block
|
|
355
|
-
const [ listBlock ] = screen.getAllByLabelText( /List Block\. Row 2/ );
|
|
351
|
+
// Act
|
|
352
|
+
const listBlock = screen.getByLabelText( /List Block\. Row 1/ );
|
|
356
353
|
fireEvent.press( listBlock );
|
|
357
354
|
await triggerBlockListLayout( listBlock );
|
|
355
|
+
const listItemField = screen.getByLabelText( /Text input. .*One.*/ );
|
|
356
|
+
selectRangeInRichText( listItemField, 3 );
|
|
357
|
+
fireEvent( listItemField, 'onKeyDown', {
|
|
358
|
+
nativeEvent: {},
|
|
359
|
+
preventDefault() {},
|
|
360
|
+
keyCode: ENTER,
|
|
361
|
+
} );
|
|
362
|
+
const listItemField2 = screen.getByLabelText( /Text input. Empty/ );
|
|
363
|
+
fireEvent( listItemField2, 'onKeyDown', {
|
|
364
|
+
nativeEvent: {},
|
|
365
|
+
preventDefault() {},
|
|
366
|
+
keyCode: ENTER,
|
|
367
|
+
} );
|
|
358
368
|
|
|
359
|
-
//
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
369
|
+
// Assert
|
|
370
|
+
expect( getEditorHtml() ).toMatchInlineSnapshot( `
|
|
371
|
+
"<!-- wp:list -->
|
|
372
|
+
<ul><!-- wp:list-item -->
|
|
373
|
+
<li>One</li>
|
|
374
|
+
<!-- /wp:list-item --></ul>
|
|
375
|
+
<!-- /wp:list -->
|
|
364
376
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
377
|
+
<!-- wp:paragraph -->
|
|
378
|
+
<p></p>
|
|
379
|
+
<!-- /wp:paragraph -->
|
|
380
|
+
|
|
381
|
+
<!-- wp:list -->
|
|
382
|
+
<ul><!-- wp:list-item -->
|
|
383
|
+
<li>Two</li>
|
|
384
|
+
<!-- /wp:list-item --></ul>
|
|
385
|
+
<!-- /wp:list -->"
|
|
386
|
+
` );
|
|
387
|
+
} );
|
|
388
|
+
|
|
389
|
+
it( 'merges paragraphs into list items', async () => {
|
|
390
|
+
const initialHtml = `<!-- wp:list -->
|
|
391
|
+
<ul><!-- wp:list-item -->
|
|
392
|
+
<li>One</li>
|
|
393
|
+
<!-- /wp:list-item --></ul>
|
|
394
|
+
<!-- /wp:list -->
|
|
395
|
+
|
|
396
|
+
<!-- wp:paragraph -->
|
|
397
|
+
<p>Two</p>
|
|
398
|
+
<!-- /wp:paragraph -->
|
|
399
|
+
|
|
400
|
+
<!-- wp:list -->
|
|
401
|
+
<ul><!-- wp:list-item -->
|
|
402
|
+
<li>Three</li>
|
|
403
|
+
<!-- /wp:list-item --></ul>
|
|
404
|
+
<!-- /wp:list -->`;
|
|
405
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
406
|
+
|
|
407
|
+
// Act
|
|
408
|
+
const paragraphField = screen.getByLabelText( /Text input. .*Two.*/ );
|
|
409
|
+
selectRangeInRichText( paragraphField, 0 );
|
|
410
|
+
fireEvent( paragraphField, 'onKeyDown', {
|
|
411
|
+
nativeEvent: {},
|
|
412
|
+
preventDefault() {},
|
|
413
|
+
keyCode: BACKSPACE,
|
|
414
|
+
} );
|
|
415
|
+
|
|
416
|
+
// Assert
|
|
417
|
+
expect( getEditorHtml() ).toMatchInlineSnapshot( `
|
|
418
|
+
"<!-- wp:list -->
|
|
419
|
+
<ul><!-- wp:list-item -->
|
|
420
|
+
<li>One</li>
|
|
421
|
+
<!-- /wp:list-item -->
|
|
422
|
+
|
|
423
|
+
<!-- wp:list-item -->
|
|
424
|
+
<li>Two</li>
|
|
425
|
+
<!-- /wp:list-item --></ul>
|
|
426
|
+
<!-- /wp:list -->
|
|
427
|
+
|
|
428
|
+
<!-- wp:list -->
|
|
429
|
+
<ul><!-- wp:list-item -->
|
|
430
|
+
<li>Three</li>
|
|
431
|
+
<!-- /wp:list-item --></ul>
|
|
432
|
+
<!-- /wp:list -->"
|
|
433
|
+
` );
|
|
434
|
+
} );
|
|
435
|
+
|
|
436
|
+
it( 'merges lists into lists', async () => {
|
|
437
|
+
// Arrange
|
|
438
|
+
const initialHtml = `<!-- wp:list -->
|
|
439
|
+
<ul><!-- wp:list-item -->
|
|
440
|
+
<li>One</li>
|
|
441
|
+
<!-- /wp:list-item -->
|
|
442
|
+
|
|
443
|
+
<!-- wp:list-item -->
|
|
444
|
+
<li>Two</li>
|
|
445
|
+
<!-- /wp:list-item --></ul>
|
|
446
|
+
<!-- /wp:list -->
|
|
447
|
+
|
|
448
|
+
<!-- wp:list -->
|
|
449
|
+
<ul><!-- wp:list-item -->
|
|
450
|
+
<li>Three</li>
|
|
451
|
+
<!-- /wp:list-item --></ul>
|
|
452
|
+
<!-- /wp:list -->`;
|
|
453
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
454
|
+
|
|
455
|
+
// Act
|
|
456
|
+
const listBlock = screen.getByLabelText( /List Block\. Row 2/ );
|
|
457
|
+
fireEvent.press( listBlock );
|
|
458
|
+
await triggerBlockListLayout( listBlock );
|
|
459
|
+
const listItemField = screen.getByLabelText( /Text input\..*Three/ );
|
|
369
460
|
selectRangeInRichText( listItemField, 0 );
|
|
370
461
|
fireEvent( listItemField, 'onKeyDown', {
|
|
371
462
|
nativeEvent: {},
|
|
@@ -373,17 +464,22 @@ describe( 'List block', () => {
|
|
|
373
464
|
keyCode: BACKSPACE,
|
|
374
465
|
} );
|
|
375
466
|
|
|
467
|
+
// Assert
|
|
376
468
|
expect( getEditorHtml() ).toMatchInlineSnapshot( `
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
469
|
+
"<!-- wp:list -->
|
|
470
|
+
<ul><!-- wp:list-item -->
|
|
471
|
+
<li>One</li>
|
|
472
|
+
<!-- /wp:list-item -->
|
|
473
|
+
|
|
474
|
+
<!-- wp:list-item -->
|
|
475
|
+
<li>Two</li>
|
|
476
|
+
<!-- /wp:list-item -->
|
|
477
|
+
|
|
478
|
+
<!-- wp:list-item -->
|
|
479
|
+
<li>Three</li>
|
|
480
|
+
<!-- /wp:list-item --></ul>
|
|
481
|
+
<!-- /wp:list -->"
|
|
482
|
+
` );
|
|
387
483
|
} );
|
|
388
484
|
|
|
389
485
|
it( 'unwraps first item when attempting to merge with non-list block', async () => {
|
|
@@ -486,16 +582,16 @@ describe( 'List block', () => {
|
|
|
486
582
|
"<!-- wp:paragraph -->
|
|
487
583
|
<p>A quick brown fox.</p>
|
|
488
584
|
<!-- /wp:paragraph -->
|
|
489
|
-
|
|
585
|
+
|
|
490
586
|
<!-- wp:paragraph -->
|
|
491
587
|
<p>One</p>
|
|
492
588
|
<!-- /wp:paragraph -->
|
|
493
|
-
|
|
589
|
+
|
|
494
590
|
<!-- wp:list -->
|
|
495
591
|
<ul><!-- wp:list-item -->
|
|
496
592
|
<li>Two</li>
|
|
497
593
|
<!-- /wp:list-item -->
|
|
498
|
-
|
|
594
|
+
|
|
499
595
|
<!-- wp:list-item -->
|
|
500
596
|
<li>Three</li>
|
|
501
597
|
<!-- /wp:list-item --></ul>
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
View,
|
|
6
6
|
Text,
|
|
7
7
|
TouchableWithoutFeedback,
|
|
8
|
-
|
|
8
|
+
TouchableOpacity,
|
|
9
9
|
} from 'react-native';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -83,7 +83,7 @@ export class UnsupportedBlockEdit extends Component {
|
|
|
83
83
|
);
|
|
84
84
|
|
|
85
85
|
return (
|
|
86
|
-
<
|
|
86
|
+
<TouchableOpacity
|
|
87
87
|
onPress={ this.onHelpButtonPressed }
|
|
88
88
|
style={ styles.helpIconContainer }
|
|
89
89
|
accessibilityLabel={ __( 'Help button' ) }
|
|
@@ -94,9 +94,9 @@ export class UnsupportedBlockEdit extends Component {
|
|
|
94
94
|
className="unsupported-icon-help"
|
|
95
95
|
label={ __( 'Help icon' ) }
|
|
96
96
|
icon={ help }
|
|
97
|
-
|
|
97
|
+
fill={ infoIconStyle.color }
|
|
98
98
|
/>
|
|
99
|
-
</
|
|
99
|
+
</TouchableOpacity>
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -282,12 +282,14 @@ export class UnsupportedBlockEdit extends Component {
|
|
|
282
282
|
) }
|
|
283
283
|
>
|
|
284
284
|
{ this.renderHelpIcon() }
|
|
285
|
-
<
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
<View style={ styles.unsupportedBlockHeader }>
|
|
286
|
+
<Icon
|
|
287
|
+
className={ iconClassName }
|
|
288
|
+
icon={ icon && icon.src ? icon.src : icon }
|
|
289
|
+
fill={ iconStyle.color }
|
|
290
|
+
/>
|
|
291
|
+
<Text style={ titleStyle }>{ title }</Text>
|
|
292
|
+
</View>
|
|
291
293
|
{ subtitle }
|
|
292
294
|
{ this.renderSheet( title, originalName ) }
|
|
293
295
|
</View>
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
height: 36;
|
|
32
32
|
padding-top: 8;
|
|
33
33
|
padding-bottom: 8;
|
|
34
|
-
color: $
|
|
34
|
+
color: $light-secondary;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.infoIconDark {
|
|
38
|
-
color: $
|
|
38
|
+
color: $dark-tertiary;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.infoSheetIcon {
|
|
@@ -82,7 +82,8 @@
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
.unsupportedBlock {
|
|
85
|
-
|
|
85
|
+
height: 142;
|
|
86
|
+
background-color: #e0e0e0; // $light-dim
|
|
86
87
|
padding-top: 24;
|
|
87
88
|
padding-bottom: 24;
|
|
88
89
|
padding-left: 8;
|
|
@@ -96,31 +97,37 @@
|
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
.unsupportedBlockDark {
|
|
99
|
-
background-color: $
|
|
100
|
+
background-color: #1f1f1f; // $dark-dim
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.unsupportedBlockHeader {
|
|
104
|
+
flex-direction: row;
|
|
105
|
+
align-items: center;
|
|
106
|
+
margin-top: 4;
|
|
107
|
+
margin-bottom: 8;
|
|
100
108
|
}
|
|
101
109
|
|
|
102
110
|
.unsupportedBlockIcon {
|
|
103
|
-
color: $
|
|
111
|
+
color: $light-secondary;
|
|
104
112
|
}
|
|
105
113
|
|
|
106
114
|
.unsupportedBlockIconDark {
|
|
107
|
-
color: $
|
|
115
|
+
color: $dark-tertiary;
|
|
108
116
|
}
|
|
109
117
|
|
|
110
118
|
.unsupportedBlockMessage {
|
|
111
|
-
margin-top: 4;
|
|
112
119
|
text-align: center;
|
|
113
|
-
color: $
|
|
114
|
-
font-size:
|
|
115
|
-
font-weight:
|
|
120
|
+
color: $light-secondary;
|
|
121
|
+
font-size: 16;
|
|
122
|
+
font-weight: 400;
|
|
123
|
+
margin-left: 6;
|
|
116
124
|
}
|
|
117
125
|
|
|
118
126
|
.unsupportedBlockMessageDark {
|
|
119
|
-
color: $
|
|
127
|
+
color: $dark-tertiary;
|
|
120
128
|
}
|
|
121
129
|
|
|
122
130
|
.unsupportedBlockSubtitle {
|
|
123
|
-
margin-top: 2;
|
|
124
131
|
text-align: center;
|
|
125
132
|
color: $gray-darken-20;
|
|
126
133
|
font-size: 12;
|
|
@@ -25,6 +25,7 @@ exports[`Missing block renders without crashing 1`] = `
|
|
|
25
25
|
accessibilityLabel="Help button"
|
|
26
26
|
accessibilityRole="button"
|
|
27
27
|
accessible={true}
|
|
28
|
+
collapsable={false}
|
|
28
29
|
focusable={true}
|
|
29
30
|
onClick={[Function]}
|
|
30
31
|
onResponderGrant={[Function]}
|
|
@@ -33,6 +34,11 @@ exports[`Missing block renders without crashing 1`] = `
|
|
|
33
34
|
onResponderTerminate={[Function]}
|
|
34
35
|
onResponderTerminationRequest={[Function]}
|
|
35
36
|
onStartShouldSetResponder={[Function]}
|
|
37
|
+
style={
|
|
38
|
+
{
|
|
39
|
+
"opacity": 1,
|
|
40
|
+
}
|
|
41
|
+
}
|
|
36
42
|
>
|
|
37
43
|
<Svg
|
|
38
44
|
height={24}
|
|
@@ -45,19 +51,21 @@ exports[`Missing block renders without crashing 1`] = `
|
|
|
45
51
|
Path
|
|
46
52
|
</Svg>
|
|
47
53
|
</View>
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
<View>
|
|
55
|
+
<Svg
|
|
56
|
+
fill="white"
|
|
57
|
+
height={24}
|
|
58
|
+
style={{}}
|
|
59
|
+
viewBox="0 0 24 24"
|
|
60
|
+
width={24}
|
|
61
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
62
|
+
>
|
|
63
|
+
Path
|
|
64
|
+
</Svg>
|
|
65
|
+
<Text>
|
|
66
|
+
missing/block/title
|
|
67
|
+
</Text>
|
|
68
|
+
</View>
|
|
61
69
|
<Text>
|
|
62
70
|
Unsupported
|
|
63
71
|
</Text>
|
|
@@ -131,10 +131,9 @@
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
}
|
|
135
|
-
"interactivity": true
|
|
134
|
+
}
|
|
136
135
|
},
|
|
137
|
-
"viewScript": "file:./view.min.js",
|
|
136
|
+
"viewScript": [ "file:./view.min.js", "file:./view-modal.min.js" ],
|
|
138
137
|
"editorStyle": "wp-block-navigation-editor",
|
|
139
138
|
"style": "wp-block-navigation"
|
|
140
139
|
}
|
|
@@ -20,13 +20,19 @@ export const PRIORITIZED_INSERTER_BLOCKS = [
|
|
|
20
20
|
'core/navigation-link',
|
|
21
21
|
];
|
|
22
22
|
|
|
23
|
+
// These parameters must be kept aligned with those in
|
|
24
|
+
// lib/compat/wordpress-6.3/navigation-block-preloading.php
|
|
25
|
+
// and
|
|
26
|
+
// edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js
|
|
27
|
+
export const PRELOADED_NAVIGATION_MENUS_QUERY = {
|
|
28
|
+
per_page: 100,
|
|
29
|
+
status: [ 'publish', 'draft' ],
|
|
30
|
+
order: 'desc',
|
|
31
|
+
orderby: 'date',
|
|
32
|
+
};
|
|
33
|
+
|
|
23
34
|
export const SELECT_NAVIGATION_MENUS_ARGS = [
|
|
24
35
|
'postType',
|
|
25
36
|
'wp_navigation',
|
|
26
|
-
|
|
27
|
-
per_page: 100,
|
|
28
|
-
status: [ 'publish', 'draft' ],
|
|
29
|
-
order: 'desc',
|
|
30
|
-
orderby: 'date',
|
|
31
|
-
},
|
|
37
|
+
PRELOADED_NAVIGATION_MENUS_QUERY,
|
|
32
38
|
];
|
|
@@ -38,6 +38,7 @@ import {
|
|
|
38
38
|
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
|
|
39
39
|
Button,
|
|
40
40
|
Spinner,
|
|
41
|
+
Notice,
|
|
41
42
|
} from '@wordpress/components';
|
|
42
43
|
import { __, sprintf } from '@wordpress/i18n';
|
|
43
44
|
import { speak } from '@wordpress/a11y';
|
|
@@ -196,7 +197,7 @@ function Navigation( {
|
|
|
196
197
|
convert: convertClassicMenu,
|
|
197
198
|
status: classicMenuConversionStatus,
|
|
198
199
|
error: classicMenuConversionError,
|
|
199
|
-
} = useConvertClassicToBlockMenu(
|
|
200
|
+
} = useConvertClassicToBlockMenu( createNavigationMenu );
|
|
200
201
|
|
|
201
202
|
const isConvertingClassicMenu =
|
|
202
203
|
classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
|
|
@@ -485,6 +486,21 @@ function Navigation( {
|
|
|
485
486
|
{ open: overlayMenuPreview }
|
|
486
487
|
);
|
|
487
488
|
|
|
489
|
+
const submenuAccessibilityNotice =
|
|
490
|
+
! showSubmenuIcon && ! openSubmenusOnClick
|
|
491
|
+
? __(
|
|
492
|
+
'The current menu options offer reduced accessibility for users and are not recommended. Enabling either "Open on Click" or "Show arrow" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'
|
|
493
|
+
)
|
|
494
|
+
: '';
|
|
495
|
+
|
|
496
|
+
const isFirstRender = useRef( true ); // Don't speak on first render.
|
|
497
|
+
useEffect( () => {
|
|
498
|
+
if ( ! isFirstRender.current && submenuAccessibilityNotice ) {
|
|
499
|
+
speak( submenuAccessibilityNotice );
|
|
500
|
+
}
|
|
501
|
+
isFirstRender.current = false;
|
|
502
|
+
}, [ submenuAccessibilityNotice ] );
|
|
503
|
+
|
|
488
504
|
const colorGradientSettings = useMultipleOriginColorsAndGradients();
|
|
489
505
|
const stylingInspectorControls = (
|
|
490
506
|
<>
|
|
@@ -578,6 +594,18 @@ function Navigation( {
|
|
|
578
594
|
disabled={ attributes.openSubmenusOnClick }
|
|
579
595
|
label={ __( 'Show arrow' ) }
|
|
580
596
|
/>
|
|
597
|
+
|
|
598
|
+
{ submenuAccessibilityNotice && (
|
|
599
|
+
<div>
|
|
600
|
+
<Notice
|
|
601
|
+
spokenMessage={ null }
|
|
602
|
+
status="warning"
|
|
603
|
+
isDismissible={ false }
|
|
604
|
+
>
|
|
605
|
+
{ submenuAccessibilityNotice }
|
|
606
|
+
</Notice>
|
|
607
|
+
</div>
|
|
608
|
+
) }
|
|
581
609
|
</>
|
|
582
610
|
) }
|
|
583
611
|
</PanelBody>
|
|
@@ -98,8 +98,8 @@ export default function NavigationInnerBlocks( {
|
|
|
98
98
|
onChange,
|
|
99
99
|
allowedBlocks: ALLOWED_BLOCKS,
|
|
100
100
|
prioritizedInserterBlocks: PRIORITIZED_INSERTER_BLOCKS,
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
102
|
+
directInsert: shouldDirectInsert,
|
|
103
103
|
orientation,
|
|
104
104
|
templateLock,
|
|
105
105
|
|
|
@@ -68,8 +68,8 @@ export default function UnsavedInnerBlocks( {
|
|
|
68
68
|
{
|
|
69
69
|
renderAppender: hasSelection ? undefined : false,
|
|
70
70
|
allowedBlocks: ALLOWED_BLOCKS,
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
72
|
+
directInsert: shouldDirectInsert,
|
|
73
73
|
}
|
|
74
74
|
);
|
|
75
75
|
|
|
@@ -9,7 +9,6 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
|
9
9
|
/**
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
12
|
-
import useCreateNavigationMenu from './use-create-navigation-menu';
|
|
13
12
|
import menuItemsToBlocks from '../menu-items-to-blocks';
|
|
14
13
|
|
|
15
14
|
export const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
|
|
@@ -21,15 +20,10 @@ export const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
|
|
|
21
20
|
// do not import the same classic menu twice.
|
|
22
21
|
let classicMenuBeingConvertedId = null;
|
|
23
22
|
|
|
24
|
-
function useConvertClassicToBlockMenu(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*/
|
|
29
|
-
const { create: createNavigationMenu } = useCreateNavigationMenu(
|
|
30
|
-
clientId,
|
|
31
|
-
'draft'
|
|
32
|
-
);
|
|
23
|
+
function useConvertClassicToBlockMenu(
|
|
24
|
+
createNavigationMenu,
|
|
25
|
+
{ throwOnError = false } = {}
|
|
26
|
+
) {
|
|
33
27
|
const registry = useRegistry();
|
|
34
28
|
const { editEntityRecord } = useDispatch( coreStore );
|
|
35
29
|
|
|
@@ -158,19 +152,21 @@ function useConvertClassicToBlockMenu( clientId ) {
|
|
|
158
152
|
classicMenuBeingConvertedId = null;
|
|
159
153
|
|
|
160
154
|
// Rethrow error for debugging.
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
155
|
+
if ( throwOnError ) {
|
|
156
|
+
throw new Error(
|
|
157
|
+
sprintf(
|
|
158
|
+
// translators: %s: the name of a menu (e.g. Header navigation).
|
|
159
|
+
__( `Unable to create Navigation Menu "%s".` ),
|
|
160
|
+
menuName
|
|
161
|
+
),
|
|
162
|
+
{
|
|
163
|
+
cause: err,
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
}
|
|
171
167
|
} );
|
|
172
168
|
},
|
|
173
|
-
[ convertClassicMenuToBlockMenu ]
|
|
169
|
+
[ convertClassicMenuToBlockMenu, throwOnError ]
|
|
174
170
|
);
|
|
175
171
|
|
|
176
172
|
return {
|
package/src/navigation/index.php
CHANGED
|
@@ -65,6 +65,9 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
|
|
|
65
65
|
|
|
66
66
|
return $menu_items_by_parent_id;
|
|
67
67
|
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if ( gutenberg_should_block_use_interactivity_api( 'core/navigation' ) ) {
|
|
68
71
|
|
|
69
72
|
/**
|
|
70
73
|
* Add Interactivity API directives to the navigation-submenu and page-list blocks markup using the Tag Processor
|
|
@@ -138,8 +141,23 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
|
|
|
138
141
|
}
|
|
139
142
|
return $w->get_updated_html();
|
|
140
143
|
};
|
|
141
|
-
}
|
|
142
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Replaces view script for the Navigation block with version using Interactivity API.
|
|
147
|
+
*
|
|
148
|
+
* @param array $metadata Block metadata as read in via block.json.
|
|
149
|
+
*
|
|
150
|
+
* @return array Filtered block type metadata.
|
|
151
|
+
*/
|
|
152
|
+
function gutenberg_block_core_navigation_update_interactive_view_script( $metadata ) {
|
|
153
|
+
if ( 'core/navigation' === $metadata['name'] ) {
|
|
154
|
+
$metadata['viewScript'] = array( 'file:./view-interactivity.min.js' );
|
|
155
|
+
$metadata['supports']['interactivity'] = true;
|
|
156
|
+
}
|
|
157
|
+
return $metadata;
|
|
158
|
+
}
|
|
159
|
+
add_filter( 'block_type_metadata', 'gutenberg_block_core_navigation_update_interactive_view_script', 10, 1 );
|
|
160
|
+
}
|
|
143
161
|
|
|
144
162
|
|
|
145
163
|
/**
|
|
@@ -670,7 +688,7 @@ function render_block_core_navigation( $attributes, $content, $block ) {
|
|
|
670
688
|
}
|
|
671
689
|
|
|
672
690
|
// Add directives to the submenu if needed.
|
|
673
|
-
if (
|
|
691
|
+
if ( gutenberg_should_block_use_interactivity_api( 'core/navigation' ) && $has_submenus && $should_load_view_script ) {
|
|
674
692
|
$w = new WP_HTML_Tag_Processor( $inner_blocks_html );
|
|
675
693
|
$inner_blocks_html = block_core_navigation_add_directives_to_submenu( $w, $attributes );
|
|
676
694
|
}
|
|
@@ -718,7 +736,7 @@ function render_block_core_navigation( $attributes, $content, $block ) {
|
|
|
718
736
|
$responsive_container_directives = '';
|
|
719
737
|
$responsive_dialog_directives = '';
|
|
720
738
|
$close_button_directives = '';
|
|
721
|
-
if (
|
|
739
|
+
if ( gutenberg_should_block_use_interactivity_api( 'core/navigation' ) && $should_load_view_script ) {
|
|
722
740
|
$nav_element_directives = '
|
|
723
741
|
data-wp-interactive
|
|
724
742
|
data-wp-context=\'{ "core": { "navigation": { "overlayOpenedBy": {}, "type": "overlay", "roleAttribute": "" } } }\'
|
|
@@ -746,11 +764,11 @@ function render_block_core_navigation( $attributes, $content, $block ) {
|
|
|
746
764
|
}
|
|
747
765
|
|
|
748
766
|
$responsive_container_markup = sprintf(
|
|
749
|
-
'<button aria-haspopup="true" %3$s class="%6$s" %11$s>%9$s</button>
|
|
767
|
+
'<button aria-haspopup="true" %3$s class="%6$s" data-micromodal-trigger="%1$s" %11$s>%9$s</button>
|
|
750
768
|
<div class="%5$s" style="%7$s" id="%1$s" %12$s>
|
|
751
|
-
<div class="wp-block-navigation__responsive-close" tabindex="-1">
|
|
769
|
+
<div class="wp-block-navigation__responsive-close" tabindex="-1" data-micromodal-close>
|
|
752
770
|
<div class="wp-block-navigation__responsive-dialog" aria-label="%8$s" %13$s>
|
|
753
|
-
<button %4$s class="wp-block-navigation__responsive-container-close" %14$s>%10$s</button>
|
|
771
|
+
<button %4$s data-micromodal-close class="wp-block-navigation__responsive-container-close" %14$s>%10$s</button>
|
|
754
772
|
<div class="wp-block-navigation__responsive-container-content" id="%1$s-content">
|
|
755
773
|
%2$s
|
|
756
774
|
</div>
|