@wordpress/block-library 8.3.6 → 8.3.7

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.
Files changed (62) hide show
  1. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  2. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  3. package/build/navigation/edit/index.js +4 -2
  4. package/build/navigation/edit/index.js.map +1 -1
  5. package/build/navigation/edit/inner-blocks.js +4 -1
  6. package/build/navigation/edit/inner-blocks.js.map +1 -1
  7. package/build/navigation/edit/menu-inspector-controls.js +1 -1
  8. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  9. package/build/navigation-link/edit.js +0 -11
  10. package/build/navigation-link/edit.js.map +1 -1
  11. package/build/navigation-submenu/edit.js +1 -13
  12. package/build/navigation-submenu/edit.js.map +1 -1
  13. package/build/page-list/edit.js +5 -1
  14. package/build/page-list/edit.js.map +1 -1
  15. package/build/query/edit/query-placeholder.js +3 -2
  16. package/build/query/edit/query-placeholder.js.map +1 -1
  17. package/build/template-part/edit/import-controls.js +4 -24
  18. package/build/template-part/edit/import-controls.js.map +1 -1
  19. package/build/template-part/edit/utils/transformers.js +69 -19
  20. package/build/template-part/edit/utils/transformers.js.map +1 -1
  21. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  22. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  23. package/build-module/navigation/edit/index.js +4 -2
  24. package/build-module/navigation/edit/index.js.map +1 -1
  25. package/build-module/navigation/edit/inner-blocks.js +4 -1
  26. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  27. package/build-module/navigation/edit/menu-inspector-controls.js +1 -1
  28. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  29. package/build-module/navigation-link/edit.js +0 -11
  30. package/build-module/navigation-link/edit.js.map +1 -1
  31. package/build-module/navigation-submenu/edit.js +1 -13
  32. package/build-module/navigation-submenu/edit.js.map +1 -1
  33. package/build-module/page-list/edit.js +5 -1
  34. package/build-module/page-list/edit.js.map +1 -1
  35. package/build-module/query/edit/query-placeholder.js +4 -3
  36. package/build-module/query/edit/query-placeholder.js.map +1 -1
  37. package/build-module/template-part/edit/import-controls.js +4 -23
  38. package/build-module/template-part/edit/import-controls.js.map +1 -1
  39. package/build-module/template-part/edit/utils/transformers.js +69 -20
  40. package/build-module/template-part/edit/utils/transformers.js.map +1 -1
  41. package/build-style/editor-rtl.css +5 -1
  42. package/build-style/editor.css +5 -1
  43. package/build-style/navigation/editor-rtl.css +1 -1
  44. package/build-style/navigation/editor.css +1 -1
  45. package/build-style/page-list/editor-rtl.css +4 -0
  46. package/build-style/page-list/editor.css +4 -0
  47. package/package.json +4 -4
  48. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  49. package/src/navigation/edit/index.js +3 -1
  50. package/src/navigation/edit/inner-blocks.js +3 -0
  51. package/src/navigation/edit/menu-inspector-controls.js +1 -3
  52. package/src/navigation/editor.scss +23 -20
  53. package/src/navigation/index.php +8 -6
  54. package/src/navigation-link/edit.js +0 -9
  55. package/src/navigation-link/index.php +4 -5
  56. package/src/navigation-submenu/edit.js +0 -10
  57. package/src/navigation-submenu/index.php +23 -6
  58. package/src/page-list/edit.js +3 -1
  59. package/src/page-list/editor.scss +6 -0
  60. package/src/query/edit/query-placeholder.js +10 -5
  61. package/src/template-part/edit/import-controls.js +2 -29
  62. package/src/template-part/edit/utils/transformers.js +96 -19
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/query/edit/query-placeholder.js"],"names":["useSelect","useDispatch","createBlocksFromInnerBlocksTemplate","store","blocksStore","useState","useBlockProps","blockEditorStore","__experimentalBlockVariationPicker","__experimentalGetMatchingVariation","getMatchingVariation","Button","Placeholder","__","useScopedBlockVariations","QueryPlaceholder","attributes","clientId","name","openPatternSelectionModal","setAttributes","isStartingBlank","setIsStartingBlank","blockProps","blockType","allVariations","hasPatterns","select","getBlockVariations","getBlockType","getBlockRootClientId","getPatternsByBlockTypes","rootClientId","length","matchingVariation","icon","src","label","title","QueryVariationPicker","scopeVariations","replaceInnerBlocks","variation","query","postType","namespace","innerBlocks"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalBlockVariationPicker,\n\t__experimentalGetMatchingVariation as getMatchingVariation,\n} from '@wordpress/block-editor';\nimport { Button, Placeholder } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useScopedBlockVariations } from '../utils';\n\nexport default function QueryPlaceholder( {\n\tattributes,\n\tclientId,\n\tname,\n\topenPatternSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst [ isStartingBlank, setIsStartingBlank ] = useState( false );\n\tconst blockProps = useBlockProps();\n\n\tconst { blockType, allVariations, hasPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockVariations, getBlockType } = select( blocksStore );\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tallVariations: getBlockVariations( name ),\n\t\t\t\thasPatterns: !! getPatternsByBlockTypes( name, rootClientId )\n\t\t\t\t\t.length,\n\t\t\t};\n\t\t},\n\t\t[ name, clientId ]\n\t);\n\n\tconst matchingVariation = getMatchingVariation( attributes, allVariations );\n\tconst icon =\n\t\tmatchingVariation?.icon?.src ||\n\t\tmatchingVariation?.icon ||\n\t\tblockType?.icon?.src;\n\tconst label = matchingVariation?.title || blockType?.title;\n\tif ( isStartingBlank ) {\n\t\treturn (\n\t\t\t<QueryVariationPicker\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Choose a pattern for the query loop or start blank.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ !! hasPatterns && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ openPatternSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsStartingBlank( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nfunction QueryVariationPicker( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\ticon,\n\tlabel,\n} ) {\n\tconst scopeVariations = useScopedBlockVariations( attributes );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tvariations={ scopeVariations }\n\t\t\t\tonSelect={ ( variation ) => {\n\t\t\t\t\tif ( variation.attributes ) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t...variation.attributes,\n\t\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\t\t...variation.attributes.query,\n\t\t\t\t\t\t\t\tpostType:\n\t\t\t\t\t\t\t\t\tattributes.query.postType ||\n\t\t\t\t\t\t\t\t\tvariation.attributes.query.postType,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnamespace: attributes.namespace,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tif ( variation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tvariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/query/edit/query-placeholder.js"],"names":["useSelect","useDispatch","createBlocksFromInnerBlocksTemplate","store","blocksStore","useState","useBlockProps","blockEditorStore","__experimentalBlockVariationPicker","__experimentalGetMatchingVariation","getMatchingVariation","Button","Placeholder","__","useScopedBlockVariations","useBlockNameForPatterns","QueryPlaceholder","attributes","clientId","name","openPatternSelectionModal","setAttributes","isStartingBlank","setIsStartingBlank","blockProps","blockNameForPatterns","blockType","allVariations","hasPatterns","select","getBlockVariations","getBlockType","getBlockRootClientId","getPatternsByBlockTypes","rootClientId","length","matchingVariation","icon","src","label","title","QueryVariationPicker","scopeVariations","replaceInnerBlocks","variation","query","postType","namespace","innerBlocks"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalBlockVariationPicker,\n\t__experimentalGetMatchingVariation as getMatchingVariation,\n} from '@wordpress/block-editor';\nimport { Button, Placeholder } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useScopedBlockVariations, useBlockNameForPatterns } from '../utils';\n\nexport default function QueryPlaceholder( {\n\tattributes,\n\tclientId,\n\tname,\n\topenPatternSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst [ isStartingBlank, setIsStartingBlank ] = useState( false );\n\tconst blockProps = useBlockProps();\n\tconst blockNameForPatterns = useBlockNameForPatterns(\n\t\tclientId,\n\t\tattributes\n\t);\n\n\tconst { blockType, allVariations, hasPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockVariations, getBlockType } = select( blocksStore );\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tallVariations: getBlockVariations( name ),\n\t\t\t\thasPatterns: !! getPatternsByBlockTypes(\n\t\t\t\t\tblockNameForPatterns,\n\t\t\t\t\trootClientId\n\t\t\t\t).length,\n\t\t\t};\n\t\t},\n\t\t[ name, blockNameForPatterns, clientId ]\n\t);\n\n\tconst matchingVariation = getMatchingVariation( attributes, allVariations );\n\tconst icon =\n\t\tmatchingVariation?.icon?.src ||\n\t\tmatchingVariation?.icon ||\n\t\tblockType?.icon?.src;\n\tconst label = matchingVariation?.title || blockType?.title;\n\tif ( isStartingBlank ) {\n\t\treturn (\n\t\t\t<QueryVariationPicker\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Choose a pattern for the query loop or start blank.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ !! hasPatterns && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ openPatternSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsStartingBlank( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nfunction QueryVariationPicker( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\ticon,\n\tlabel,\n} ) {\n\tconst scopeVariations = useScopedBlockVariations( attributes );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tvariations={ scopeVariations }\n\t\t\t\tonSelect={ ( variation ) => {\n\t\t\t\t\tif ( variation.attributes ) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t...variation.attributes,\n\t\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\t\t...variation.attributes.query,\n\t\t\t\t\t\t\t\tpostType:\n\t\t\t\t\t\t\t\t\tattributes.query.postType ||\n\t\t\t\t\t\t\t\t\tvariation.attributes.query.postType,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnamespace: attributes.namespace,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tif ( variation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tvariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -7,7 +7,6 @@ import { __, sprintf } from '@wordpress/i18n';
7
7
  import { useMemo, useState } from '@wordpress/element';
8
8
  import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
9
9
  import { Button, FlexBlock, FlexItem, SelectControl, __experimentalHStack as HStack, __experimentalSpacer as Spacer } from '@wordpress/components';
10
- import { switchToBlockType, getPossibleBlockTransformations } from '@wordpress/blocks';
11
10
  import { store as coreStore } from '@wordpress/core-data';
12
11
  import { store as noticesStore } from '@wordpress/notices';
13
12
  /**
@@ -98,32 +97,14 @@ export function TemplatePartImportControls(_ref) {
98
97
  });
99
98
  const skippedWidgets = new Set();
100
99
  const blocks = widgets.flatMap(widget => {
101
- const block = transformWidgetToBlock(widget);
100
+ const block = transformWidgetToBlock(widget); // Skip the block if we have no matching transformations.
102
101
 
103
- if (block.name !== 'core/legacy-widget') {
104
- return block;
105
- }
106
-
107
- const transforms = getPossibleBlockTransformations([block]).filter(item => {
108
- var _item$transforms, _item$transforms$from, _item$transforms2, _item$transforms2$to;
109
-
110
- // The block without any transformations can't be a wildcard.
111
- if (!item.transforms) {
112
- return true;
113
- }
114
-
115
- const hasWildCardFrom = (_item$transforms = item.transforms) === null || _item$transforms === void 0 ? void 0 : (_item$transforms$from = _item$transforms.from) === null || _item$transforms$from === void 0 ? void 0 : _item$transforms$from.find(from => from.blocks && from.blocks.includes('*'));
116
- const hasWildCardTo = (_item$transforms2 = item.transforms) === null || _item$transforms2 === void 0 ? void 0 : (_item$transforms2$to = _item$transforms2.to) === null || _item$transforms2$to === void 0 ? void 0 : _item$transforms2$to.find(to => to.blocks && to.blocks.includes('*'));
117
- return !hasWildCardFrom && !hasWildCardTo;
118
- }); // Skip the block if we have no matching transformations.
119
-
120
- if (!transforms.length) {
102
+ if (!block) {
121
103
  skippedWidgets.add(widget.id_base);
122
104
  return [];
123
- } // Try transforming the Legacy Widget into a first matching block.
124
-
105
+ }
125
106
 
126
- return switchToBlockType(block, transforms[0].name);
107
+ return block;
127
108
  });
128
109
  await createFromBlocks(blocks,
129
110
  /* translators: %s: name of the widget area */
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/import-controls.js"],"names":["__","sprintf","useMemo","useState","useDispatch","useSelect","useRegistry","Button","FlexBlock","FlexItem","SelectControl","__experimentalHStack","HStack","__experimentalSpacer","Spacer","switchToBlockType","getPossibleBlockTransformations","store","coreStore","noticesStore","useCreateTemplatePartFromBlocks","transformWidgetToBlock","SIDEBARS_QUERY","per_page","_fields","TemplatePartImportControls","area","setAttributes","selectedSidebar","setSelectedSidebar","isBusy","setIsBusy","registry","sidebars","hasResolved","select","getSidebars","hasFinishedResolution","createErrorNotice","createFromBlocks","options","sidebarOptions","filter","widgetArea","id","widgets","length","map","value","label","name","createFromWidgets","event","preventDefault","sidebar","find","getWidgets","resolveSelect","_embed","skippedWidgets","Set","blocks","flatMap","widget","block","transforms","item","hasWildCardFrom","from","includes","hasWildCardTo","to","add","id_base","size","Array","join","type","marginBottom","marginTop"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tButton,\n\tFlexBlock,\n\tFlexItem,\n\tSelectControl,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tgetPossibleBlockTransformations,\n} from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useCreateTemplatePartFromBlocks } from './utils/hooks';\nimport { transformWidgetToBlock } from './utils/transformers';\n\nconst SIDEBARS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,description,status,widgets',\n};\n\nexport function TemplatePartImportControls( { area, setAttributes } ) {\n\tconst [ selectedSidebar, setSelectedSidebar ] = useState( '' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst registry = useRegistry();\n\tconst { sidebars, hasResolved } = useSelect( ( select ) => {\n\t\tconst { getSidebars, hasFinishedResolution } = select( coreStore );\n\n\t\treturn {\n\t\t\tsidebars: getSidebars( SIDEBARS_QUERY ),\n\t\t\thasResolved: hasFinishedResolution( 'getSidebars', [\n\t\t\t\tSIDEBARS_QUERY,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\tconst options = useMemo( () => {\n\t\tconst sidebarOptions = ( sidebars ?? [] )\n\t\t\t.filter(\n\t\t\t\t( widgetArea ) =>\n\t\t\t\t\twidgetArea.id !== 'wp_inactive_widgets' &&\n\t\t\t\t\twidgetArea.widgets.length > 0\n\t\t\t)\n\t\t\t.map( ( widgetArea ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: widgetArea.id,\n\t\t\t\t\tlabel: widgetArea.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\tif ( ! sidebarOptions.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{ value: '', label: __( 'Select widget area' ) },\n\t\t\t...sidebarOptions,\n\t\t];\n\t}, [ sidebars ] );\n\n\t// Render an empty node while data is loading to avoid SlotFill re-positioning bug.\n\t// See: https://github.com/WordPress/gutenberg/issues/15641.\n\tif ( ! hasResolved ) {\n\t\treturn <Spacer marginBottom=\"0\" />;\n\t}\n\n\tif ( hasResolved && ! options.length ) {\n\t\treturn null;\n\t}\n\n\tasync function createFromWidgets( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy || ! selectedSidebar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst sidebar = options.find(\n\t\t\t( { value } ) => value === selectedSidebar\n\t\t);\n\t\tconst { getWidgets } = registry.resolveSelect( coreStore );\n\n\t\t// The widgets API always returns a successful response.\n\t\tconst widgets = await getWidgets( {\n\t\t\tsidebar: sidebar.value,\n\t\t\t_embed: 'about',\n\t\t} );\n\n\t\tconst skippedWidgets = new Set();\n\t\tconst blocks = widgets.flatMap( ( widget ) => {\n\t\t\tconst block = transformWidgetToBlock( widget );\n\n\t\t\tif ( block.name !== 'core/legacy-widget' ) {\n\t\t\t\treturn block;\n\t\t\t}\n\n\t\t\tconst transforms = getPossibleBlockTransformations( [\n\t\t\t\tblock,\n\t\t\t] ).filter( ( item ) => {\n\t\t\t\t// The block without any transformations can't be a wildcard.\n\t\t\t\tif ( ! item.transforms ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tconst hasWildCardFrom = item.transforms?.from?.find(\n\t\t\t\t\t( from ) => from.blocks && from.blocks.includes( '*' )\n\t\t\t\t);\n\t\t\t\tconst hasWildCardTo = item.transforms?.to?.find(\n\t\t\t\t\t( to ) => to.blocks && to.blocks.includes( '*' )\n\t\t\t\t);\n\n\t\t\t\treturn ! hasWildCardFrom && ! hasWildCardTo;\n\t\t\t} );\n\n\t\t\t// Skip the block if we have no matching transformations.\n\t\t\tif ( ! transforms.length ) {\n\t\t\t\tskippedWidgets.add( widget.id_base );\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\t// Try transforming the Legacy Widget into a first matching block.\n\t\t\treturn switchToBlockType( block, transforms[ 0 ].name );\n\t\t} );\n\n\t\tawait createFromBlocks(\n\t\t\tblocks,\n\t\t\t/* translators: %s: name of the widget area */\n\t\t\tsprintf( __( 'Widget area: %s' ), sidebar.label )\n\t\t);\n\n\t\tif ( skippedWidgets.size ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: the list of widgets */\n\t\t\t\t\t__( 'Unable to import the following widgets: %s.' ),\n\t\t\t\t\tArray.from( skippedWidgets ).join( ', ' )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tsetIsBusy( false );\n\t}\n\n\treturn (\n\t\t<Spacer marginBottom=\"4\">\n\t\t\t<HStack as=\"form\" onSubmit={ createFromWidgets }>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Import widget area' ) }\n\t\t\t\t\t\tvalue={ selectedSidebar }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ ( value ) => setSelectedSidebar( value ) }\n\t\t\t\t\t\tdisabled={ ! options.length }\n\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t<FlexItem\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginBottom: '8px',\n\t\t\t\t\t\tmarginTop: 'auto',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy || ! selectedSidebar }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Import' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/import-controls.js"],"names":["__","sprintf","useMemo","useState","useDispatch","useSelect","useRegistry","Button","FlexBlock","FlexItem","SelectControl","__experimentalHStack","HStack","__experimentalSpacer","Spacer","store","coreStore","noticesStore","useCreateTemplatePartFromBlocks","transformWidgetToBlock","SIDEBARS_QUERY","per_page","_fields","TemplatePartImportControls","area","setAttributes","selectedSidebar","setSelectedSidebar","isBusy","setIsBusy","registry","sidebars","hasResolved","select","getSidebars","hasFinishedResolution","createErrorNotice","createFromBlocks","options","sidebarOptions","filter","widgetArea","id","widgets","length","map","value","label","name","createFromWidgets","event","preventDefault","sidebar","find","getWidgets","resolveSelect","_embed","skippedWidgets","Set","blocks","flatMap","widget","block","add","id_base","size","Array","from","join","type","marginBottom","marginTop"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tButton,\n\tFlexBlock,\n\tFlexItem,\n\tSelectControl,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useCreateTemplatePartFromBlocks } from './utils/hooks';\nimport { transformWidgetToBlock } from './utils/transformers';\n\nconst SIDEBARS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,description,status,widgets',\n};\n\nexport function TemplatePartImportControls( { area, setAttributes } ) {\n\tconst [ selectedSidebar, setSelectedSidebar ] = useState( '' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst registry = useRegistry();\n\tconst { sidebars, hasResolved } = useSelect( ( select ) => {\n\t\tconst { getSidebars, hasFinishedResolution } = select( coreStore );\n\n\t\treturn {\n\t\t\tsidebars: getSidebars( SIDEBARS_QUERY ),\n\t\t\thasResolved: hasFinishedResolution( 'getSidebars', [\n\t\t\t\tSIDEBARS_QUERY,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\tconst options = useMemo( () => {\n\t\tconst sidebarOptions = ( sidebars ?? [] )\n\t\t\t.filter(\n\t\t\t\t( widgetArea ) =>\n\t\t\t\t\twidgetArea.id !== 'wp_inactive_widgets' &&\n\t\t\t\t\twidgetArea.widgets.length > 0\n\t\t\t)\n\t\t\t.map( ( widgetArea ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: widgetArea.id,\n\t\t\t\t\tlabel: widgetArea.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\tif ( ! sidebarOptions.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{ value: '', label: __( 'Select widget area' ) },\n\t\t\t...sidebarOptions,\n\t\t];\n\t}, [ sidebars ] );\n\n\t// Render an empty node while data is loading to avoid SlotFill re-positioning bug.\n\t// See: https://github.com/WordPress/gutenberg/issues/15641.\n\tif ( ! hasResolved ) {\n\t\treturn <Spacer marginBottom=\"0\" />;\n\t}\n\n\tif ( hasResolved && ! options.length ) {\n\t\treturn null;\n\t}\n\n\tasync function createFromWidgets( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy || ! selectedSidebar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst sidebar = options.find(\n\t\t\t( { value } ) => value === selectedSidebar\n\t\t);\n\t\tconst { getWidgets } = registry.resolveSelect( coreStore );\n\n\t\t// The widgets API always returns a successful response.\n\t\tconst widgets = await getWidgets( {\n\t\t\tsidebar: sidebar.value,\n\t\t\t_embed: 'about',\n\t\t} );\n\n\t\tconst skippedWidgets = new Set();\n\t\tconst blocks = widgets.flatMap( ( widget ) => {\n\t\t\tconst block = transformWidgetToBlock( widget );\n\n\t\t\t// Skip the block if we have no matching transformations.\n\t\t\tif ( ! block ) {\n\t\t\t\tskippedWidgets.add( widget.id_base );\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn block;\n\t\t} );\n\n\t\tawait createFromBlocks(\n\t\t\tblocks,\n\t\t\t/* translators: %s: name of the widget area */\n\t\t\tsprintf( __( 'Widget area: %s' ), sidebar.label )\n\t\t);\n\n\t\tif ( skippedWidgets.size ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: the list of widgets */\n\t\t\t\t\t__( 'Unable to import the following widgets: %s.' ),\n\t\t\t\t\tArray.from( skippedWidgets ).join( ', ' )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tsetIsBusy( false );\n\t}\n\n\treturn (\n\t\t<Spacer marginBottom=\"4\">\n\t\t\t<HStack as=\"form\" onSubmit={ createFromWidgets }>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Import widget area' ) }\n\t\t\t\t\t\tvalue={ selectedSidebar }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ ( value ) => setSelectedSidebar( value ) }\n\t\t\t\t\t\tdisabled={ ! options.length }\n\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t<FlexItem\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginBottom: '8px',\n\t\t\t\t\t\tmarginTop: 'auto',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy || ! selectedSidebar }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Import' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createBlock, parse } from '@wordpress/blocks';
4
+ import { parse, cloneBlock, createBlock, getGroupingBlockName, getPossibleBlockTransformations, switchToBlockType } from '@wordpress/blocks';
5
5
  /**
6
6
  * Converts a widget entity record into a block.
7
7
  *
@@ -10,31 +10,80 @@ import { createBlock, parse } from '@wordpress/blocks';
10
10
  */
11
11
 
12
12
  export function transformWidgetToBlock(widget) {
13
- if (widget.id_base === 'block') {
14
- const parsedBlocks = parse(widget.instance.raw.content, {
15
- __unstableSkipAutop: true
16
- });
13
+ if (widget.id_base !== 'block') {
14
+ let attributes;
17
15
 
18
- if (!parsedBlocks.length) {
19
- return createBlock('core/paragraph', {}, []);
16
+ if (widget._embedded.about[0].is_multi) {
17
+ attributes = {
18
+ idBase: widget.id_base,
19
+ instance: widget.instance
20
+ };
21
+ } else {
22
+ attributes = {
23
+ id: widget.id
24
+ };
20
25
  }
21
26
 
22
- return parsedBlocks[0];
27
+ return switchLegacyWidgetType(createBlock('core/legacy-widget', attributes));
23
28
  }
24
29
 
25
- let attributes;
26
-
27
- if (widget._embedded.about[0].is_multi) {
28
- attributes = {
29
- idBase: widget.id_base,
30
- instance: widget.instance
31
- };
32
- } else {
33
- attributes = {
34
- id: widget.id
35
- };
30
+ const parsedBlocks = parse(widget.instance.raw.content, {
31
+ __unstableSkipAutop: true
32
+ });
33
+
34
+ if (!parsedBlocks.length) {
35
+ return undefined;
36
+ }
37
+
38
+ const block = parsedBlocks[0];
39
+
40
+ if (block.name === 'core/widget-group') {
41
+ return createBlock(getGroupingBlockName(), undefined, transformInnerBlocks(block.innerBlocks));
42
+ }
43
+
44
+ if (block.innerBlocks.length > 0) {
45
+ return cloneBlock(block, undefined, transformInnerBlocks(block.innerBlocks));
46
+ }
47
+
48
+ return block;
49
+ }
50
+ /**
51
+ * Switch Legacy Widget to the first matching transformation block.
52
+ *
53
+ * @param {Object} block Legacy Widget block object
54
+ * @return {Object|undefined} a block
55
+ */
56
+
57
+ function switchLegacyWidgetType(block) {
58
+ const transforms = getPossibleBlockTransformations([block]).filter(item => {
59
+ var _item$transforms, _item$transforms$from, _item$transforms2, _item$transforms2$to;
60
+
61
+ // The block without any transformations can't be a wildcard.
62
+ if (!item.transforms) {
63
+ return true;
64
+ }
65
+
66
+ const hasWildCardFrom = (_item$transforms = item.transforms) === null || _item$transforms === void 0 ? void 0 : (_item$transforms$from = _item$transforms.from) === null || _item$transforms$from === void 0 ? void 0 : _item$transforms$from.find(from => from.blocks && from.blocks.includes('*'));
67
+ const hasWildCardTo = (_item$transforms2 = item.transforms) === null || _item$transforms2 === void 0 ? void 0 : (_item$transforms2$to = _item$transforms2.to) === null || _item$transforms2$to === void 0 ? void 0 : _item$transforms2$to.find(to => to.blocks && to.blocks.includes('*')); // Skip wildcard transformations.
68
+
69
+ return !hasWildCardFrom && !hasWildCardTo;
70
+ });
71
+
72
+ if (!transforms.length) {
73
+ return undefined;
36
74
  }
37
75
 
38
- return createBlock('core/legacy-widget', attributes, []);
76
+ return switchToBlockType(block, transforms[0].name);
77
+ }
78
+
79
+ function transformInnerBlocks() {
80
+ let innerBlocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
81
+ return innerBlocks.flatMap(block => {
82
+ if (block.name === 'core/legacy-widget') {
83
+ return switchLegacyWidgetType(block);
84
+ }
85
+
86
+ return createBlock(block.name, block.attributes, transformInnerBlocks(block.innerBlocks));
87
+ }).filter(block => !!block);
39
88
  }
40
89
  //# sourceMappingURL=transformers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/utils/transformers.js"],"names":["createBlock","parse","transformWidgetToBlock","widget","id_base","parsedBlocks","instance","raw","content","__unstableSkipAutop","length","attributes","_embedded","about","is_multi","idBase","id"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,KAAtB,QAAmC,mBAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,sBAAT,CAAiCC,MAAjC,EAA0C;AAChD,MAAKA,MAAM,CAACC,OAAP,KAAmB,OAAxB,EAAkC;AACjC,UAAMC,YAAY,GAAGJ,KAAK,CAAEE,MAAM,CAACG,QAAP,CAAgBC,GAAhB,CAAoBC,OAAtB,EAA+B;AACxDC,MAAAA,mBAAmB,EAAE;AADmC,KAA/B,CAA1B;;AAGA,QAAK,CAAEJ,YAAY,CAACK,MAApB,EAA6B;AAC5B,aAAOV,WAAW,CAAE,gBAAF,EAAoB,EAApB,EAAwB,EAAxB,CAAlB;AACA;;AAED,WAAOK,YAAY,CAAE,CAAF,CAAnB;AACA;;AAED,MAAIM,UAAJ;;AACA,MAAKR,MAAM,CAACS,SAAP,CAAiBC,KAAjB,CAAwB,CAAxB,EAA4BC,QAAjC,EAA4C;AAC3CH,IAAAA,UAAU,GAAG;AACZI,MAAAA,MAAM,EAAEZ,MAAM,CAACC,OADH;AAEZE,MAAAA,QAAQ,EAAEH,MAAM,CAACG;AAFL,KAAb;AAIA,GALD,MAKO;AACNK,IAAAA,UAAU,GAAG;AACZK,MAAAA,EAAE,EAAEb,MAAM,CAACa;AADC,KAAb;AAGA;;AAED,SAAOhB,WAAW,CAAE,oBAAF,EAAwBW,UAAxB,EAAoC,EAApC,CAAlB;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn createBlock( 'core/paragraph', {}, [] );\n\t\t}\n\n\t\treturn parsedBlocks[ 0 ];\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn createBlock( 'core/legacy-widget', attributes, [] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/utils/transformers.js"],"names":["parse","cloneBlock","createBlock","getGroupingBlockName","getPossibleBlockTransformations","switchToBlockType","transformWidgetToBlock","widget","id_base","attributes","_embedded","about","is_multi","idBase","instance","id","switchLegacyWidgetType","parsedBlocks","raw","content","__unstableSkipAutop","length","undefined","block","name","transformInnerBlocks","innerBlocks","transforms","filter","item","hasWildCardFrom","from","find","blocks","includes","hasWildCardTo","to","flatMap"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tparse,\n\tcloneBlock,\n\tcreateBlock,\n\tgetGroupingBlockName,\n\tgetPossibleBlockTransformations,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base !== 'block' ) {\n\t\tlet attributes;\n\t\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\t\tattributes = {\n\t\t\t\tidBase: widget.id_base,\n\t\t\t\tinstance: widget.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tattributes = {\n\t\t\t\tid: widget.id,\n\t\t\t};\n\t\t}\n\n\t\treturn switchLegacyWidgetType(\n\t\t\tcreateBlock( 'core/legacy-widget', attributes )\n\t\t);\n\t}\n\n\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t__unstableSkipAutop: true,\n\t} );\n\n\tif ( ! parsedBlocks.length ) {\n\t\treturn undefined;\n\t}\n\n\tconst block = parsedBlocks[ 0 ];\n\n\tif ( block.name === 'core/widget-group' ) {\n\t\treturn createBlock(\n\t\t\tgetGroupingBlockName(),\n\t\t\tundefined,\n\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t);\n\t}\n\n\tif ( block.innerBlocks.length > 0 ) {\n\t\treturn cloneBlock(\n\t\t\tblock,\n\t\t\tundefined,\n\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t);\n\t}\n\n\treturn block;\n}\n\n/**\n * Switch Legacy Widget to the first matching transformation block.\n *\n * @param {Object} block Legacy Widget block object\n * @return {Object|undefined} a block\n */\nfunction switchLegacyWidgetType( block ) {\n\tconst transforms = getPossibleBlockTransformations( [ block ] ).filter(\n\t\t( item ) => {\n\t\t\t// The block without any transformations can't be a wildcard.\n\t\t\tif ( ! item.transforms ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst hasWildCardFrom = item.transforms?.from?.find(\n\t\t\t\t( from ) => from.blocks && from.blocks.includes( '*' )\n\t\t\t);\n\t\t\tconst hasWildCardTo = item.transforms?.to?.find(\n\t\t\t\t( to ) => to.blocks && to.blocks.includes( '*' )\n\t\t\t);\n\n\t\t\t// Skip wildcard transformations.\n\t\t\treturn ! hasWildCardFrom && ! hasWildCardTo;\n\t\t}\n\t);\n\n\tif ( ! transforms.length ) {\n\t\treturn undefined;\n\t}\n\n\treturn switchToBlockType( block, transforms[ 0 ].name );\n}\n\nfunction transformInnerBlocks( innerBlocks = [] ) {\n\treturn innerBlocks\n\t\t.flatMap( ( block ) => {\n\t\t\tif ( block.name === 'core/legacy-widget' ) {\n\t\t\t\treturn switchLegacyWidgetType( block );\n\t\t\t}\n\n\t\t\treturn createBlock(\n\t\t\t\tblock.name,\n\t\t\t\tblock.attributes,\n\t\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t\t);\n\t\t} )\n\t\t.filter( ( block ) => !! block );\n}\n"]}
@@ -1877,7 +1877,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1877
1877
  opacity: 1;
1878
1878
  }
1879
1879
  }
1880
- .wp-block-navigation .components-spinner {
1880
+ .wp-block-navigation__loading-indicator-container {
1881
1881
  padding: 8px 12px;
1882
1882
  }
1883
1883
 
@@ -2181,6 +2181,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2181
2181
  margin-right: 0;
2182
2182
  }
2183
2183
 
2184
+ .wp-block-page-list__loading-indicator-container {
2185
+ padding: 8px 12px;
2186
+ }
2187
+
2184
2188
  .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus {
2185
2189
  min-height: auto !important;
2186
2190
  }
@@ -1885,7 +1885,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1885
1885
  opacity: 1;
1886
1886
  }
1887
1887
  }
1888
- .wp-block-navigation .components-spinner {
1888
+ .wp-block-navigation__loading-indicator-container {
1889
1889
  padding: 8px 12px;
1890
1890
  }
1891
1891
 
@@ -2189,6 +2189,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2189
2189
  margin-left: 0;
2190
2190
  }
2191
2191
 
2192
+ .wp-block-page-list__loading-indicator-container {
2193
+ padding: 8px 12px;
2194
+ }
2195
+
2192
2196
  .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus {
2193
2197
  min-height: auto !important;
2194
2198
  }
@@ -502,7 +502,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
502
502
  opacity: 1;
503
503
  }
504
504
  }
505
- .wp-block-navigation .components-spinner {
505
+ .wp-block-navigation__loading-indicator-container {
506
506
  padding: 8px 12px;
507
507
  }
508
508
 
@@ -502,7 +502,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
502
502
  opacity: 1;
503
503
  }
504
504
  }
505
- .wp-block-navigation .components-spinner {
505
+ .wp-block-navigation__loading-indicator-container {
506
506
  padding: 8px 12px;
507
507
  }
508
508
 
@@ -129,4 +129,8 @@
129
129
 
130
130
  .wp-block-page-list .components-notice {
131
131
  margin-right: 0;
132
+ }
133
+
134
+ .wp-block-page-list__loading-indicator-container {
135
+ padding: 8px 12px;
132
136
  }
@@ -129,4 +129,8 @@
129
129
 
130
130
  .wp-block-page-list .components-notice {
131
131
  margin-left: 0;
132
+ }
133
+
134
+ .wp-block-page-list__loading-indicator-container {
135
+ padding: 8px 12px;
132
136
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "8.3.6",
3
+ "version": "8.3.7",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -35,7 +35,7 @@
35
35
  "@wordpress/api-fetch": "^6.23.1",
36
36
  "@wordpress/autop": "^3.26.1",
37
37
  "@wordpress/blob": "^3.26.1",
38
- "@wordpress/block-editor": "^11.3.6",
38
+ "@wordpress/block-editor": "^11.3.7",
39
39
  "@wordpress/blocks": "^12.3.3",
40
40
  "@wordpress/components": "^23.3.5",
41
41
  "@wordpress/compose": "^6.3.3",
@@ -54,7 +54,7 @@
54
54
  "@wordpress/notices": "^3.26.3",
55
55
  "@wordpress/primitives": "^3.24.2",
56
56
  "@wordpress/private-apis": "^0.8.1",
57
- "@wordpress/reusable-blocks": "^4.3.6",
57
+ "@wordpress/reusable-blocks": "^4.3.7",
58
58
  "@wordpress/rich-text": "^6.3.3",
59
59
  "@wordpress/server-side-render": "^4.3.5",
60
60
  "@wordpress/url": "^3.27.1",
@@ -77,5 +77,5 @@
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  },
80
- "gitHead": "35f10c183655e9196d4ea12b8fa499a8ecbb7b6a"
80
+ "gitHead": "d14fea64bd9ad9d2d86047936974dbed39a5b5b3"
81
81
  }
@@ -112,7 +112,8 @@ export default function useOutdentListItem( clientId ) {
112
112
  getBlockIndex( parentListItemId ) + 1
113
113
  );
114
114
  if ( ! getBlockOrder( parentListId ).length ) {
115
- removeBlock( parentListId );
115
+ const shouldSelectParent = false;
116
+ removeBlock( parentListId, shouldSelectParent );
116
117
  }
117
118
  } );
118
119
  }, [] ),
@@ -850,7 +850,9 @@ function Navigation( {
850
850
 
851
851
  { isLoading && (
852
852
  <TagName { ...blockProps }>
853
- <Spinner className="wp-block-navigation__loading-indicator" />
853
+ <div className="wp-block-navigation__loading-indicator-container">
854
+ <Spinner className="wp-block-navigation__loading-indicator" />
855
+ </div>
854
856
  </TagName>
855
857
  ) }
856
858
 
@@ -29,6 +29,9 @@ const ALLOWED_BLOCKS = [
29
29
 
30
30
  const DEFAULT_BLOCK = {
31
31
  name: 'core/navigation-link',
32
+ attributes: {
33
+ type: 'page',
34
+ },
32
35
  };
33
36
 
34
37
  export default function NavigationInnerBlocks( {
@@ -89,9 +89,7 @@ const MenuInspectorControls = ( props ) => {
89
89
 
90
90
  return (
91
91
  <InspectorControls group="list">
92
- <PanelBody
93
- title={ process.env.IS_GUTENBERG_PLUGIN ? null : __( 'Menu' ) }
94
- >
92
+ <PanelBody title={ null }>
95
93
  <HStack className="wp-block-navigation-off-canvas-editor__header">
96
94
  <Heading
97
95
  className="wp-block-navigation-off-canvas-editor__title"
@@ -39,8 +39,7 @@
39
39
  }
40
40
 
41
41
  // Only show the flyout on hover if the parent menu item is selected.
42
- .wp-block-navigation:not(.is-selected):not(.has-child-selected)
43
- .has-child:hover {
42
+ .wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover {
44
43
  > .wp-block-navigation__submenu-container {
45
44
  opacity: 0;
46
45
  visibility: hidden;
@@ -49,6 +48,7 @@
49
48
 
50
49
  // Styles for submenu flyout.
51
50
  .has-child {
51
+
52
52
  &.is-selected,
53
53
  &.has-child-selected {
54
54
  > .wp-block-navigation__submenu-container {
@@ -76,8 +76,7 @@
76
76
  flex-direction: column;
77
77
  }
78
78
 
79
- .is-dragging-components-draggable
80
- .wp-block-navigation-link > .wp-block-navigation__container {
79
+ .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container {
81
80
  // Set opacity to 1 to still be able to show the draggable chip.
82
81
  opacity: 1;
83
82
  visibility: hidden;
@@ -117,6 +116,7 @@
117
116
  */
118
117
 
119
118
  $colors-selector-size: 22px;
119
+
120
120
  .block-library-colors-selector {
121
121
  width: auto;
122
122
 
@@ -151,7 +151,7 @@ $colors-selector-size: 22px;
151
151
  min-width: $colors-selector-size;
152
152
  height: $colors-selector-size;
153
153
  min-height: $colors-selector-size;
154
- line-height: ( $colors-selector-size - 2 );
154
+ line-height: ($colors-selector-size - 2);
155
155
  padding: 2px;
156
156
 
157
157
  > svg {
@@ -161,6 +161,7 @@ $colors-selector-size: 22px;
161
161
 
162
162
  // Styling icon color.
163
163
  &.has-text-color {
164
+
164
165
  > svg,
165
166
  > svg path {
166
167
  color: inherit;
@@ -171,6 +172,7 @@ $colors-selector-size: 22px;
171
172
 
172
173
  // Colors Selector Popover.
173
174
  $color-control-label-height: 20px;
175
+
174
176
  .block-library-colors-selector__popover {
175
177
  .color-palette-controller-container {
176
178
  padding: 16px;
@@ -222,13 +224,16 @@ $color-control-label-height: 20px;
222
224
  0% {
223
225
  opacity: 1;
224
226
  }
227
+
225
228
  50% {
226
229
  opacity: 0.5;
227
230
  }
231
+
228
232
  100% {
229
233
  opacity: 1;
230
234
  }
231
235
  }
236
+
232
237
  // Unstyle some inherited placeholder component styles.
233
238
  .components-placeholder.wp-block-navigation-placeholder {
234
239
  outline: none;
@@ -271,6 +276,7 @@ $color-control-label-height: 20px;
271
276
  // against any background color.
272
277
  color: currentColor;
273
278
  background: transparent;
279
+
274
280
  &::before {
275
281
  content: "";
276
282
  display: block;
@@ -338,6 +344,7 @@ $color-control-label-height: 20px;
338
344
  // Hide the navigation indicator when in small contexts.
339
345
  .is-small &,
340
346
  .is-medium & {
347
+
341
348
  .wp-block-navigation-placeholder__actions__indicator,
342
349
  .wp-block-navigation-placeholder__actions__indicator + hr {
343
350
  display: none;
@@ -427,15 +434,14 @@ $color-control-label-height: 20px;
427
434
  }
428
435
  }
429
436
  }
437
+
430
438
  // Emulate the fullscreen editing inside the editor.
431
439
  // Most of this can be removed when the iframe lands.
432
440
 
433
441
  // When not fullscreen.
434
442
  .wp-block-navigation__responsive-container.is-menu-open {
435
443
  position: fixed;
436
- top:
437
- $admin-bar-height-big + $header-height + $block-toolbar-height +
438
- $border-width;
444
+ top: $admin-bar-height-big + $header-height + $block-toolbar-height + $border-width;
439
445
 
440
446
  @include break-medium() {
441
447
  top: $admin-bar-height + $header-height + $border-width;
@@ -445,6 +451,7 @@ $color-control-label-height: 20px;
445
451
  @include break-medium() {
446
452
  left: $admin-sidebar-width-collapsed;
447
453
  }
454
+
448
455
  @include break-large() {
449
456
  left: $admin-sidebar-width;
450
457
  }
@@ -452,17 +459,13 @@ $color-control-label-height: 20px;
452
459
 
453
460
  .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open {
454
461
  @include break-medium() {
455
- top:
456
- $admin-bar-height + $header-height + $block-toolbar-height +
457
- $border-width;
462
+ top: $admin-bar-height + $header-height + $block-toolbar-height + $border-width;
458
463
  }
459
464
  }
460
465
 
461
466
  .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,
462
467
  .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open {
463
- top:
464
- $admin-bar-height + $header-height + $block-toolbar-height +
465
- $border-width;
468
+ top: $admin-bar-height + $header-height + $block-toolbar-height + $border-width;
466
469
  }
467
470
 
468
471
  .is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open {
@@ -473,9 +476,7 @@ $color-control-label-height: 20px;
473
476
  .is-fullscreen-mode {
474
477
  .wp-block-navigation__responsive-container.is-menu-open {
475
478
  left: 0; // Unset the value from non fullscreen mode.
476
- top:
477
- $admin-bar-height-big + $header-height + $block-toolbar-height +
478
- $border-width;
479
+ top: $admin-bar-height-big + $header-height + $block-toolbar-height + $border-width;
479
480
 
480
481
  @include break-medium() {
481
482
  top: $header-height + $border-width;
@@ -495,8 +496,7 @@ $color-control-label-height: 20px;
495
496
  }
496
497
 
497
498
  // The iframe makes these rules a lot simpler.
498
- body.editor-styles-wrapper
499
- .wp-block-navigation__responsive-container.is-menu-open {
499
+ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open {
500
500
  top: 0;
501
501
  right: 0;
502
502
  bottom: 0;
@@ -536,6 +536,7 @@ body.editor-styles-wrapper
536
536
  .components-heading.wp-block-navigation-off-canvas-editor__title {
537
537
  margin: 0;
538
538
  }
539
+
539
540
  .wp-block-navigation-off-canvas-editor__header {
540
541
  margin-bottom: $grid-unit-10;
541
542
  }
@@ -552,6 +553,7 @@ body.editor-styles-wrapper
552
553
  0% {
553
554
  opacity: 0;
554
555
  }
556
+
555
557
  100% {
556
558
  opacity: 1;
557
559
  }
@@ -559,7 +561,7 @@ body.editor-styles-wrapper
559
561
 
560
562
  // Space spinner to give it breathing
561
563
  // room when block is selected and has focus outline.
562
- .wp-block-navigation .components-spinner {
564
+ .wp-block-navigation__loading-indicator-container {
563
565
  padding: $grid-unit-10 $grid-unit-15;
564
566
  }
565
567
 
@@ -571,6 +573,7 @@ body.editor-styles-wrapper
571
573
  0% {
572
574
  opacity: 1;
573
575
  }
576
+
574
577
  100% {
575
578
  opacity: 0.5;
576
579
  }