@wordpress/block-editor 10.0.6 → 10.0.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.
@@ -161,7 +161,8 @@ const BlockInspector = _ref5 => {
161
161
  getSelectedBlockClientId,
162
162
  getSelectedBlockCount,
163
163
  getBlockName,
164
- __unstableGetContentLockingParent
164
+ __unstableGetContentLockingParent,
165
+ getTemplateLock
165
166
  } = select(_store.store);
166
167
 
167
168
  const _selectedBlockClientId = getSelectedBlockClientId();
@@ -175,7 +176,7 @@ const BlockInspector = _ref5 => {
175
176
  selectedBlockClientId: _selectedBlockClientId,
176
177
  selectedBlockName: _selectedBlockName,
177
178
  blockType: _blockType,
178
- topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId)
179
+ topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' ? _selectedBlockClientId : undefined)
179
180
  };
180
181
  }, []);
181
182
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["useContentBlocks","blockTypes","block","contenBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","blockEditorStore","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","blocksStore","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","_selectedBlockClientId","_selectedBlockName","_blockType","isSelectedBlockUnregistered","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles","length","AdvancedControls","slot","InspectorAdvancedControls","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contenBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contenBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock: __unstableGetContentLockingParent(\n\t\t\t\t_selectedBlockClientId\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["useContentBlocks","blockTypes","block","contenBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","blockEditorStore","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","blocksStore","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","isSelectedBlockUnregistered","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles","length","AdvancedControls","slot","InspectorAdvancedControls","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contenBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contenBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
@@ -48,7 +48,8 @@ var _store = require("../../store");
48
48
  */
49
49
  function useInnerBlockTemplateSync(clientId, template, templateLock, templateInsertUpdatesSelection) {
50
50
  const {
51
- getSelectedBlocksInitialCaretPosition
51
+ getSelectedBlocksInitialCaretPosition,
52
+ isBlockSelected
52
53
  } = (0, _data.useSelect)(_store.store);
53
54
  const {
54
55
  replaceInnerBlocks
@@ -79,7 +80,7 @@ function useInnerBlockTemplateSync(clientId, template, templateLock, templateIns
79
80
  const nextBlocks = (0, _blocks.synchronizeBlocksWithTemplate)(currentInnerBlocks, template);
80
81
 
81
82
  if (!(0, _lodash.isEqual)(nextBlocks, currentInnerBlocks)) {
82
- replaceInnerBlocks(clientId, nextBlocks, currentInnerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0, // This ensures the "initialPosition" doesn't change when applying the template
83
+ replaceInnerBlocks(clientId, nextBlocks, currentInnerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0 && isBlockSelected(clientId), // This ensures the "initialPosition" doesn't change when applying the template
83
84
  // If we're supposed to focus the block, we'll focus the first inner block
84
85
  // otherwise, we won't apply any auto-focus.
85
86
  // This ensures for instance that the focus stays in the inserter when inserting the "buttons" block.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-inner-block-template-sync.js"],"names":["useInnerBlockTemplateSync","clientId","template","templateLock","templateInsertUpdatesSelection","getSelectedBlocksInitialCaretPosition","blockEditorStore","replaceInnerBlocks","innerBlocks","select","getBlocks","existingTemplate","window","queueMicrotask","currentInnerBlocks","shouldApplyTemplate","length","hasTemplateChanged","current","nextBlocks"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,yBAAT,CACdC,QADc,EAEdC,QAFc,EAGdC,YAHc,EAIdC,8BAJc,EAKb;AACD,QAAM;AAAEC,IAAAA;AAAF,MACL,qBAAWC,YAAX,CADD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaD,YAAb,CAA/B;AACA,QAAME,WAAW,GAAG,qBACjBC,MAAF,IAAcA,MAAM,CAAEH,YAAF,CAAN,CAA2BI,SAA3B,CAAsCT,QAAtC,CADK,EAEnB,CAAEA,QAAF,CAFmB,CAApB;AAIA,QAAM;AAAES,IAAAA;AAAF,MAAgB,qBAAWJ,YAAX,CAAtB,CARC,CAUD;;AACA,QAAMK,gBAAgB,GAAG,qBAAQ,IAAR,CAAzB;AACA,gCAAiB,MAAM;AACtB;AACA;AACA;AACA;AACAC,IAAAA,MAAM,CAACC,cAAP,CAAuB,MAAM;AAC5B;AACA;AACA,YAAMC,kBAAkB,GAAGJ,SAAS,CAAET,QAAF,CAApC;AACA,YAAMc,mBAAmB,GACxBD,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACAb,YAAY,KAAK,KADjB,IAEAA,YAAY,KAAK,aAHlB;AAKA,YAAMc,kBAAkB,GAAG,CAAE,qBAC5Bf,QAD4B,EAE5BS,gBAAgB,CAACO,OAFW,CAA7B;;AAKA,UAAK,CAAEH,mBAAF,IAAyB,CAAEE,kBAAhC,EAAqD;AACpD;AACA;;AAEDN,MAAAA,gBAAgB,CAACO,OAAjB,GAA2BhB,QAA3B;AACA,YAAMiB,UAAU,GAAG,2CAClBL,kBADkB,EAElBZ,QAFkB,CAAnB;;AAKA,UAAK,CAAE,qBAASiB,UAAT,EAAqBL,kBAArB,CAAP,EAAmD;AAClDP,QAAAA,kBAAkB,CACjBN,QADiB,EAEjBkB,UAFiB,EAGjBL,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACCZ,8BADD,IAECe,UAAU,CAACH,MAAX,KAAsB,CALN,EAMjB;AACA;AACA;AACA;AACAX,QAAAA,qCAAqC,EAVpB,CAAlB;AAYA;AACD,KAtCD;AAuCA,GA5CD,EA4CG,CAAEG,WAAF,EAAeN,QAAf,EAAyBC,YAAzB,EAAuCF,QAAvC,CA5CH;AA6CA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\" or templateLock = \"contentOnly\"),\n * then we replace the inner blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId The block client ID.\n * @param {Object} template The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n * example, if the template lock is set to \"all\",\n * then the inner blocks will stay in sync with the\n * template. If not defined or set to false, then\n * the inner blocks will not be synchronized with\n * the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n * block-editor selection state when inner blocks\n * are replaced after template synchronization.\n */\nexport default function useInnerBlockTemplateSync(\n\tclientId,\n\ttemplate,\n\ttemplateLock,\n\ttemplateInsertUpdatesSelection\n) {\n\tconst { getSelectedBlocksInitialCaretPosition } =\n\t\tuseSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst innerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\n\t// Maintain a reference to the previous value so we can do a deep equality check.\n\tconst existingTemplate = useRef( null );\n\tuseLayoutEffect( () => {\n\t\t// There's an implicit dependency between useInnerBlockTemplateSync and useNestedSettingsUpdate\n\t\t// The former needs to happen after the latter and since the latter is using microtasks to batch updates (performance optimization),\n\t\t// we need to schedule this one in a microtask as well.\n\t\t// Exemple: If you remove queueMicrotask here, ctrl + click to insert quote block won't close the inserter.\n\t\twindow.queueMicrotask( () => {\n\t\t\t// Only synchronize innerBlocks with template if innerBlocks are empty\n\t\t\t// or a locking \"all\" or \"contentOnly\" exists directly on the block.\n\t\t\tconst currentInnerBlocks = getBlocks( clientId );\n\t\t\tconst shouldApplyTemplate =\n\t\t\t\tcurrentInnerBlocks.length === 0 ||\n\t\t\t\ttemplateLock === 'all' ||\n\t\t\t\ttemplateLock === 'contentOnly';\n\n\t\t\tconst hasTemplateChanged = ! isEqual(\n\t\t\t\ttemplate,\n\t\t\t\texistingTemplate.current\n\t\t\t);\n\n\t\t\tif ( ! shouldApplyTemplate || ! hasTemplateChanged ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\texistingTemplate.current = template;\n\t\t\tconst nextBlocks = synchronizeBlocksWithTemplate(\n\t\t\t\tcurrentInnerBlocks,\n\t\t\t\ttemplate\n\t\t\t);\n\n\t\t\tif ( ! isEqual( nextBlocks, currentInnerBlocks ) ) {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tclientId,\n\t\t\t\t\tnextBlocks,\n\t\t\t\t\tcurrentInnerBlocks.length === 0 &&\n\t\t\t\t\t\ttemplateInsertUpdatesSelection &&\n\t\t\t\t\t\tnextBlocks.length !== 0,\n\t\t\t\t\t// This ensures the \"initialPosition\" doesn't change when applying the template\n\t\t\t\t\t// If we're supposed to focus the block, we'll focus the first inner block\n\t\t\t\t\t// otherwise, we won't apply any auto-focus.\n\t\t\t\t\t// This ensures for instance that the focus stays in the inserter when inserting the \"buttons\" block.\n\t\t\t\t\tgetSelectedBlocksInitialCaretPosition()\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}, [ innerBlocks, template, templateLock, clientId ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-inner-block-template-sync.js"],"names":["useInnerBlockTemplateSync","clientId","template","templateLock","templateInsertUpdatesSelection","getSelectedBlocksInitialCaretPosition","isBlockSelected","blockEditorStore","replaceInnerBlocks","innerBlocks","select","getBlocks","existingTemplate","window","queueMicrotask","currentInnerBlocks","shouldApplyTemplate","length","hasTemplateChanged","current","nextBlocks"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,yBAAT,CACdC,QADc,EAEdC,QAFc,EAGdC,YAHc,EAIdC,8BAJc,EAKb;AACD,QAAM;AAAEC,IAAAA,qCAAF;AAAyCC,IAAAA;AAAzC,MACL,qBAAWC,YAAX,CADD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaD,YAAb,CAA/B;AACA,QAAME,WAAW,GAAG,qBACjBC,MAAF,IAAcA,MAAM,CAAEH,YAAF,CAAN,CAA2BI,SAA3B,CAAsCV,QAAtC,CADK,EAEnB,CAAEA,QAAF,CAFmB,CAApB;AAIA,QAAM;AAAEU,IAAAA;AAAF,MAAgB,qBAAWJ,YAAX,CAAtB,CARC,CAUD;;AACA,QAAMK,gBAAgB,GAAG,qBAAQ,IAAR,CAAzB;AACA,gCAAiB,MAAM;AACtB;AACA;AACA;AACA;AACAC,IAAAA,MAAM,CAACC,cAAP,CAAuB,MAAM;AAC5B;AACA;AACA,YAAMC,kBAAkB,GAAGJ,SAAS,CAAEV,QAAF,CAApC;AACA,YAAMe,mBAAmB,GACxBD,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACAd,YAAY,KAAK,KADjB,IAEAA,YAAY,KAAK,aAHlB;AAKA,YAAMe,kBAAkB,GAAG,CAAE,qBAC5BhB,QAD4B,EAE5BU,gBAAgB,CAACO,OAFW,CAA7B;;AAKA,UAAK,CAAEH,mBAAF,IAAyB,CAAEE,kBAAhC,EAAqD;AACpD;AACA;;AAEDN,MAAAA,gBAAgB,CAACO,OAAjB,GAA2BjB,QAA3B;AACA,YAAMkB,UAAU,GAAG,2CAClBL,kBADkB,EAElBb,QAFkB,CAAnB;;AAKA,UAAK,CAAE,qBAASkB,UAAT,EAAqBL,kBAArB,CAAP,EAAmD;AAClDP,QAAAA,kBAAkB,CACjBP,QADiB,EAEjBmB,UAFiB,EAGjBL,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACCb,8BADD,IAECgB,UAAU,CAACH,MAAX,KAAsB,CAFvB,IAGCX,eAAe,CAAEL,QAAF,CANC,EAOjB;AACA;AACA;AACA;AACAI,QAAAA,qCAAqC,EAXpB,CAAlB;AAaA;AACD,KAvCD;AAwCA,GA7CD,EA6CG,CAAEI,WAAF,EAAeP,QAAf,EAAyBC,YAAzB,EAAuCF,QAAvC,CA7CH;AA8CA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\" or templateLock = \"contentOnly\"),\n * then we replace the inner blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId The block client ID.\n * @param {Object} template The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n * example, if the template lock is set to \"all\",\n * then the inner blocks will stay in sync with the\n * template. If not defined or set to false, then\n * the inner blocks will not be synchronized with\n * the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n * block-editor selection state when inner blocks\n * are replaced after template synchronization.\n */\nexport default function useInnerBlockTemplateSync(\n\tclientId,\n\ttemplate,\n\ttemplateLock,\n\ttemplateInsertUpdatesSelection\n) {\n\tconst { getSelectedBlocksInitialCaretPosition, isBlockSelected } =\n\t\tuseSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst innerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\n\t// Maintain a reference to the previous value so we can do a deep equality check.\n\tconst existingTemplate = useRef( null );\n\tuseLayoutEffect( () => {\n\t\t// There's an implicit dependency between useInnerBlockTemplateSync and useNestedSettingsUpdate\n\t\t// The former needs to happen after the latter and since the latter is using microtasks to batch updates (performance optimization),\n\t\t// we need to schedule this one in a microtask as well.\n\t\t// Exemple: If you remove queueMicrotask here, ctrl + click to insert quote block won't close the inserter.\n\t\twindow.queueMicrotask( () => {\n\t\t\t// Only synchronize innerBlocks with template if innerBlocks are empty\n\t\t\t// or a locking \"all\" or \"contentOnly\" exists directly on the block.\n\t\t\tconst currentInnerBlocks = getBlocks( clientId );\n\t\t\tconst shouldApplyTemplate =\n\t\t\t\tcurrentInnerBlocks.length === 0 ||\n\t\t\t\ttemplateLock === 'all' ||\n\t\t\t\ttemplateLock === 'contentOnly';\n\n\t\t\tconst hasTemplateChanged = ! isEqual(\n\t\t\t\ttemplate,\n\t\t\t\texistingTemplate.current\n\t\t\t);\n\n\t\t\tif ( ! shouldApplyTemplate || ! hasTemplateChanged ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\texistingTemplate.current = template;\n\t\t\tconst nextBlocks = synchronizeBlocksWithTemplate(\n\t\t\t\tcurrentInnerBlocks,\n\t\t\t\ttemplate\n\t\t\t);\n\n\t\t\tif ( ! isEqual( nextBlocks, currentInnerBlocks ) ) {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tclientId,\n\t\t\t\t\tnextBlocks,\n\t\t\t\t\tcurrentInnerBlocks.length === 0 &&\n\t\t\t\t\t\ttemplateInsertUpdatesSelection &&\n\t\t\t\t\t\tnextBlocks.length !== 0 &&\n\t\t\t\t\t\tisBlockSelected( clientId ),\n\t\t\t\t\t// This ensures the \"initialPosition\" doesn't change when applying the template\n\t\t\t\t\t// If we're supposed to focus the block, we'll focus the first inner block\n\t\t\t\t\t// otherwise, we won't apply any auto-focus.\n\t\t\t\t\t// This ensures for instance that the focus stays in the inserter when inserting the \"buttons\" block.\n\t\t\t\t\tgetSelectedBlocksInitialCaretPosition()\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}, [ innerBlocks, template, templateLock, clientId ] );\n}\n"]}
@@ -167,7 +167,8 @@ function SpacingInputControl(_ref) {
167
167
  className: "components-spacing-sizes-control__custom-value-input",
168
168
  style: {
169
169
  gridColumn: '1'
170
- }
170
+ },
171
+ size: '__unstable-large'
171
172
  }), (0, _element.createElement)(_components.RangeControl, {
172
173
  value: customRangeValue,
173
174
  min: 0,
@@ -208,7 +209,8 @@ function SpacingInputControl(_ref) {
208
209
  options: options,
209
210
  label: ariaLabel,
210
211
  hideLabelFromVision: true,
211
- __nextUnconstrainedWidth: true
212
+ __nextUnconstrainedWidth: true,
213
+ size: '__unstable-large'
212
214
  }));
213
215
  }
214
216
  //# sourceMappingURL=spacing-input-control.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/spacing-input-control.js"],"names":["SpacingInputControl","spacingSizes","value","side","onChange","isMixed","type","minimumCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","blockEditorStore","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","units","availableUnits","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseInt","getNewCustomValue","newSize","isNumeric","isNaN","parseFloat","nextValue","getNewPresetValue","controlType","handleCustomValueSliderChange","next","join","allPlaceholder","currentValueHint","options","map","index","key","marks","label","ariaLabel","LABELS","toLowerCase","showHint","settings","gridColumn","event","nativeEvent","offsetX","find","option","selection","selectedItem"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBaseControl,\n\tButton,\n\tRangeControl,\n\tCustomSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from './utils';\n\nexport default function SpacingInputControl( {\n\tspacingSizes,\n\tvalue,\n\tside,\n\tonChange,\n\tisMixed = false,\n\ttype,\n\tminimumCustomValue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseInt( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst currentValueHint = ! isMixed\n\t\t? customTooltipContent( currentValue )\n\t\t: __( 'Mixed' );\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tLABELS[ side ],\n\t\ttype?.toLowerCase()\n\t);\n\n\tconst showHint =\n\t\tshowRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tcurrentValueHint !== undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ side !== 'all' && (\n\t\t\t\t<HStack className=\"components-spacing-sizes-control__side-labels\">\n\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__side-label\">\n\t\t\t\t\t\t{ LABELS[ side ] }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\n\t\t\t\t\t{ showHint && (\n\t\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-single\">\n\t\t\t\t\t\t\t{ currentValueHint }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ side === 'all' && showHint && (\n\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-all\">\n\t\t\t\t\t{ currentValueHint }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t) }\n\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-all':\n\t\t\t\t\t\t\tside === 'all',\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-single':\n\t\t\t\t\t\t\tside !== 'all',\n\t\t\t\t\t} ) }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1' } }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/spacing-input-control.js"],"names":["SpacingInputControl","spacingSizes","value","side","onChange","isMixed","type","minimumCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","blockEditorStore","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","units","availableUnits","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseInt","getNewCustomValue","newSize","isNumeric","isNaN","parseFloat","nextValue","getNewPresetValue","controlType","handleCustomValueSliderChange","next","join","allPlaceholder","currentValueHint","options","map","index","key","marks","label","ariaLabel","LABELS","toLowerCase","showHint","settings","gridColumn","event","nativeEvent","offsetX","find","option","selection","selectedItem"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBaseControl,\n\tButton,\n\tRangeControl,\n\tCustomSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from './utils';\n\nexport default function SpacingInputControl( {\n\tspacingSizes,\n\tvalue,\n\tside,\n\tonChange,\n\tisMixed = false,\n\ttype,\n\tminimumCustomValue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseInt( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst currentValueHint = ! isMixed\n\t\t? customTooltipContent( currentValue )\n\t\t: __( 'Mixed' );\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tLABELS[ side ],\n\t\ttype?.toLowerCase()\n\t);\n\n\tconst showHint =\n\t\tshowRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tcurrentValueHint !== undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ side !== 'all' && (\n\t\t\t\t<HStack className=\"components-spacing-sizes-control__side-labels\">\n\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__side-label\">\n\t\t\t\t\t\t{ LABELS[ side ] }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\n\t\t\t\t\t{ showHint && (\n\t\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-single\">\n\t\t\t\t\t\t\t{ currentValueHint }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ side === 'all' && showHint && (\n\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-all\">\n\t\t\t\t\t{ currentValueHint }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t) }\n\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-all':\n\t\t\t\t\t\t\tside === 'all',\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-single':\n\t\t\t\t\t\t\tside !== 'all',\n\t\t\t\t\t} ) }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1' } }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -136,7 +136,8 @@ const BlockInspector = _ref5 => {
136
136
  getSelectedBlockClientId,
137
137
  getSelectedBlockCount,
138
138
  getBlockName,
139
- __unstableGetContentLockingParent
139
+ __unstableGetContentLockingParent,
140
+ getTemplateLock
140
141
  } = select(blockEditorStore);
141
142
 
142
143
  const _selectedBlockClientId = getSelectedBlockClientId();
@@ -150,7 +151,7 @@ const BlockInspector = _ref5 => {
150
151
  selectedBlockClientId: _selectedBlockClientId,
151
152
  selectedBlockName: _selectedBlockName,
152
153
  blockType: _blockType,
153
- topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId)
154
+ topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' ? _selectedBlockClientId : undefined)
154
155
  };
155
156
  }, []);
156
157
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__experimentalUseSlot","useSlot","FlexItem","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","useSelect","useDispatch","useMemo","useCallback","SkipToSelectedBlock","BlockCard","default","InspectorControls","InspectorAdvancedControls","BlockStyles","MultiSelectionInspector","DefaultStylePicker","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockIcon","useContentBlocks","blockTypes","block","contenBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","_selectedBlockClientId","_selectedBlockName","_blockType","isSelectedBlockUnregistered","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles","length","AdvancedControls","slot","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contenBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contenBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock: __unstableGetContentLockingParent(\n\t\t\t\t_selectedBlockClientId\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__experimentalUseSlot","useSlot","FlexItem","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","useSelect","useDispatch","useMemo","useCallback","SkipToSelectedBlock","BlockCard","default","InspectorControls","InspectorAdvancedControls","BlockStyles","MultiSelectionInspector","DefaultStylePicker","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockIcon","useContentBlocks","blockTypes","block","contenBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","isSelectedBlockUnregistered","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles","length","AdvancedControls","slot","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contenBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contenBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
@@ -36,7 +36,8 @@ import { store as blockEditorStore } from '../../store';
36
36
 
37
37
  export default function useInnerBlockTemplateSync(clientId, template, templateLock, templateInsertUpdatesSelection) {
38
38
  const {
39
- getSelectedBlocksInitialCaretPosition
39
+ getSelectedBlocksInitialCaretPosition,
40
+ isBlockSelected
40
41
  } = useSelect(blockEditorStore);
41
42
  const {
42
43
  replaceInnerBlocks
@@ -67,7 +68,7 @@ export default function useInnerBlockTemplateSync(clientId, template, templateLo
67
68
  const nextBlocks = synchronizeBlocksWithTemplate(currentInnerBlocks, template);
68
69
 
69
70
  if (!isEqual(nextBlocks, currentInnerBlocks)) {
70
- replaceInnerBlocks(clientId, nextBlocks, currentInnerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0, // This ensures the "initialPosition" doesn't change when applying the template
71
+ replaceInnerBlocks(clientId, nextBlocks, currentInnerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0 && isBlockSelected(clientId), // This ensures the "initialPosition" doesn't change when applying the template
71
72
  // If we're supposed to focus the block, we'll focus the first inner block
72
73
  // otherwise, we won't apply any auto-focus.
73
74
  // This ensures for instance that the focus stays in the inserter when inserting the "buttons" block.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-inner-block-template-sync.js"],"names":["isEqual","useRef","useLayoutEffect","useSelect","useDispatch","synchronizeBlocksWithTemplate","store","blockEditorStore","useInnerBlockTemplateSync","clientId","template","templateLock","templateInsertUpdatesSelection","getSelectedBlocksInitialCaretPosition","replaceInnerBlocks","innerBlocks","select","getBlocks","existingTemplate","window","queueMicrotask","currentInnerBlocks","shouldApplyTemplate","length","hasTemplateChanged","current","nextBlocks"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,QAAxB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,EAAiBC,eAAjB,QAAwC,oBAAxC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,6BAAT,QAA8C,mBAA9C;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,yBAAT,CACdC,QADc,EAEdC,QAFc,EAGdC,YAHc,EAIdC,8BAJc,EAKb;AACD,QAAM;AAAEC,IAAAA;AAAF,MACLV,SAAS,CAAEI,gBAAF,CADV;AAEA,QAAM;AAAEO,IAAAA;AAAF,MAAyBV,WAAW,CAAEG,gBAAF,CAA1C;AACA,QAAMQ,WAAW,GAAGZ,SAAS,CAC1Ba,MAAF,IAAcA,MAAM,CAAET,gBAAF,CAAN,CAA2BU,SAA3B,CAAsCR,QAAtC,CADc,EAE5B,CAAEA,QAAF,CAF4B,CAA7B;AAIA,QAAM;AAAEQ,IAAAA;AAAF,MAAgBd,SAAS,CAAEI,gBAAF,CAA/B,CARC,CAUD;;AACA,QAAMW,gBAAgB,GAAGjB,MAAM,CAAE,IAAF,CAA/B;AACAC,EAAAA,eAAe,CAAE,MAAM;AACtB;AACA;AACA;AACA;AACAiB,IAAAA,MAAM,CAACC,cAAP,CAAuB,MAAM;AAC5B;AACA;AACA,YAAMC,kBAAkB,GAAGJ,SAAS,CAAER,QAAF,CAApC;AACA,YAAMa,mBAAmB,GACxBD,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACAZ,YAAY,KAAK,KADjB,IAEAA,YAAY,KAAK,aAHlB;AAKA,YAAMa,kBAAkB,GAAG,CAAExB,OAAO,CACnCU,QADmC,EAEnCQ,gBAAgB,CAACO,OAFkB,CAApC;;AAKA,UAAK,CAAEH,mBAAF,IAAyB,CAAEE,kBAAhC,EAAqD;AACpD;AACA;;AAEDN,MAAAA,gBAAgB,CAACO,OAAjB,GAA2Bf,QAA3B;AACA,YAAMgB,UAAU,GAAGrB,6BAA6B,CAC/CgB,kBAD+C,EAE/CX,QAF+C,CAAhD;;AAKA,UAAK,CAAEV,OAAO,CAAE0B,UAAF,EAAcL,kBAAd,CAAd,EAAmD;AAClDP,QAAAA,kBAAkB,CACjBL,QADiB,EAEjBiB,UAFiB,EAGjBL,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACCX,8BADD,IAECc,UAAU,CAACH,MAAX,KAAsB,CALN,EAMjB;AACA;AACA;AACA;AACAV,QAAAA,qCAAqC,EAVpB,CAAlB;AAYA;AACD,KAtCD;AAuCA,GA5Cc,EA4CZ,CAAEE,WAAF,EAAeL,QAAf,EAAyBC,YAAzB,EAAuCF,QAAvC,CA5CY,CAAf;AA6CA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\" or templateLock = \"contentOnly\"),\n * then we replace the inner blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId The block client ID.\n * @param {Object} template The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n * example, if the template lock is set to \"all\",\n * then the inner blocks will stay in sync with the\n * template. If not defined or set to false, then\n * the inner blocks will not be synchronized with\n * the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n * block-editor selection state when inner blocks\n * are replaced after template synchronization.\n */\nexport default function useInnerBlockTemplateSync(\n\tclientId,\n\ttemplate,\n\ttemplateLock,\n\ttemplateInsertUpdatesSelection\n) {\n\tconst { getSelectedBlocksInitialCaretPosition } =\n\t\tuseSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst innerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\n\t// Maintain a reference to the previous value so we can do a deep equality check.\n\tconst existingTemplate = useRef( null );\n\tuseLayoutEffect( () => {\n\t\t// There's an implicit dependency between useInnerBlockTemplateSync and useNestedSettingsUpdate\n\t\t// The former needs to happen after the latter and since the latter is using microtasks to batch updates (performance optimization),\n\t\t// we need to schedule this one in a microtask as well.\n\t\t// Exemple: If you remove queueMicrotask here, ctrl + click to insert quote block won't close the inserter.\n\t\twindow.queueMicrotask( () => {\n\t\t\t// Only synchronize innerBlocks with template if innerBlocks are empty\n\t\t\t// or a locking \"all\" or \"contentOnly\" exists directly on the block.\n\t\t\tconst currentInnerBlocks = getBlocks( clientId );\n\t\t\tconst shouldApplyTemplate =\n\t\t\t\tcurrentInnerBlocks.length === 0 ||\n\t\t\t\ttemplateLock === 'all' ||\n\t\t\t\ttemplateLock === 'contentOnly';\n\n\t\t\tconst hasTemplateChanged = ! isEqual(\n\t\t\t\ttemplate,\n\t\t\t\texistingTemplate.current\n\t\t\t);\n\n\t\t\tif ( ! shouldApplyTemplate || ! hasTemplateChanged ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\texistingTemplate.current = template;\n\t\t\tconst nextBlocks = synchronizeBlocksWithTemplate(\n\t\t\t\tcurrentInnerBlocks,\n\t\t\t\ttemplate\n\t\t\t);\n\n\t\t\tif ( ! isEqual( nextBlocks, currentInnerBlocks ) ) {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tclientId,\n\t\t\t\t\tnextBlocks,\n\t\t\t\t\tcurrentInnerBlocks.length === 0 &&\n\t\t\t\t\t\ttemplateInsertUpdatesSelection &&\n\t\t\t\t\t\tnextBlocks.length !== 0,\n\t\t\t\t\t// This ensures the \"initialPosition\" doesn't change when applying the template\n\t\t\t\t\t// If we're supposed to focus the block, we'll focus the first inner block\n\t\t\t\t\t// otherwise, we won't apply any auto-focus.\n\t\t\t\t\t// This ensures for instance that the focus stays in the inserter when inserting the \"buttons\" block.\n\t\t\t\t\tgetSelectedBlocksInitialCaretPosition()\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}, [ innerBlocks, template, templateLock, clientId ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-inner-block-template-sync.js"],"names":["isEqual","useRef","useLayoutEffect","useSelect","useDispatch","synchronizeBlocksWithTemplate","store","blockEditorStore","useInnerBlockTemplateSync","clientId","template","templateLock","templateInsertUpdatesSelection","getSelectedBlocksInitialCaretPosition","isBlockSelected","replaceInnerBlocks","innerBlocks","select","getBlocks","existingTemplate","window","queueMicrotask","currentInnerBlocks","shouldApplyTemplate","length","hasTemplateChanged","current","nextBlocks"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,QAAxB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,EAAiBC,eAAjB,QAAwC,oBAAxC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,6BAAT,QAA8C,mBAA9C;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,yBAAT,CACdC,QADc,EAEdC,QAFc,EAGdC,YAHc,EAIdC,8BAJc,EAKb;AACD,QAAM;AAAEC,IAAAA,qCAAF;AAAyCC,IAAAA;AAAzC,MACLX,SAAS,CAAEI,gBAAF,CADV;AAEA,QAAM;AAAEQ,IAAAA;AAAF,MAAyBX,WAAW,CAAEG,gBAAF,CAA1C;AACA,QAAMS,WAAW,GAAGb,SAAS,CAC1Bc,MAAF,IAAcA,MAAM,CAAEV,gBAAF,CAAN,CAA2BW,SAA3B,CAAsCT,QAAtC,CADc,EAE5B,CAAEA,QAAF,CAF4B,CAA7B;AAIA,QAAM;AAAES,IAAAA;AAAF,MAAgBf,SAAS,CAAEI,gBAAF,CAA/B,CARC,CAUD;;AACA,QAAMY,gBAAgB,GAAGlB,MAAM,CAAE,IAAF,CAA/B;AACAC,EAAAA,eAAe,CAAE,MAAM;AACtB;AACA;AACA;AACA;AACAkB,IAAAA,MAAM,CAACC,cAAP,CAAuB,MAAM;AAC5B;AACA;AACA,YAAMC,kBAAkB,GAAGJ,SAAS,CAAET,QAAF,CAApC;AACA,YAAMc,mBAAmB,GACxBD,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACAb,YAAY,KAAK,KADjB,IAEAA,YAAY,KAAK,aAHlB;AAKA,YAAMc,kBAAkB,GAAG,CAAEzB,OAAO,CACnCU,QADmC,EAEnCS,gBAAgB,CAACO,OAFkB,CAApC;;AAKA,UAAK,CAAEH,mBAAF,IAAyB,CAAEE,kBAAhC,EAAqD;AACpD;AACA;;AAEDN,MAAAA,gBAAgB,CAACO,OAAjB,GAA2BhB,QAA3B;AACA,YAAMiB,UAAU,GAAGtB,6BAA6B,CAC/CiB,kBAD+C,EAE/CZ,QAF+C,CAAhD;;AAKA,UAAK,CAAEV,OAAO,CAAE2B,UAAF,EAAcL,kBAAd,CAAd,EAAmD;AAClDP,QAAAA,kBAAkB,CACjBN,QADiB,EAEjBkB,UAFiB,EAGjBL,kBAAkB,CAACE,MAAnB,KAA8B,CAA9B,IACCZ,8BADD,IAECe,UAAU,CAACH,MAAX,KAAsB,CAFvB,IAGCV,eAAe,CAAEL,QAAF,CANC,EAOjB;AACA;AACA;AACA;AACAI,QAAAA,qCAAqC,EAXpB,CAAlB;AAaA;AACD,KAvCD;AAwCA,GA7Cc,EA6CZ,CAAEG,WAAF,EAAeN,QAAf,EAAyBC,YAAzB,EAAuCF,QAAvC,CA7CY,CAAf;AA8CA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\" or templateLock = \"contentOnly\"),\n * then we replace the inner blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId The block client ID.\n * @param {Object} template The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n * example, if the template lock is set to \"all\",\n * then the inner blocks will stay in sync with the\n * template. If not defined or set to false, then\n * the inner blocks will not be synchronized with\n * the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n * block-editor selection state when inner blocks\n * are replaced after template synchronization.\n */\nexport default function useInnerBlockTemplateSync(\n\tclientId,\n\ttemplate,\n\ttemplateLock,\n\ttemplateInsertUpdatesSelection\n) {\n\tconst { getSelectedBlocksInitialCaretPosition, isBlockSelected } =\n\t\tuseSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst innerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\n\t// Maintain a reference to the previous value so we can do a deep equality check.\n\tconst existingTemplate = useRef( null );\n\tuseLayoutEffect( () => {\n\t\t// There's an implicit dependency between useInnerBlockTemplateSync and useNestedSettingsUpdate\n\t\t// The former needs to happen after the latter and since the latter is using microtasks to batch updates (performance optimization),\n\t\t// we need to schedule this one in a microtask as well.\n\t\t// Exemple: If you remove queueMicrotask here, ctrl + click to insert quote block won't close the inserter.\n\t\twindow.queueMicrotask( () => {\n\t\t\t// Only synchronize innerBlocks with template if innerBlocks are empty\n\t\t\t// or a locking \"all\" or \"contentOnly\" exists directly on the block.\n\t\t\tconst currentInnerBlocks = getBlocks( clientId );\n\t\t\tconst shouldApplyTemplate =\n\t\t\t\tcurrentInnerBlocks.length === 0 ||\n\t\t\t\ttemplateLock === 'all' ||\n\t\t\t\ttemplateLock === 'contentOnly';\n\n\t\t\tconst hasTemplateChanged = ! isEqual(\n\t\t\t\ttemplate,\n\t\t\t\texistingTemplate.current\n\t\t\t);\n\n\t\t\tif ( ! shouldApplyTemplate || ! hasTemplateChanged ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\texistingTemplate.current = template;\n\t\t\tconst nextBlocks = synchronizeBlocksWithTemplate(\n\t\t\t\tcurrentInnerBlocks,\n\t\t\t\ttemplate\n\t\t\t);\n\n\t\t\tif ( ! isEqual( nextBlocks, currentInnerBlocks ) ) {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tclientId,\n\t\t\t\t\tnextBlocks,\n\t\t\t\t\tcurrentInnerBlocks.length === 0 &&\n\t\t\t\t\t\ttemplateInsertUpdatesSelection &&\n\t\t\t\t\t\tnextBlocks.length !== 0 &&\n\t\t\t\t\t\tisBlockSelected( clientId ),\n\t\t\t\t\t// This ensures the \"initialPosition\" doesn't change when applying the template\n\t\t\t\t\t// If we're supposed to focus the block, we'll focus the first inner block\n\t\t\t\t\t// otherwise, we won't apply any auto-focus.\n\t\t\t\t\t// This ensures for instance that the focus stays in the inserter when inserting the \"buttons\" block.\n\t\t\t\t\tgetSelectedBlocksInitialCaretPosition()\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}, [ innerBlocks, template, templateLock, clientId ] );\n}\n"]}
@@ -151,7 +151,8 @@ export default function SpacingInputControl(_ref) {
151
151
  className: "components-spacing-sizes-control__custom-value-input",
152
152
  style: {
153
153
  gridColumn: '1'
154
- }
154
+ },
155
+ size: '__unstable-large'
155
156
  }), createElement(RangeControl, {
156
157
  value: customRangeValue,
157
158
  min: 0,
@@ -192,7 +193,8 @@ export default function SpacingInputControl(_ref) {
192
193
  options: options,
193
194
  label: ariaLabel,
194
195
  hideLabelFromVision: true,
195
- __nextUnconstrainedWidth: true
196
+ __nextUnconstrainedWidth: true,
197
+ size: '__unstable-large'
196
198
  }));
197
199
  }
198
200
  //# sourceMappingURL=spacing-input-control.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/spacing-input-control.js"],"names":["classnames","useState","useMemo","useSelect","BaseControl","Button","RangeControl","CustomSelectControl","__experimentalUnitControl","UnitControl","__experimentalHStack","HStack","__experimentalUseCustomUnits","useCustomUnits","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","__","sprintf","settings","useSetting","store","blockEditorStore","LABELS","getSliderValueFromPreset","getCustomValueFromPreset","getPresetValueFromCustomValue","isValueSpacingPreset","SpacingInputControl","spacingSizes","value","side","onChange","isMixed","type","minimumCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","units","availableUnits","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseInt","getNewCustomValue","newSize","isNumeric","isNaN","parseFloat","nextValue","getNewPresetValue","controlType","handleCustomValueSliderChange","next","join","allPlaceholder","currentValueHint","options","map","index","key","marks","label","ariaLabel","toLowerCase","showHint","gridColumn","event","nativeEvent","offsetX","find","option","selection","selectedItem"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBaseControl,\n\tButton,\n\tRangeControl,\n\tCustomSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from './utils';\n\nexport default function SpacingInputControl( {\n\tspacingSizes,\n\tvalue,\n\tside,\n\tonChange,\n\tisMixed = false,\n\ttype,\n\tminimumCustomValue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseInt( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst currentValueHint = ! isMixed\n\t\t? customTooltipContent( currentValue )\n\t\t: __( 'Mixed' );\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tLABELS[ side ],\n\t\ttype?.toLowerCase()\n\t);\n\n\tconst showHint =\n\t\tshowRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tcurrentValueHint !== undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ side !== 'all' && (\n\t\t\t\t<HStack className=\"components-spacing-sizes-control__side-labels\">\n\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__side-label\">\n\t\t\t\t\t\t{ LABELS[ side ] }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\n\t\t\t\t\t{ showHint && (\n\t\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-single\">\n\t\t\t\t\t\t\t{ currentValueHint }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ side === 'all' && showHint && (\n\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-all\">\n\t\t\t\t\t{ currentValueHint }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t) }\n\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-all':\n\t\t\t\t\t\t\tside === 'all',\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-single':\n\t\t\t\t\t\t\tside !== 'all',\n\t\t\t\t\t} ) }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1' } }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/spacing-input-control.js"],"names":["classnames","useState","useMemo","useSelect","BaseControl","Button","RangeControl","CustomSelectControl","__experimentalUnitControl","UnitControl","__experimentalHStack","HStack","__experimentalUseCustomUnits","useCustomUnits","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","__","sprintf","settings","useSetting","store","blockEditorStore","LABELS","getSliderValueFromPreset","getCustomValueFromPreset","getPresetValueFromCustomValue","isValueSpacingPreset","SpacingInputControl","spacingSizes","value","side","onChange","isMixed","type","minimumCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","units","availableUnits","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseInt","getNewCustomValue","newSize","isNumeric","isNaN","parseFloat","nextValue","getNewPresetValue","controlType","handleCustomValueSliderChange","next","join","allPlaceholder","currentValueHint","options","map","index","key","marks","label","ariaLabel","toLowerCase","showHint","gridColumn","event","nativeEvent","offsetX","find","option","selection","selectedItem"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBaseControl,\n\tButton,\n\tRangeControl,\n\tCustomSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from './utils';\n\nexport default function SpacingInputControl( {\n\tspacingSizes,\n\tvalue,\n\tside,\n\tonChange,\n\tisMixed = false,\n\ttype,\n\tminimumCustomValue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseInt( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst currentValueHint = ! isMixed\n\t\t? customTooltipContent( currentValue )\n\t\t: __( 'Mixed' );\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tLABELS[ side ],\n\t\ttype?.toLowerCase()\n\t);\n\n\tconst showHint =\n\t\tshowRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tcurrentValueHint !== undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ side !== 'all' && (\n\t\t\t\t<HStack className=\"components-spacing-sizes-control__side-labels\">\n\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__side-label\">\n\t\t\t\t\t\t{ LABELS[ side ] }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\n\t\t\t\t\t{ showHint && (\n\t\t\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-single\">\n\t\t\t\t\t\t\t{ currentValueHint }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ side === 'all' && showHint && (\n\t\t\t\t<BaseControl.VisualLabel className=\"components-spacing-sizes-control__hint-all\">\n\t\t\t\t\t{ currentValueHint }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t) }\n\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-all':\n\t\t\t\t\t\t\tside === 'all',\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-single':\n\t\t\t\t\t\t\tside !== 'all',\n\t\t\t\t\t} ) }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1' } }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -1068,6 +1068,7 @@
1068
1068
  .block-editor-block-patterns-list__list-item {
1069
1069
  cursor: pointer;
1070
1070
  margin-bottom: 24px;
1071
+ position: relative;
1071
1072
  }
1072
1073
  .block-editor-block-patterns-list__list-item.is-placeholder {
1073
1074
  min-height: 100px;
@@ -1712,10 +1713,10 @@
1712
1713
  color: #000;
1713
1714
  }
1714
1715
 
1715
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child {
1716
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child {
1716
1717
  pointer-events: none;
1717
1718
  }
1718
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after {
1719
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child::after {
1719
1720
  content: "";
1720
1721
  position: absolute;
1721
1722
  top: 0;
@@ -1726,7 +1727,7 @@
1726
1727
  border: 1px dashed currentColor;
1727
1728
  border-radius: 2px;
1728
1729
  }
1729
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter {
1730
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child .block-editor-inserter {
1730
1731
  visibility: hidden;
1731
1732
  }
1732
1733
 
@@ -4273,7 +4274,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4273
4274
  display: grid;
4274
4275
  grid-template-columns: auto 1fr auto;
4275
4276
  align-items: center;
4276
- grid-template-rows: 25px auto;
4277
+ grid-template-rows: 16px auto;
4277
4278
  }
4278
4279
 
4279
4280
  .component-spacing-sizes-control {
@@ -4296,15 +4297,16 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4296
4297
  grid-column: 1/1;
4297
4298
  justify-content: left;
4298
4299
  height: 16px;
4299
- margin-top: 12px;
4300
+ margin-top: 16px;
4300
4301
  }
4301
4302
  .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4302
4303
  grid-column: 1/1;
4303
4304
  justify-self: left;
4304
4305
  margin-bottom: 0;
4305
4306
  }
4306
- .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control {
4307
- margin-top: 12px;
4307
+ .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control,
4308
+ .component-spacing-sizes-control.is-unlinked .components-spacing-sizes-control__custom-value-input {
4309
+ margin-top: 8px;
4308
4310
  }
4309
4311
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-single,
4310
4312
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
@@ -4322,12 +4324,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4322
4324
  grid-column: 2/2;
4323
4325
  grid-row: 1/1;
4324
4326
  justify-self: end;
4325
- padding: 0;
4326
- }
4327
- .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-all.is-small.has-icon {
4328
- padding: 0;
4329
- min-width: 24px;
4330
- height: 16px;
4327
+ margin-top: -4px;
4331
4328
  }
4332
4329
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button ~ .components-spacing-sizes-control__custom-toggle-all {
4333
4330
  margin-left: 4px;
@@ -4335,29 +4332,37 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4335
4332
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-single {
4336
4333
  grid-column: 3/3;
4337
4334
  justify-self: end;
4338
- }
4339
- .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-single.is-small.has-icon {
4340
- padding: 0;
4341
- min-width: 24px;
4342
- height: 16px;
4343
4335
  margin-top: 12px;
4344
4336
  }
4345
4337
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button {
4346
4338
  grid-column: 3/3;
4347
4339
  grid-row: 1/1;
4348
4340
  justify-self: end;
4341
+ line-height: 0;
4342
+ margin-top: -4px;
4349
4343
  }
4350
4344
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-range {
4351
4345
  grid-column: span 2;
4352
- margin-right: 8px;
4353
- height: 30px;
4346
+ margin-right: 16px;
4347
+ margin-top: 8px;
4354
4348
  }
4355
4349
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-input {
4356
4350
  width: 124px;
4351
+ margin-top: 8px;
4352
+ }
4353
+ .component-spacing-sizes-control .components-range-control {
4354
+ height: 40px;
4355
+ /* Vertically center the RangeControl until it has true 40px height. */
4356
+ display: flex;
4357
+ align-items: center;
4358
+ }
4359
+ .component-spacing-sizes-control .components-range-control > .components-base-control__field {
4360
+ /* Fixes RangeControl contents when the outer wrapper is flex */
4361
+ flex: 1;
4357
4362
  }
4358
4363
  .component-spacing-sizes-control .components-spacing-sizes-control__range-control {
4359
4364
  grid-column: span 3;
4360
- height: 40px;
4365
+ margin-top: 8px;
4361
4366
  }
4362
4367
  .component-spacing-sizes-control .components-range-control__mark {
4363
4368
  height: 4px;
@@ -4376,6 +4381,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4376
4381
  }
4377
4382
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-select-control {
4378
4383
  grid-column: span 3;
4384
+ margin-top: 8px;
4379
4385
  }
4380
4386
 
4381
4387
  body.admin-color-light {
@@ -1068,6 +1068,7 @@
1068
1068
  .block-editor-block-patterns-list__list-item {
1069
1069
  cursor: pointer;
1070
1070
  margin-bottom: 24px;
1071
+ position: relative;
1071
1072
  }
1072
1073
  .block-editor-block-patterns-list__list-item.is-placeholder {
1073
1074
  min-height: 100px;
@@ -1712,10 +1713,10 @@
1712
1713
  color: #000;
1713
1714
  }
1714
1715
 
1715
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child {
1716
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child {
1716
1717
  pointer-events: none;
1717
1718
  }
1718
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after {
1719
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child::after {
1719
1720
  content: "";
1720
1721
  position: absolute;
1721
1722
  top: 0;
@@ -1726,7 +1727,7 @@
1726
1727
  border: 1px dashed currentColor;
1727
1728
  border-radius: 2px;
1728
1729
  }
1729
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter {
1730
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > .block-list-appender:only-child .block-editor-inserter {
1730
1731
  visibility: hidden;
1731
1732
  }
1732
1733
 
@@ -4273,7 +4274,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4273
4274
  display: grid;
4274
4275
  grid-template-columns: auto 1fr auto;
4275
4276
  align-items: center;
4276
- grid-template-rows: 25px auto;
4277
+ grid-template-rows: 16px auto;
4277
4278
  }
4278
4279
 
4279
4280
  .component-spacing-sizes-control {
@@ -4296,15 +4297,16 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4296
4297
  grid-column: 1/1;
4297
4298
  justify-content: left;
4298
4299
  height: 16px;
4299
- margin-top: 12px;
4300
+ margin-top: 16px;
4300
4301
  }
4301
4302
  .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4302
4303
  grid-column: 1/1;
4303
4304
  justify-self: left;
4304
4305
  margin-bottom: 0;
4305
4306
  }
4306
- .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control {
4307
- margin-top: 12px;
4307
+ .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control,
4308
+ .component-spacing-sizes-control.is-unlinked .components-spacing-sizes-control__custom-value-input {
4309
+ margin-top: 8px;
4308
4310
  }
4309
4311
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-single,
4310
4312
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
@@ -4322,12 +4324,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4322
4324
  grid-column: 2/2;
4323
4325
  grid-row: 1/1;
4324
4326
  justify-self: end;
4325
- padding: 0;
4326
- }
4327
- .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-all.is-small.has-icon {
4328
- padding: 0;
4329
- min-width: 24px;
4330
- height: 16px;
4327
+ margin-top: -4px;
4331
4328
  }
4332
4329
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button ~ .components-spacing-sizes-control__custom-toggle-all {
4333
4330
  margin-right: 4px;
@@ -4335,29 +4332,37 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4335
4332
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-single {
4336
4333
  grid-column: 3/3;
4337
4334
  justify-self: end;
4338
- }
4339
- .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-single.is-small.has-icon {
4340
- padding: 0;
4341
- min-width: 24px;
4342
- height: 16px;
4343
4335
  margin-top: 12px;
4344
4336
  }
4345
4337
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button {
4346
4338
  grid-column: 3/3;
4347
4339
  grid-row: 1/1;
4348
4340
  justify-self: end;
4341
+ line-height: 0;
4342
+ margin-top: -4px;
4349
4343
  }
4350
4344
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-range {
4351
4345
  grid-column: span 2;
4352
- margin-left: 8px;
4353
- height: 30px;
4346
+ margin-left: 16px;
4347
+ margin-top: 8px;
4354
4348
  }
4355
4349
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-input {
4356
4350
  width: 124px;
4351
+ margin-top: 8px;
4352
+ }
4353
+ .component-spacing-sizes-control .components-range-control {
4354
+ height: 40px;
4355
+ /* Vertically center the RangeControl until it has true 40px height. */
4356
+ display: flex;
4357
+ align-items: center;
4358
+ }
4359
+ .component-spacing-sizes-control .components-range-control > .components-base-control__field {
4360
+ /* Fixes RangeControl contents when the outer wrapper is flex */
4361
+ flex: 1;
4357
4362
  }
4358
4363
  .component-spacing-sizes-control .components-spacing-sizes-control__range-control {
4359
4364
  grid-column: span 3;
4360
- height: 40px;
4365
+ margin-top: 8px;
4361
4366
  }
4362
4367
  .component-spacing-sizes-control .components-range-control__mark {
4363
4368
  height: 4px;
@@ -4376,6 +4381,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4376
4381
  }
4377
4382
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-select-control {
4378
4383
  grid-column: span 3;
4384
+ margin-top: 8px;
4379
4385
  }
4380
4386
 
4381
4387
  body.admin-color-light {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "10.0.6",
3
+ "version": "10.0.7",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -37,7 +37,7 @@
37
37
  "@wordpress/api-fetch": "^6.14.1",
38
38
  "@wordpress/blob": "^3.17.1",
39
39
  "@wordpress/blocks": "^11.16.4",
40
- "@wordpress/components": "^21.0.5",
40
+ "@wordpress/components": "^21.0.6",
41
41
  "@wordpress/compose": "^5.15.2",
42
42
  "@wordpress/data": "^7.1.3",
43
43
  "@wordpress/date": "^4.17.1",
@@ -78,5 +78,5 @@
78
78
  "publishConfig": {
79
79
  "access": "public"
80
80
  },
81
- "gitHead": "e0bb20cabd2152c8f0f6758e1b4e17fa24c5e588"
81
+ "gitHead": "84269cffad0bab2b10e6b6da8e275716fcc8c57b"
82
82
  }
@@ -144,6 +144,7 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
144
144
  getSelectedBlockCount,
145
145
  getBlockName,
146
146
  __unstableGetContentLockingParent,
147
+ getTemplateLock,
147
148
  } = select( blockEditorStore );
148
149
 
149
150
  const _selectedBlockClientId = getSelectedBlockClientId();
@@ -157,9 +158,11 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
157
158
  selectedBlockClientId: _selectedBlockClientId,
158
159
  selectedBlockName: _selectedBlockName,
159
160
  blockType: _blockType,
160
- topLevelLockedBlock: __unstableGetContentLockingParent(
161
- _selectedBlockClientId
162
- ),
161
+ topLevelLockedBlock:
162
+ __unstableGetContentLockingParent( _selectedBlockClientId ) ||
163
+ ( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'
164
+ ? _selectedBlockClientId
165
+ : undefined ),
163
166
  };
164
167
  }, [] );
165
168
 
@@ -2,6 +2,11 @@
2
2
  cursor: pointer;
3
3
  margin-bottom: $grid-unit-30;
4
4
 
5
+ // The list item contains absolutely positioned visually hidden text,
6
+ // so make this container relative. This prevents the bug experienced in
7
+ // https://github.com/WordPress/gutenberg/issues/44842.
8
+ position: relative;
9
+
5
10
  &.is-placeholder {
6
11
  min-height: 100px;
7
12
  }
@@ -36,8 +36,9 @@
36
36
  .block-list-appender:only-child {
37
37
  .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > &,
38
38
  .is-layout-flow.block-editor-block-list__block:not(.is-selected) > &,
39
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > &,
40
- .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > & {
39
+ // Legacy groups have an inner container so need to be targeted separately
40
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > &,
41
+ .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .wp-block-group__inner-container > & {
41
42
  pointer-events: none;
42
43
 
43
44
  &::after {
@@ -40,7 +40,7 @@ export default function useInnerBlockTemplateSync(
40
40
  templateLock,
41
41
  templateInsertUpdatesSelection
42
42
  ) {
43
- const { getSelectedBlocksInitialCaretPosition } =
43
+ const { getSelectedBlocksInitialCaretPosition, isBlockSelected } =
44
44
  useSelect( blockEditorStore );
45
45
  const { replaceInnerBlocks } = useDispatch( blockEditorStore );
46
46
  const innerBlocks = useSelect(
@@ -86,7 +86,8 @@ export default function useInnerBlockTemplateSync(
86
86
  nextBlocks,
87
87
  currentInnerBlocks.length === 0 &&
88
88
  templateInsertUpdatesSelection &&
89
- nextBlocks.length !== 0,
89
+ nextBlocks.length !== 0 &&
90
+ isBlockSelected( clientId ),
90
91
  // This ensures the "initialPosition" doesn't change when applying the template
91
92
  // If we're supposed to focus the block, we'll focus the first inner block
92
93
  // otherwise, we won't apply any auto-focus.
@@ -221,6 +221,7 @@ export default function SpacingInputControl( {
221
221
  hideLabelFromVision={ true }
222
222
  className="components-spacing-sizes-control__custom-value-input"
223
223
  style={ { gridColumn: '1' } }
224
+ size={ '__unstable-large' }
224
225
  />
225
226
 
226
227
  <RangeControl
@@ -279,6 +280,7 @@ export default function SpacingInputControl( {
279
280
  label={ ariaLabel }
280
281
  hideLabelFromVision={ true }
281
282
  __nextUnconstrainedWidth={ true }
283
+ size={ '__unstable-large' }
282
284
  />
283
285
  ) }
284
286
  </>
@@ -2,7 +2,7 @@
2
2
  display: grid;
3
3
  grid-template-columns: auto 1fr auto;
4
4
  align-items: center;
5
- grid-template-rows: 25px auto;
5
+ grid-template-rows: 16px auto;
6
6
  }
7
7
 
8
8
  .component-spacing-sizes-control {
@@ -27,7 +27,7 @@
27
27
  grid-column: 1 / 1;
28
28
  justify-content: left;
29
29
  height: $grid-unit-20;
30
- margin-top: $grid-unit-15;
30
+ margin-top: $grid-unit-20;
31
31
  }
32
32
 
33
33
  .components-spacing-sizes-control__side-label {
@@ -37,8 +37,9 @@
37
37
  }
38
38
 
39
39
  &.is-unlinked {
40
- .components-range-control.components-spacing-sizes-control__range-control {
41
- margin-top: $grid-unit-15;
40
+ .components-range-control.components-spacing-sizes-control__range-control,
41
+ .components-spacing-sizes-control__custom-value-input {
42
+ margin-top: $grid-unit-10;
42
43
  }
43
44
  }
44
45
 
@@ -60,12 +61,7 @@
60
61
  grid-column: 2 / 2;
61
62
  grid-row: 1 / 1;
62
63
  justify-self: end;
63
- padding: 0;
64
- &.is-small.has-icon {
65
- padding: 0;
66
- min-width: $icon-size;
67
- height: $grid-unit-20;
68
- }
64
+ margin-top: -4px;
69
65
  }
70
66
 
71
67
  .component-spacing-sizes-control__linked-button ~ .components-spacing-sizes-control__custom-toggle-all {
@@ -75,33 +71,43 @@
75
71
  .components-spacing-sizes-control__custom-toggle-single {
76
72
  grid-column: 3 / 3;
77
73
  justify-self: end;
78
- &.is-small.has-icon {
79
- padding: 0;
80
- min-width: $icon-size;
81
- height: $grid-unit-20;
82
- margin-top: $grid-unit-15;
83
- }
74
+ margin-top: $grid-unit-15;
84
75
  }
85
76
 
86
77
  .component-spacing-sizes-control__linked-button {
87
78
  grid-column: 3 / 3;
88
79
  grid-row: 1 / 1;
89
80
  justify-self: end;
81
+ line-height: 0;
82
+ margin-top: -4px;
90
83
  }
91
84
 
92
85
  .components-spacing-sizes-control__custom-value-range {
93
86
  grid-column: span 2;
94
- margin-left: $grid-unit-10;
95
- height: 30px;
87
+ margin-left: $grid-unit-20;
88
+ margin-top: 8px;
96
89
  }
97
90
 
98
91
  .components-spacing-sizes-control__custom-value-input {
99
92
  width: 124px;
93
+ margin-top: 8px;
94
+ }
95
+
96
+ .components-range-control {
97
+ height: 40px;
98
+ /* Vertically center the RangeControl until it has true 40px height. */
99
+ display: flex;
100
+ align-items: center;
101
+
102
+ > .components-base-control__field {
103
+ /* Fixes RangeControl contents when the outer wrapper is flex */
104
+ flex: 1;
105
+ }
100
106
  }
101
107
 
102
108
  .components-spacing-sizes-control__range-control {
103
109
  grid-column: span 3;
104
- height: 40px;
110
+ margin-top: 8px;
105
111
  }
106
112
 
107
113
  .components-range-control__mark {
@@ -125,5 +131,6 @@
125
131
 
126
132
  .components-spacing-sizes-control__custom-select-control {
127
133
  grid-column: span 3;
134
+ margin-top: $grid-unit-10;
128
135
  }
129
136
  }