@wordpress/block-editor 11.3.2 → 11.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +4 -4
  2. package/build/components/block-actions/index.js +2 -7
  3. package/build/components/block-actions/index.js.map +1 -1
  4. package/build/components/block-alignment-control/use-available-alignments.js +5 -3
  5. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  6. package/build/components/block-tools/selected-block-popover.js +2 -2
  7. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  8. package/build/components/off-canvas-editor/block-contents.js +2 -2
  9. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  10. package/build/components/provider/index.js +2 -2
  11. package/build/components/provider/index.js.map +1 -1
  12. package/build/components/url-popover/index.js +6 -1
  13. package/build/components/url-popover/index.js.map +1 -1
  14. package/build/hooks/dimensions.js +2 -2
  15. package/build/hooks/dimensions.js.map +1 -1
  16. package/build/hooks/metadata.js +6 -0
  17. package/build/hooks/metadata.js.map +1 -1
  18. package/build/hooks/position.js +6 -1
  19. package/build/hooks/position.js.map +1 -1
  20. package/build/index.js +6 -6
  21. package/build/index.js.map +1 -1
  22. package/build/layouts/flow.js +23 -2
  23. package/build/layouts/flow.js.map +1 -1
  24. package/build/lock-unlock.js +19 -0
  25. package/build/lock-unlock.js.map +1 -0
  26. package/build/{experiments.js → private-apis.js} +9 -19
  27. package/build/private-apis.js.map +1 -0
  28. package/build/{experiments.native.js → private-apis.native.js} +9 -19
  29. package/build/private-apis.native.js.map +1 -0
  30. package/build/store/index.js +3 -3
  31. package/build/store/index.js.map +1 -1
  32. package/build-module/components/block-actions/index.js +2 -7
  33. package/build-module/components/block-actions/index.js.map +1 -1
  34. package/build-module/components/block-alignment-control/use-available-alignments.js +5 -3
  35. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  36. package/build-module/components/block-tools/selected-block-popover.js +1 -1
  37. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  38. package/build-module/components/off-canvas-editor/block-contents.js +1 -1
  39. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  40. package/build-module/components/provider/index.js +1 -1
  41. package/build-module/components/provider/index.js.map +1 -1
  42. package/build-module/components/url-popover/index.js +6 -2
  43. package/build-module/components/url-popover/index.js.map +1 -1
  44. package/build-module/hooks/dimensions.js +1 -1
  45. package/build-module/hooks/dimensions.js.map +1 -1
  46. package/build-module/hooks/metadata.js +6 -0
  47. package/build-module/hooks/metadata.js.map +1 -1
  48. package/build-module/hooks/position.js +5 -1
  49. package/build-module/hooks/position.js.map +1 -1
  50. package/build-module/index.js +1 -1
  51. package/build-module/index.js.map +1 -1
  52. package/build-module/layouts/flow.js +23 -2
  53. package/build-module/layouts/flow.js.map +1 -1
  54. package/build-module/lock-unlock.js +9 -0
  55. package/build-module/lock-unlock.js.map +1 -0
  56. package/build-module/private-apis.js +17 -0
  57. package/build-module/private-apis.js.map +1 -0
  58. package/build-module/private-apis.native.js +15 -0
  59. package/build-module/private-apis.native.js.map +1 -0
  60. package/build-module/store/index.js +1 -1
  61. package/build-module/store/index.js.map +1 -1
  62. package/package.json +13 -13
  63. package/src/components/block-actions/index.js +0 -9
  64. package/src/components/block-alignment-control/use-available-alignments.js +17 -12
  65. package/src/components/block-tools/selected-block-popover.js +1 -1
  66. package/src/components/off-canvas-editor/block-contents.js +1 -1
  67. package/src/components/provider/index.js +1 -1
  68. package/src/components/url-popover/index.js +8 -2
  69. package/src/hooks/dimensions.js +1 -1
  70. package/src/hooks/metadata.js +4 -0
  71. package/src/hooks/position.js +7 -1
  72. package/src/index.js +1 -1
  73. package/src/layouts/flow.js +16 -1
  74. package/src/lock-unlock.js +10 -0
  75. package/src/private-apis.js +17 -0
  76. package/src/private-apis.native.js +15 -0
  77. package/src/store/index.js +1 -1
  78. package/tsconfig.json +20 -1
  79. package/build/experiments.js.map +0 -1
  80. package/build/experiments.native.js.map +0 -1
  81. package/build-module/experiments.js +0 -25
  82. package/build-module/experiments.js.map +0 -1
  83. package/build-module/experiments.native.js +0 -23
  84. package/build-module/experiments.native.js.map +0 -1
  85. package/src/experiments.js +0 -27
  86. package/src/experiments.native.js +0 -25
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/position.js"],"names":["POSITION_SUPPORT_KEY","OPTION_CLASSNAME","DEFAULT_OPTION","key","value","name","className","STICKY_OPTION","__experimentalHint","FIXED_OPTION","POSITION_SIDES","VALID_POSITION_TYPES","getPositionCSS","selector","style","output","type","positionType","position","includes","forEach","side","undefined","hasStickyPositionSupport","blockType","support","sticky","hasFixedPositionSupport","fixed","hasPositionSupport","hasPositionValue","props","attributes","hasStickyOrFixedPositionValue","resetPosition","setAttributes","top","right","bottom","left","useIsPositionDisabled","blockName","allowFixed","allowSticky","isDisabled","PositionPanel","clientId","hasParents","select","getBlockParents","blockEditorStore","parents","length","options","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","Platform","web","selectedItem","native","withInspectorControls","BlockEdit","positionSupport","showPositionControls","withPositionStyles","BlockListBlock","hasPositionBlockSupport","allowPositionStyles","id","element","BlockList","__unstableElementContext","positionSelector","css"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { BaseControl, CustomSelectControl } from '@wordpress/components';\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseContext,\n\tuseMemo,\n\tcreatePortal,\n\tPlatform,\n} from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../components/block-list';\nimport useSetting from '../components/use-setting';\nimport InspectorControls from '../components/inspector-controls';\nimport { cleanEmptyObject } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nconst POSITION_SUPPORT_KEY = 'position';\n\nconst OPTION_CLASSNAME =\n\t'block-editor-hooks__position-selection__select-control__option';\n\nconst DEFAULT_OPTION = {\n\tkey: 'default',\n\tvalue: '',\n\tname: __( 'Default' ),\n\tclassName: OPTION_CLASSNAME,\n};\n\nconst STICKY_OPTION = {\n\tkey: 'sticky',\n\tvalue: 'sticky',\n\tname: __( 'Sticky' ),\n\tclassName: OPTION_CLASSNAME,\n\t__experimentalHint: __(\n\t\t'The block will stick to the top of the window instead of scrolling.'\n\t),\n};\n\nconst FIXED_OPTION = {\n\tkey: 'fixed',\n\tvalue: 'fixed',\n\tname: __( 'Fixed' ),\n\tclassName: OPTION_CLASSNAME,\n\t__experimentalHint: __(\n\t\t'The block will not move when the page is scrolled.'\n\t),\n};\n\nconst POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nconst VALID_POSITION_TYPES = [ 'sticky', 'fixed' ];\n\n/**\n * Get calculated position CSS.\n *\n * @param {Object} props Component props.\n * @param {string} props.selector Selector to use.\n * @param {Object} props.style Style object.\n * @return {string} The generated CSS rules.\n */\nexport function getPositionCSS( { selector, style } ) {\n\tlet output = '';\n\n\tconst { type: positionType } = style?.position || {};\n\n\tif ( ! VALID_POSITION_TYPES.includes( positionType ) ) {\n\t\treturn output;\n\t}\n\n\toutput += `${ selector } {`;\n\toutput += `position: ${ positionType };`;\n\n\tPOSITION_SIDES.forEach( ( side ) => {\n\t\tif ( style?.position?.[ side ] !== undefined ) {\n\t\t\toutput += `${ side }: ${ style.position[ side ] };`;\n\t\t}\n\t} );\n\n\tif ( positionType === 'sticky' || positionType === 'fixed' ) {\n\t\t// TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json.\n\t\toutput += `z-index: 10`;\n\t}\n\toutput += `}`;\n\n\treturn output;\n}\n\n/**\n * Determines if there is sticky position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasStickyPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.sticky );\n}\n\n/**\n * Determines if there is fixed position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasFixedPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.fixed );\n}\n\n/**\n * Determines if there is position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! support;\n}\n\n/**\n * Checks if there is a current value in the position block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a position value set.\n */\nexport function hasPositionValue( props ) {\n\treturn props.attributes.style?.position?.type !== undefined;\n}\n\n/**\n * Checks if the block is currently set to a sticky or fixed position.\n * This check is helpful for determining how to position block toolbars or other elements.\n *\n * @param {Object} attributes Block attributes.\n * @return {boolean} Whether or not the block is set to a sticky or fixed position.\n */\nexport function hasStickyOrFixedPositionValue( attributes ) {\n\tconst positionType = attributes.style?.position?.type;\n\treturn positionType === 'sticky' || positionType === 'fixed';\n}\n\n/**\n * Resets the position block support attributes. This can be used when disabling\n * the position support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetPosition( { attributes = {}, setAttributes } ) {\n\tconst { style = {} } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: undefined,\n\t\t\t\ttop: undefined,\n\t\t\t\tright: undefined,\n\t\t\t\tbottom: undefined,\n\t\t\t\tleft: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if position settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether padding setting is disabled.\n */\nexport function useIsPositionDisabled( { name: blockName } = {} ) {\n\tconst allowFixed = useSetting( 'position.fixed' );\n\tconst allowSticky = useSetting( 'position.sticky' );\n\tconst isDisabled = ! allowFixed && ! allowSticky;\n\n\treturn ! hasPositionSupport( blockName ) || isDisabled;\n}\n\n/*\n * Position controls rendered in an inspector control panel.\n *\n * @param {Object} props\n *\n * @return {WPElement} Position panel.\n */\nexport function PositionPanel( props ) {\n\tconst {\n\t\tattributes: { style = {} },\n\t\tclientId,\n\t\tname: blockName,\n\t\tsetAttributes,\n\t} = props;\n\n\tconst allowFixed = hasFixedPositionSupport( blockName );\n\tconst allowSticky = hasStickyPositionSupport( blockName );\n\tconst value = style?.position?.type;\n\n\tconst { hasParents } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\treturn {\n\t\t\t\thasParents: parents.length,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst options = useMemo( () => {\n\t\tconst availableOptions = [ DEFAULT_OPTION ];\n\t\t// Only display sticky option if the block has no parents (is at the root of the document),\n\t\t// or if the block already has a sticky position value set.\n\t\tif (\n\t\t\t( allowSticky && ! hasParents ) ||\n\t\t\tvalue === STICKY_OPTION.value\n\t\t) {\n\t\t\tavailableOptions.push( STICKY_OPTION );\n\t\t}\n\t\tif ( allowFixed || value === FIXED_OPTION.value ) {\n\t\t\tavailableOptions.push( FIXED_OPTION );\n\t\t}\n\t\treturn availableOptions;\n\t}, [ allowFixed, allowSticky, hasParents, value ] );\n\n\tconst onChangeType = ( next ) => {\n\t\t// For now, use a hard-coded `0px` value for the position.\n\t\t// `0px` is preferred over `0` as it can be used in `calc()` functions.\n\t\t// In the future, it could be useful to allow for an offset value.\n\t\tconst placementValue = '0px';\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: next,\n\t\t\t\ttop:\n\t\t\t\t\tnext === 'sticky' || next === 'fixed'\n\t\t\t\t\t\t? placementValue\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst selectedOption = value\n\t\t? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION\n\t\t: DEFAULT_OPTION;\n\n\t// Only display position controls if there is at least one option to choose from.\n\treturn Platform.select( {\n\t\tweb:\n\t\t\toptions.length > 1 ? (\n\t\t\t\t<InspectorControls group=\"position\">\n\t\t\t\t\t<BaseControl className=\"block-editor-hooks__position-selection\">\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__position-selection__select-control\"\n\t\t\t\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Currently selected position.\n\t\t\t\t\t\t\t\t__( 'Currently selected position: %s' ),\n\t\t\t\t\t\t\t\tselectedOption.name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ selectedOption }\n\t\t\t\t\t\t\t__experimentalShowSelectedHint\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChangeType( selectedItem.value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</InspectorControls>\n\t\t\t) : null,\n\t\tnative: null,\n\t} );\n}\n\n/**\n * Override the default edit UI to include position controls.\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst positionSupport = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tPOSITION_SUPPORT_KEY\n\t\t);\n\t\tconst showPositionControls =\n\t\t\tpositionSupport && ! useIsPositionDisabled( props );\n\n\t\treturn [\n\t\t\tshowPositionControls && (\n\t\t\t\t<PositionPanel key=\"position\" { ...props } />\n\t\t\t),\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the position styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withPositionStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasPositionBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tPOSITION_SUPPORT_KEY\n\t\t);\n\t\tconst allowPositionStyles =\n\t\t\thasPositionBlockSupport && ! useIsPositionDisabled( props );\n\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\n\t\t// Higher specificity to override defaults in editor UI.\n\t\tconst positionSelector = `.wp-container-${ id }.wp-container-${ id }`;\n\n\t\t// Get CSS string for the current position values.\n\t\tlet css;\n\t\tif ( allowPositionStyles ) {\n\t\t\tcss =\n\t\t\t\tgetPositionCSS( {\n\t\t\t\t\tselector: positionSelector,\n\t\t\t\t\tstyle: attributes?.style,\n\t\t\t\t} ) || '';\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name.\n\t\tconst className = classnames( props?.className, {\n\t\t\t[ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t[ `is-position-${ attributes?.style?.position?.type }` ]:\n\t\t\t\tallowPositionStyles &&\n\t\t\t\t!! css &&\n\t\t\t\t!! attributes?.style?.position?.type,\n\t\t} );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ allowPositionStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal( <style>{ css }</style>, element ) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/position/with-position-styles',\n\twithPositionStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/position/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/position.js"],"names":["CustomSelectControl","componentsPrivateApis","POSITION_SUPPORT_KEY","OPTION_CLASSNAME","DEFAULT_OPTION","key","value","name","className","STICKY_OPTION","__experimentalHint","FIXED_OPTION","POSITION_SIDES","VALID_POSITION_TYPES","getPositionCSS","selector","style","output","type","positionType","position","includes","forEach","side","undefined","hasStickyPositionSupport","blockType","support","sticky","hasFixedPositionSupport","fixed","hasPositionSupport","hasPositionValue","props","attributes","hasStickyOrFixedPositionValue","resetPosition","setAttributes","top","right","bottom","left","useIsPositionDisabled","blockName","allowFixed","allowSticky","isDisabled","PositionPanel","clientId","hasParents","select","getBlockParents","blockEditorStore","parents","length","options","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","Platform","web","selectedItem","native","withInspectorControls","BlockEdit","positionSupport","showPositionControls","withPositionStyles","BlockListBlock","hasPositionBlockSupport","allowPositionStyles","id","element","BlockList","__unstableElementContext","positionSelector","css"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tBaseControl,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseContext,\n\tuseMemo,\n\tcreatePortal,\n\tPlatform,\n} from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../components/block-list';\nimport useSetting from '../components/use-setting';\nimport InspectorControls from '../components/inspector-controls';\nimport { cleanEmptyObject } from './utils';\nimport { unlock } from '../lock-unlock';\nimport { store as blockEditorStore } from '../store';\n\nconst { CustomSelectControl } = unlock( componentsPrivateApis );\n\nconst POSITION_SUPPORT_KEY = 'position';\n\nconst OPTION_CLASSNAME =\n\t'block-editor-hooks__position-selection__select-control__option';\n\nconst DEFAULT_OPTION = {\n\tkey: 'default',\n\tvalue: '',\n\tname: __( 'Default' ),\n\tclassName: OPTION_CLASSNAME,\n};\n\nconst STICKY_OPTION = {\n\tkey: 'sticky',\n\tvalue: 'sticky',\n\tname: __( 'Sticky' ),\n\tclassName: OPTION_CLASSNAME,\n\t__experimentalHint: __(\n\t\t'The block will stick to the top of the window instead of scrolling.'\n\t),\n};\n\nconst FIXED_OPTION = {\n\tkey: 'fixed',\n\tvalue: 'fixed',\n\tname: __( 'Fixed' ),\n\tclassName: OPTION_CLASSNAME,\n\t__experimentalHint: __(\n\t\t'The block will not move when the page is scrolled.'\n\t),\n};\n\nconst POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nconst VALID_POSITION_TYPES = [ 'sticky', 'fixed' ];\n\n/**\n * Get calculated position CSS.\n *\n * @param {Object} props Component props.\n * @param {string} props.selector Selector to use.\n * @param {Object} props.style Style object.\n * @return {string} The generated CSS rules.\n */\nexport function getPositionCSS( { selector, style } ) {\n\tlet output = '';\n\n\tconst { type: positionType } = style?.position || {};\n\n\tif ( ! VALID_POSITION_TYPES.includes( positionType ) ) {\n\t\treturn output;\n\t}\n\n\toutput += `${ selector } {`;\n\toutput += `position: ${ positionType };`;\n\n\tPOSITION_SIDES.forEach( ( side ) => {\n\t\tif ( style?.position?.[ side ] !== undefined ) {\n\t\t\toutput += `${ side }: ${ style.position[ side ] };`;\n\t\t}\n\t} );\n\n\tif ( positionType === 'sticky' || positionType === 'fixed' ) {\n\t\t// TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json.\n\t\toutput += `z-index: 10`;\n\t}\n\toutput += `}`;\n\n\treturn output;\n}\n\n/**\n * Determines if there is sticky position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasStickyPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.sticky );\n}\n\n/**\n * Determines if there is fixed position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasFixedPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.fixed );\n}\n\n/**\n * Determines if there is position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! support;\n}\n\n/**\n * Checks if there is a current value in the position block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a position value set.\n */\nexport function hasPositionValue( props ) {\n\treturn props.attributes.style?.position?.type !== undefined;\n}\n\n/**\n * Checks if the block is currently set to a sticky or fixed position.\n * This check is helpful for determining how to position block toolbars or other elements.\n *\n * @param {Object} attributes Block attributes.\n * @return {boolean} Whether or not the block is set to a sticky or fixed position.\n */\nexport function hasStickyOrFixedPositionValue( attributes ) {\n\tconst positionType = attributes.style?.position?.type;\n\treturn positionType === 'sticky' || positionType === 'fixed';\n}\n\n/**\n * Resets the position block support attributes. This can be used when disabling\n * the position support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetPosition( { attributes = {}, setAttributes } ) {\n\tconst { style = {} } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: undefined,\n\t\t\t\ttop: undefined,\n\t\t\t\tright: undefined,\n\t\t\t\tbottom: undefined,\n\t\t\t\tleft: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if position settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether padding setting is disabled.\n */\nexport function useIsPositionDisabled( { name: blockName } = {} ) {\n\tconst allowFixed = useSetting( 'position.fixed' );\n\tconst allowSticky = useSetting( 'position.sticky' );\n\tconst isDisabled = ! allowFixed && ! allowSticky;\n\n\treturn ! hasPositionSupport( blockName ) || isDisabled;\n}\n\n/*\n * Position controls rendered in an inspector control panel.\n *\n * @param {Object} props\n *\n * @return {WPElement} Position panel.\n */\nexport function PositionPanel( props ) {\n\tconst {\n\t\tattributes: { style = {} },\n\t\tclientId,\n\t\tname: blockName,\n\t\tsetAttributes,\n\t} = props;\n\n\tconst allowFixed = hasFixedPositionSupport( blockName );\n\tconst allowSticky = hasStickyPositionSupport( blockName );\n\tconst value = style?.position?.type;\n\n\tconst { hasParents } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\treturn {\n\t\t\t\thasParents: parents.length,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst options = useMemo( () => {\n\t\tconst availableOptions = [ DEFAULT_OPTION ];\n\t\t// Only display sticky option if the block has no parents (is at the root of the document),\n\t\t// or if the block already has a sticky position value set.\n\t\tif (\n\t\t\t( allowSticky && ! hasParents ) ||\n\t\t\tvalue === STICKY_OPTION.value\n\t\t) {\n\t\t\tavailableOptions.push( STICKY_OPTION );\n\t\t}\n\t\tif ( allowFixed || value === FIXED_OPTION.value ) {\n\t\t\tavailableOptions.push( FIXED_OPTION );\n\t\t}\n\t\treturn availableOptions;\n\t}, [ allowFixed, allowSticky, hasParents, value ] );\n\n\tconst onChangeType = ( next ) => {\n\t\t// For now, use a hard-coded `0px` value for the position.\n\t\t// `0px` is preferred over `0` as it can be used in `calc()` functions.\n\t\t// In the future, it could be useful to allow for an offset value.\n\t\tconst placementValue = '0px';\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: next,\n\t\t\t\ttop:\n\t\t\t\t\tnext === 'sticky' || next === 'fixed'\n\t\t\t\t\t\t? placementValue\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst selectedOption = value\n\t\t? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION\n\t\t: DEFAULT_OPTION;\n\n\t// Only display position controls if there is at least one option to choose from.\n\treturn Platform.select( {\n\t\tweb:\n\t\t\toptions.length > 1 ? (\n\t\t\t\t<InspectorControls group=\"position\">\n\t\t\t\t\t<BaseControl className=\"block-editor-hooks__position-selection\">\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__position-selection__select-control\"\n\t\t\t\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Currently selected position.\n\t\t\t\t\t\t\t\t__( 'Currently selected position: %s' ),\n\t\t\t\t\t\t\t\tselectedOption.name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ selectedOption }\n\t\t\t\t\t\t\t__experimentalShowSelectedHint\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChangeType( selectedItem.value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</InspectorControls>\n\t\t\t) : null,\n\t\tnative: null,\n\t} );\n}\n\n/**\n * Override the default edit UI to include position controls.\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst positionSupport = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tPOSITION_SUPPORT_KEY\n\t\t);\n\t\tconst showPositionControls =\n\t\t\tpositionSupport && ! useIsPositionDisabled( props );\n\n\t\treturn [\n\t\t\tshowPositionControls && (\n\t\t\t\t<PositionPanel key=\"position\" { ...props } />\n\t\t\t),\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the position styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withPositionStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasPositionBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tPOSITION_SUPPORT_KEY\n\t\t);\n\t\tconst allowPositionStyles =\n\t\t\thasPositionBlockSupport && ! useIsPositionDisabled( props );\n\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\n\t\t// Higher specificity to override defaults in editor UI.\n\t\tconst positionSelector = `.wp-container-${ id }.wp-container-${ id }`;\n\n\t\t// Get CSS string for the current position values.\n\t\tlet css;\n\t\tif ( allowPositionStyles ) {\n\t\t\tcss =\n\t\t\t\tgetPositionCSS( {\n\t\t\t\t\tselector: positionSelector,\n\t\t\t\t\tstyle: attributes?.style,\n\t\t\t\t} ) || '';\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name.\n\t\tconst className = classnames( props?.className, {\n\t\t\t[ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t[ `is-position-${ attributes?.style?.position?.type }` ]:\n\t\t\t\tallowPositionStyles &&\n\t\t\t\t!! css &&\n\t\t\t\t!! attributes?.style?.position?.type,\n\t\t} );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ allowPositionStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal( <style>{ css }</style>, element ) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/position/with-position-styles',\n\twithPositionStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/position/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
package/build/index.js CHANGED
@@ -18,7 +18,7 @@ var _exportNames = {
18
18
  storeConfig: true,
19
19
  store: true,
20
20
  SETTINGS_DEFAULTS: true,
21
- experiments: true
21
+ privateApis: true
22
22
  };
23
23
  Object.defineProperty(exports, "SETTINGS_DEFAULTS", {
24
24
  enumerable: true,
@@ -80,16 +80,16 @@ Object.defineProperty(exports, "__experimentaluseLayoutStyles", {
80
80
  return _hooks.useLayoutStyles;
81
81
  }
82
82
  });
83
- Object.defineProperty(exports, "experiments", {
83
+ Object.defineProperty(exports, "getTypographyClassesAndStyles", {
84
84
  enumerable: true,
85
85
  get: function () {
86
- return _experiments.experiments;
86
+ return _hooks.getTypographyClassesAndStyles;
87
87
  }
88
88
  });
89
- Object.defineProperty(exports, "getTypographyClassesAndStyles", {
89
+ Object.defineProperty(exports, "privateApis", {
90
90
  enumerable: true,
91
91
  get: function () {
92
- return _hooks.getTypographyClassesAndStyles;
92
+ return _privateApis.privateApis;
93
93
  }
94
94
  });
95
95
  Object.defineProperty(exports, "store", {
@@ -159,5 +159,5 @@ var _store = require("./store");
159
159
 
160
160
  var _defaults = require("./store/defaults");
161
161
 
162
- var _experiments = require("./experiments");
162
+ var _privateApis = require("./private-apis");
163
163
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAcA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AACA","sourcesContent":["/**\n * Internal dependencies\n */\nimport './hooks';\nexport {\n\tgetBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles,\n\tuseBorderProps as __experimentalUseBorderProps,\n\tgetColorClassesAndStyles as __experimentalGetColorClassesAndStyles,\n\tgetTypographyClassesAndStyles,\n\tuseColorProps as __experimentalUseColorProps,\n\tuseCustomSides as __experimentalUseCustomSides,\n\tgetSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles,\n\tgetGapCSSValue as __experimentalGetGapCSSValue,\n\tuseCachedTruthy,\n\tuseLayoutClasses as __experimentaluseLayoutClasses,\n\tuseLayoutStyles as __experimentaluseLayoutStyles,\n} from './hooks';\nexport * from './components';\nexport * from './elements';\nexport * from './utils';\nexport { storeConfig, store } from './store';\nexport { SETTINGS_DEFAULTS } from './store/defaults';\nexport { experiments } from './experiments';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAcA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AACA","sourcesContent":["/**\n * Internal dependencies\n */\nimport './hooks';\nexport {\n\tgetBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles,\n\tuseBorderProps as __experimentalUseBorderProps,\n\tgetColorClassesAndStyles as __experimentalGetColorClassesAndStyles,\n\tgetTypographyClassesAndStyles,\n\tuseColorProps as __experimentalUseColorProps,\n\tuseCustomSides as __experimentalUseCustomSides,\n\tgetSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles,\n\tgetGapCSSValue as __experimentalGetGapCSSValue,\n\tuseCachedTruthy,\n\tuseLayoutClasses as __experimentaluseLayoutClasses,\n\tuseLayoutStyles as __experimentaluseLayoutStyles,\n} from './hooks';\nexport * from './components';\nexport * from './elements';\nexport * from './utils';\nexport { storeConfig, store } from './store';\nexport { SETTINGS_DEFAULTS } from './store/defaults';\nexport { privateApis } from './private-apis';\n"]}
@@ -66,7 +66,7 @@ var _default = {
66
66
  return 'vertical';
67
67
  },
68
68
 
69
- getAlignments(layout) {
69
+ getAlignments(layout, isBlockBasedTheme) {
70
70
  const alignmentInfo = (0, _utils.getAlignmentsInfo)(layout);
71
71
 
72
72
  if (layout.alignments !== undefined) {
@@ -86,7 +86,28 @@ var _default = {
86
86
  name: 'center'
87
87
  }, {
88
88
  name: 'right'
89
- }];
89
+ }]; // This is for backwards compatibility with hybrid themes.
90
+
91
+ if (!isBlockBasedTheme) {
92
+ const {
93
+ contentSize,
94
+ wideSize
95
+ } = layout;
96
+
97
+ if (contentSize) {
98
+ alignments.unshift({
99
+ name: 'full'
100
+ });
101
+ }
102
+
103
+ if (wideSize) {
104
+ alignments.unshift({
105
+ name: 'wide',
106
+ info: alignmentInfo.wide
107
+ });
108
+ }
109
+ }
110
+
90
111
  alignments.unshift({
91
112
  name: 'none',
92
113
  info: alignmentInfo.none
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/layouts/flow.js"],"names":["name","label","inspectorControls","DefaultLayoutInspectorControls","toolBarControls","DefaultLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","blockGapStyleValue","spacing","blockGap","blockGapValue","top","output","getOrientation","getAlignments","layout","alignmentInfo","alignments","undefined","includes","unshift","map","alignment","info","none"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;eAKe;AACdA,EAAAA,IAAI,EAAE,SADQ;AAEdC,EAAAA,KAAK,EAAE,cAAI,MAAJ,CAFO;AAGdC,EAAAA,iBAAiB,EAAE,SAASC,8BAAT,GAA0C;AAC5D,WAAO,IAAP;AACA,GALa;AAMdC,EAAAA,eAAe,EAAE,SAASC,4BAAT,GAAwC;AACxD,WAAO,IAAP;AACA,GARa;AASdC,EAAAA,cAAc,EAAE,SAASA,cAAT,OAMZ;AAAA;;AAAA,QANqC;AACxCC,MAAAA,QADwC;AAExCC,MAAAA,KAFwC;AAGxCC,MAAAA,SAHwC;AAIxCC,MAAAA,kBAJwC;AAKxCC,MAAAA;AALwC,KAMrC;AACH,UAAMC,kBAAkB,GAAG,yBAAgBJ,KAAhB,aAAgBA,KAAhB,yCAAgBA,KAAK,CAAEK,OAAvB,mDAAgB,eAAgBC,QAAhC,CAA3B,CADG,CAGH;AACA;;AACA,QAAIC,aAAa,GAAG,EAApB;;AACA,QAAK,CAAE,qCAAyBN,SAAzB,EAAoC,SAApC,EAA+C,UAA/C,CAAP,EAAqE;AACpE;AACA,UAAKG,kBAAL,aAAKA,kBAAL,eAAKA,kBAAkB,CAAEI,GAAzB,EAA+B;AAC9BD,QAAAA,aAAa,GAAG,yBAAgBH,kBAAhB,aAAgBA,kBAAhB,uBAAgBA,kBAAkB,CAAEI,GAApC,CAAhB;AACA,OAFD,MAEO,IAAK,OAAOJ,kBAAP,KAA8B,QAAnC,EAA8C;AACpDG,QAAAA,aAAa,GAAG,yBAAgBH,kBAAhB,CAAhB;AACA;AACD;;AAED,QAAIK,MAAM,GAAG,EAAb,CAfG,CAiBH;;AACA,QAAKP,kBAAkB,IAAIK,aAA3B,EAA2C;AAC1CE,MAAAA,MAAM,IAAI,2BACTV,QADS,EAETI,iBAFS,EAGT,SAHS,EAITI,aAJS,CAAV;AAMA;;AACD,WAAOE,MAAP;AACA,GA1Ca;;AA2CdC,EAAAA,cAAc,GAAG;AAChB,WAAO,UAAP;AACA,GA7Ca;;AA8CdC,EAAAA,aAAa,CAAEC,MAAF,EAAW;AACvB,UAAMC,aAAa,GAAG,8BAAmBD,MAAnB,CAAtB;;AACA,QAAKA,MAAM,CAACE,UAAP,KAAsBC,SAA3B,EAAuC;AACtC,UAAK,CAAEH,MAAM,CAACE,UAAP,CAAkBE,QAAlB,CAA4B,MAA5B,CAAP,EAA8C;AAC7CJ,QAAAA,MAAM,CAACE,UAAP,CAAkBG,OAAlB,CAA2B,MAA3B;AACA;;AACD,aAAOL,MAAM,CAACE,UAAP,CAAkBI,GAAlB,CAAyBC,SAAF,KAAmB;AAChD3B,QAAAA,IAAI,EAAE2B,SAD0C;AAEhDC,QAAAA,IAAI,EAAEP,aAAa,CAAEM,SAAF;AAF6B,OAAnB,CAAvB,CAAP;AAIA;;AAED,UAAML,UAAU,GAAG,CAClB;AAAEtB,MAAAA,IAAI,EAAE;AAAR,KADkB,EAElB;AAAEA,MAAAA,IAAI,EAAE;AAAR,KAFkB,EAGlB;AAAEA,MAAAA,IAAI,EAAE;AAAR,KAHkB,CAAnB;AAMAsB,IAAAA,UAAU,CAACG,OAAX,CAAoB;AAAEzB,MAAAA,IAAI,EAAE,MAAR;AAAgB4B,MAAAA,IAAI,EAAEP,aAAa,CAACQ;AAApC,KAApB;AAEA,WAAOP,UAAP;AACA;;AAnEa,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\n\nexport default {\n\tname: 'default',\n\tlabel: __( 'Flow' ),\n\tinspectorControls: function DefaultLayoutInspectorControls() {\n\t\treturn null;\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions,\n\t} ) {\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tlet output = '';\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'default',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/layouts/flow.js"],"names":["name","label","inspectorControls","DefaultLayoutInspectorControls","toolBarControls","DefaultLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","blockGapStyleValue","spacing","blockGap","blockGapValue","top","output","getOrientation","getAlignments","layout","isBlockBasedTheme","alignmentInfo","alignments","undefined","includes","unshift","map","alignment","info","contentSize","wideSize","wide","none"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\n\nexport default {\n\tname: 'default',\n\tlabel: __( 'Flow' ),\n\tinspectorControls: function DefaultLayoutInspectorControls() {\n\t\treturn null;\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions,\n\t} ) {\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tlet output = '';\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'default',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout, isBlockBasedTheme ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\t// This is for backwards compatibility with hybrid themes.\n\t\tif ( ! isBlockBasedTheme ) {\n\t\t\tconst { contentSize, wideSize } = layout;\n\t\t\tif ( contentSize ) {\n\t\t\t\talignments.unshift( { name: 'full' } );\n\t\t\t}\n\n\t\t\tif ( wideSize ) {\n\t\t\t\talignments.unshift( {\n\t\t\t\t\tname: 'wide',\n\t\t\t\t\tinfo: alignmentInfo.wide,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.unlock = exports.lock = void 0;
7
+
8
+ var _privateApis = require("@wordpress/private-apis");
9
+
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+ const {
14
+ lock,
15
+ unlock
16
+ } = (0, _privateApis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.', '@wordpress/block-editor');
17
+ exports.unlock = unlock;
18
+ exports.lock = lock;
19
+ //# sourceMappingURL=lock-unlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/lock-unlock.js"],"names":["lock","unlock"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IACZ,mEACC,8GADD,EAEC,yBAFD,CADM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/block-editor'\n\t);\n"]}
@@ -5,41 +5,31 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.unlock = exports.lock = exports.experiments = void 0;
9
-
10
- var _experiments = require("@wordpress/experiments");
8
+ exports.privateApis = void 0;
11
9
 
12
10
  var globalStyles = _interopRequireWildcard(require("./components/global-styles"));
13
11
 
14
12
  var _provider = require("./components/provider");
15
13
 
14
+ var _lockUnlock = require("./lock-unlock");
15
+
16
16
  var _offCanvasEditor = _interopRequireDefault(require("./components/off-canvas-editor"));
17
17
 
18
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
19
 
20
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
21
 
22
- /**
23
- * WordPress dependencies
24
- */
25
-
26
22
  /**
27
23
  * Internal dependencies
28
24
  */
29
- const {
30
- lock,
31
- unlock
32
- } = (0, _experiments.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.', '@wordpress/block-editor');
25
+
33
26
  /**
34
- * Experimental @wordpress/block-editor APIs.
27
+ * Private @wordpress/block-editor APIs.
35
28
  */
36
-
37
- exports.unlock = unlock;
38
- exports.lock = lock;
39
- const experiments = {};
40
- exports.experiments = experiments;
41
- lock(experiments, { ...globalStyles,
29
+ const privateApis = {};
30
+ exports.privateApis = privateApis;
31
+ (0, _lockUnlock.lock)(privateApis, { ...globalStyles,
42
32
  ExperimentalBlockEditorProvider: _provider.ExperimentalBlockEditorProvider,
43
33
  OffCanvasEditor: _offCanvasEditor.default
44
34
  });
45
- //# sourceMappingURL=experiments.js.map
35
+ //# sourceMappingURL=private-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/private-apis.js"],"names":["privateApis","globalStyles","ExperimentalBlockEditorProvider","OffCanvasEditor"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;;;;;AANA;AACA;AACA;;AAMA;AACA;AACA;AACO,MAAMA,WAAW,GAAG,EAApB;;AACP,sBAAMA,WAAN,EAAmB,EAClB,GAAGC,YADe;AAElBC,EAAAA,+BAA+B,EAA/BA,yCAFkB;AAGlBC,EAAAA,eAAe,EAAfA;AAHkB,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport OffCanvasEditor from './components/off-canvas-editor';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockEditorProvider,\n\tOffCanvasEditor,\n} );\n"]}
@@ -3,38 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.unlock = exports.lock = exports.experiments = void 0;
7
-
8
- var _experiments = require("@wordpress/experiments");
6
+ exports.privateApis = void 0;
9
7
 
10
8
  var globalStyles = _interopRequireWildcard(require("./components/global-styles"));
11
9
 
12
10
  var _provider = require("./components/provider");
13
11
 
12
+ var _lockUnlock = require("./lock-unlock");
13
+
14
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- /**
19
- * WordPress dependencies
20
- */
21
-
22
18
  /**
23
19
  * Internal dependencies
24
20
  */
25
- const {
26
- lock,
27
- unlock
28
- } = (0, _experiments.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.', '@wordpress/block-editor');
21
+
29
22
  /**
30
- * Experimental @wordpress/block-editor APIs.
23
+ * Private @wordpress/block-editor APIs.
31
24
  */
32
-
33
- exports.unlock = unlock;
34
- exports.lock = lock;
35
- const experiments = {};
36
- exports.experiments = experiments;
37
- lock(experiments, { ...globalStyles,
25
+ const privateApis = {};
26
+ exports.privateApis = privateApis;
27
+ (0, _lockUnlock.lock)(privateApis, { ...globalStyles,
38
28
  ExperimentalBlockEditorProvider: _provider.ExperimentalBlockEditorProvider
39
29
  });
40
- //# sourceMappingURL=experiments.native.js.map
30
+ //# sourceMappingURL=private-apis.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/private-apis.native.js"],"names":["privateApis","globalStyles","ExperimentalBlockEditorProvider"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;;;;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACO,MAAMA,WAAW,GAAG,EAApB;;AACP,sBAAMA,WAAN,EAAmB,EAClB,GAAGC,YADe;AAElBC,EAAAA,+BAA+B,EAA/BA;AAFkB,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockEditorProvider,\n} );\n"]}
@@ -21,7 +21,7 @@ var actions = _interopRequireWildcard(require("./actions"));
21
21
 
22
22
  var _constants = require("./constants");
23
23
 
24
- var _experiments = require("../experiments");
24
+ var _lockUnlock = require("../lock-unlock");
25
25
 
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
27
 
@@ -61,6 +61,6 @@ exports.store = store;
61
61
  const registeredStore = (0, _data.registerStore)(_constants.STORE_NAME, { ...storeConfig,
62
62
  persist: ['preferences']
63
63
  });
64
- (0, _experiments.unlock)(registeredStore).registerPrivateActions(privateActions);
65
- (0, _experiments.unlock)(registeredStore).registerPrivateSelectors(privateSelectors);
64
+ (0, _lockUnlock.unlock)(registeredStore).registerPrivateActions(privateActions);
65
+ (0, _lockUnlock.unlock)(registeredStore).registerPrivateSelectors(privateSelectors);
66
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/store/index.js"],"names":["storeConfig","reducer","selectors","actions","store","STORE_NAME","persist","registeredStore","registerPrivateActions","privateActions","registerPrivateSelectors","privateSelectors"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAG;AAC1BC,EAAAA,OAAO,EAAPA,gBAD0B;AAE1BC,EAAAA,SAF0B;AAG1BC,EAAAA;AAH0B,CAApB;AAMP;AACA;AACA;AACA;AACA;;;AACO,MAAMC,KAAK,GAAG,4BAAkBC,qBAAlB,EAA8B,EAClD,GAAGL,WAD+C;AAElDM,EAAAA,OAAO,EAAE,CAAE,aAAF;AAFyC,CAA9B,CAAd,C,CAKP;AACA;;;AACA,MAAMC,eAAe,GAAG,yBAAeF,qBAAf,EAA2B,EAClD,GAAGL,WAD+C;AAElDM,EAAAA,OAAO,EAAE,CAAE,aAAF;AAFyC,CAA3B,CAAxB;AAIA,yBAAQC,eAAR,EAA0BC,sBAA1B,CAAkDC,cAAlD;AACA,yBAAQF,eAAR,EAA0BG,wBAA1B,CAAoDC,gBAApD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, registerStore } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as privateActions from './private-actions';\nimport * as privateSelectors from './private-selectors';\nimport * as actions from './actions';\nimport { STORE_NAME } from './constants';\nimport { unlock } from '../experiments';\n\n/**\n * Block editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore\n */\nexport const storeConfig = {\n\treducer,\n\tselectors,\n\tactions,\n};\n\n/**\n * Store definition for the block editor namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n */\nexport const store = createReduxStore( STORE_NAME, {\n\t...storeConfig,\n\tpersist: [ 'preferences' ],\n} );\n\n// We will be able to use the `register` function once we switch\n// the \"preferences\" persistence to use the new preferences package.\nconst registeredStore = registerStore( STORE_NAME, {\n\t...storeConfig,\n\tpersist: [ 'preferences' ],\n} );\nunlock( registeredStore ).registerPrivateActions( privateActions );\nunlock( registeredStore ).registerPrivateSelectors( privateSelectors );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/store/index.js"],"names":["storeConfig","reducer","selectors","actions","store","STORE_NAME","persist","registeredStore","registerPrivateActions","privateActions","registerPrivateSelectors","privateSelectors"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAG;AAC1BC,EAAAA,OAAO,EAAPA,gBAD0B;AAE1BC,EAAAA,SAF0B;AAG1BC,EAAAA;AAH0B,CAApB;AAMP;AACA;AACA;AACA;AACA;;;AACO,MAAMC,KAAK,GAAG,4BAAkBC,qBAAlB,EAA8B,EAClD,GAAGL,WAD+C;AAElDM,EAAAA,OAAO,EAAE,CAAE,aAAF;AAFyC,CAA9B,CAAd,C,CAKP;AACA;;;AACA,MAAMC,eAAe,GAAG,yBAAeF,qBAAf,EAA2B,EAClD,GAAGL,WAD+C;AAElDM,EAAAA,OAAO,EAAE,CAAE,aAAF;AAFyC,CAA3B,CAAxB;AAIA,wBAAQC,eAAR,EAA0BC,sBAA1B,CAAkDC,cAAlD;AACA,wBAAQF,eAAR,EAA0BG,wBAA1B,CAAoDC,gBAApD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, registerStore } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as privateActions from './private-actions';\nimport * as privateSelectors from './private-selectors';\nimport * as actions from './actions';\nimport { STORE_NAME } from './constants';\nimport { unlock } from '../lock-unlock';\n\n/**\n * Block editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore\n */\nexport const storeConfig = {\n\treducer,\n\tselectors,\n\tactions,\n};\n\n/**\n * Store definition for the block editor namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n */\nexport const store = createReduxStore( STORE_NAME, {\n\t...storeConfig,\n\tpersist: [ 'preferences' ],\n} );\n\n// We will be able to use the `register` function once we switch\n// the \"preferences\" persistence to use the new preferences package.\nconst registeredStore = registerStore( STORE_NAME, {\n\t...storeConfig,\n\tpersist: [ 'preferences' ],\n} );\nunlock( registeredStore ).registerPrivateActions( privateActions );\nunlock( registeredStore ).registerPrivateSelectors( privateSelectors );\n"]}
@@ -44,9 +44,7 @@ export default function BlockActions(_ref) {
44
44
  flashBlock,
45
45
  setBlockMovingClientId,
46
46
  setNavigationMode,
47
- selectBlock,
48
- clearSelectedBlock,
49
- multiSelect
47
+ selectBlock
50
48
  } = useDispatch(blockEditorStore);
51
49
  const notifyCopy = useNotifyCopy();
52
50
  const pasteStyles = usePasteStyles();
@@ -128,10 +126,7 @@ export default function BlockActions(_ref) {
128
126
  },
129
127
 
130
128
  async onPasteStyles() {
131
- await pasteStyles(blocks); // Need to reselect the block(s) in order for optional tool panel control changes to register.
132
-
133
- clearSelectedBlock();
134
- multiSelect(blocks[0].clientId, blocks[blocks.length - 1].clientId);
129
+ await pasteStyles(blocks);
135
130
  }
136
131
 
137
132
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"names":["useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","usePasteStyles","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","canMoveBlocks","canRemoveBlocks","getDefaultBlockName","getGroupingBlockName","blocks","rootClientId","canDuplicate","every","block","name","canInsertDefaultBlock","canMove","canRemove","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","clearSelectedBlock","multiSelect","notifyCopy","pasteStyles","onDuplicate","onRemove","onInsertBefore","clientId","Array","isArray","onInsertAfter","length","onMoveTo","onGroup","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","selectedBlockClientIds","map","onPasteStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../copy-handler';\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\n\tconst canMove = canMoveBlocks( clientIds, rootClientId );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tmultiSelect,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanDuplicate,\n\t\tcanInsertDefaultBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\trootClientId,\n\t\tblocks,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tinsertBeforeBlock( clientId );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t: clientId;\n\t\t\tinsertAfterBlock( clientId );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tconst selectedBlockClientIds = blocks.map(\n\t\t\t\t( { clientId } ) => clientId\n\t\t\t);\n\t\t\tif ( blocks.length === 1 ) {\n\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', selectedBlockClientIds );\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( blocks );\n\n\t\t\t// Need to reselect the block(s) in order for optional tool panel control changes to register.\n\t\t\tclearSelectedBlock();\n\t\t\tmultiSelect(\n\t\t\t\tblocks[ 0 ].clientId,\n\t\t\t\tblocks[ blocks.length - 1 ].clientId\n\t\t\t);\n\t\t},\n\t} );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"names":["useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","usePasteStyles","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","canMoveBlocks","canRemoveBlocks","getDefaultBlockName","getGroupingBlockName","blocks","rootClientId","canDuplicate","every","block","name","canInsertDefaultBlock","canMove","canRemove","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","notifyCopy","pasteStyles","onDuplicate","onRemove","onInsertBefore","clientId","Array","isArray","onInsertAfter","length","onMoveTo","onGroup","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","selectedBlockClientIds","map","onPasteStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../copy-handler';\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\n\tconst canMove = canMoveBlocks( clientIds, rootClientId );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanDuplicate,\n\t\tcanInsertDefaultBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\trootClientId,\n\t\tblocks,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tinsertBeforeBlock( clientId );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t: clientId;\n\t\t\tinsertAfterBlock( clientId );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tconst selectedBlockClientIds = blocks.map(\n\t\t\t\t( { clientId } ) => clientId\n\t\t\t);\n\t\t\tif ( blocks.length === 1 ) {\n\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', selectedBlockClientIds );\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( blocks );\n\t\t},\n\t} );\n}\n"]}
@@ -22,7 +22,8 @@ export default function useAvailableAlignments() {
22
22
 
23
23
  const {
24
24
  wideControlsEnabled = false,
25
- themeSupportsLayout
25
+ themeSupportsLayout,
26
+ isBlockBasedTheme
26
27
  } = useSelect(select => {
27
28
  const {
28
29
  getSettings
@@ -30,12 +31,13 @@ export default function useAvailableAlignments() {
30
31
  const settings = getSettings();
31
32
  return {
32
33
  wideControlsEnabled: settings.alignWide,
33
- themeSupportsLayout: settings.supportsLayout
34
+ themeSupportsLayout: settings.supportsLayout,
35
+ isBlockBasedTheme: settings.__unstableIsBlockBasedTheme
34
36
  };
35
37
  }, []);
36
38
  const layout = useLayout();
37
39
  const layoutType = getLayoutType(layout === null || layout === void 0 ? void 0 : layout.type);
38
- const layoutAlignments = layoutType.getAlignments(layout);
40
+ const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme);
39
41
 
40
42
  if (themeSupportsLayout) {
41
43
  const alignments = layoutAlignments.filter(_ref => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"names":["useSelect","useLayout","store","blockEditorStore","getLayoutType","EMPTY_ARRAY","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","wideControlsEnabled","themeSupportsLayout","select","getSettings","settings","alignWide","supportsLayout","layout","layoutType","type","layoutAlignments","getAlignments","alignments","filter","name","alignmentName","length","availableAlignments","enabledControls","control","map","enabledControl"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,aAAT,QAA8B,eAA9B;AAEA,MAAMC,WAAW,GAAG,EAApB;AACA,MAAMC,gBAAgB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAkB,QAAlB,EAA4B,OAA5B,EAAqC,MAArC,EAA6C,MAA7C,CAAzB;AACA,MAAMC,aAAa,GAAG,CAAE,MAAF,EAAU,MAAV,CAAtB;AAEA,eAAe,SAASC,sBAAT,GAA+D;AAAA,MAA9BC,QAA8B,uEAAnBH,gBAAmB;;AAC7E;AACA,MAAK,CAAEG,QAAQ,CAACC,QAAT,CAAmB,MAAnB,CAAP,EAAqC;AACpCD,IAAAA,QAAQ,GAAG,CAAE,MAAF,EAAU,GAAGA,QAAb,CAAX;AACA;;AACD,QAAM;AAAEE,IAAAA,mBAAmB,GAAG,KAAxB;AAA+BC,IAAAA;AAA/B,MAAuDZ,SAAS,CACnEa,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEV,gBAAF,CAA9B;AACA,UAAMY,QAAQ,GAAGD,WAAW,EAA5B;AACA,WAAO;AACNH,MAAAA,mBAAmB,EAAEI,QAAQ,CAACC,SADxB;AAENJ,MAAAA,mBAAmB,EAAEG,QAAQ,CAACE;AAFxB,KAAP;AAIA,GARoE,EASrE,EATqE,CAAtE;AAWA,QAAMC,MAAM,GAAGjB,SAAS,EAAxB;AACA,QAAMkB,UAAU,GAAGf,aAAa,CAAEc,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEE,IAAV,CAAhC;AACA,QAAMC,gBAAgB,GAAGF,UAAU,CAACG,aAAX,CAA0BJ,MAA1B,CAAzB;;AAEA,MAAKN,mBAAL,EAA2B;AAC1B,UAAMW,UAAU,GAAGF,gBAAgB,CAACG,MAAjB,CAClB;AAAA,UAAE;AAAEC,QAAAA,IAAI,EAAEC;AAAR,OAAF;AAAA,aAA+BjB,QAAQ,CAACC,QAAT,CAAmBgB,aAAnB,CAA/B;AAAA,KADkB,CAAnB,CAD0B,CAI1B;AACA;;AACA,QAAKH,UAAU,CAACI,MAAX,KAAsB,CAAtB,IAA2BJ,UAAU,CAAE,CAAF,CAAV,CAAgBE,IAAhB,KAAyB,MAAzD,EAAkE;AACjE,aAAOpB,WAAP;AACA;;AACD,WAAOkB,UAAP;AACA,GA9B4E,CAgC7E;;;AACA,MAAKJ,UAAU,CAACM,IAAX,KAAoB,SAApB,IAAiCN,UAAU,CAACM,IAAX,KAAoB,aAA1D,EAA0E;AACzE,WAAOpB,WAAP;AACA;;AACD,QAAM;AAAEkB,IAAAA,UAAU,EAAEK,mBAAmB,GAAGtB;AAApC,MAAyDY,MAA/D;AACA,QAAMW,eAAe,GAAGpB,QAAQ,CAC9Be,MADsB,CAEpBM,OAAF,IACC,CAAEZ,MAAM,CAACK,UAAP,IAAqB;AACtBZ,EAAAA,mBADC,IAED,CAAEJ,aAAa,CAACG,QAAd,CAAwBoB,OAAxB,CAFH,KAGAF,mBAAmB,CAAClB,QAApB,CAA8BoB,OAA9B,CANqB,EAQtBC,GARsB,CAQfC,cAAF,KAAwB;AAAEP,IAAAA,IAAI,EAAEO;AAAR,GAAxB,CARiB,CAAxB,CArC6E,CA+C7E;AACA;;AACA,MACCH,eAAe,CAACF,MAAhB,KAA2B,CAA3B,IACAE,eAAe,CAAE,CAAF,CAAf,CAAqBJ,IAArB,KAA8B,MAF/B,EAGE;AACD,WAAOpB,WAAP;AACA;;AAED,SAAOwB,eAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useLayout } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\nconst EMPTY_ARRAY = [];\nconst DEFAULT_CONTROLS = [ 'none', 'left', 'center', 'right', 'wide', 'full' ];\nconst WIDE_CONTROLS = [ 'wide', 'full' ];\n\nexport default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {\n\t// Always add the `none` option if not exists.\n\tif ( ! controls.includes( 'none' ) ) {\n\t\tcontrols = [ 'none', ...controls ];\n\t}\n\tconst { wideControlsEnabled = false, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\twideControlsEnabled: settings.alignWide,\n\t\t\t\tthemeSupportsLayout: settings.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst layout = useLayout();\n\tconst layoutType = getLayoutType( layout?.type );\n\tconst layoutAlignments = layoutType.getAlignments( layout );\n\n\tif ( themeSupportsLayout ) {\n\t\tconst alignments = layoutAlignments.filter(\n\t\t\t( { name: alignmentName } ) => controls.includes( alignmentName )\n\t\t);\n\t\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t\t// other alignments exist.\n\t\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn alignments;\n\t}\n\n\t// Starting here, it's the fallback for themes not supporting the layout config.\n\tif ( layoutType.name !== 'default' && layoutType.name !== 'constrained' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\tconst { alignments: availableAlignments = DEFAULT_CONTROLS } = layout;\n\tconst enabledControls = controls\n\t\t.filter(\n\t\t\t( control ) =>\n\t\t\t\t( layout.alignments || // Ignore the global wideAlignment check if the layout explicitely defines alignments.\n\t\t\t\t\twideControlsEnabled ||\n\t\t\t\t\t! WIDE_CONTROLS.includes( control ) ) &&\n\t\t\t\tavailableAlignments.includes( control )\n\t\t)\n\t\t.map( ( enabledControl ) => ( { name: enabledControl } ) );\n\n\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t// other alignments exist.\n\tif (\n\t\tenabledControls.length === 1 &&\n\t\tenabledControls[ 0 ].name === 'none'\n\t) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\treturn enabledControls;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"names":["useSelect","useLayout","store","blockEditorStore","getLayoutType","EMPTY_ARRAY","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","wideControlsEnabled","themeSupportsLayout","isBlockBasedTheme","select","getSettings","settings","alignWide","supportsLayout","__unstableIsBlockBasedTheme","layout","layoutType","type","layoutAlignments","getAlignments","alignments","filter","name","alignmentName","length","availableAlignments","enabledControls","control","map","enabledControl"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useLayout } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\nconst EMPTY_ARRAY = [];\nconst DEFAULT_CONTROLS = [ 'none', 'left', 'center', 'right', 'wide', 'full' ];\nconst WIDE_CONTROLS = [ 'wide', 'full' ];\n\nexport default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {\n\t// Always add the `none` option if not exists.\n\tif ( ! controls.includes( 'none' ) ) {\n\t\tcontrols = [ 'none', ...controls ];\n\t}\n\tconst {\n\t\twideControlsEnabled = false,\n\t\tthemeSupportsLayout,\n\t\tisBlockBasedTheme,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\twideControlsEnabled: settings.alignWide,\n\t\t\tthemeSupportsLayout: settings.supportsLayout,\n\t\t\tisBlockBasedTheme: settings.__unstableIsBlockBasedTheme,\n\t\t};\n\t}, [] );\n\tconst layout = useLayout();\n\tconst layoutType = getLayoutType( layout?.type );\n\tconst layoutAlignments = layoutType.getAlignments(\n\t\tlayout,\n\t\tisBlockBasedTheme\n\t);\n\n\tif ( themeSupportsLayout ) {\n\t\tconst alignments = layoutAlignments.filter(\n\t\t\t( { name: alignmentName } ) => controls.includes( alignmentName )\n\t\t);\n\t\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t\t// other alignments exist.\n\t\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn alignments;\n\t}\n\n\t// Starting here, it's the fallback for themes not supporting the layout config.\n\tif ( layoutType.name !== 'default' && layoutType.name !== 'constrained' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\tconst { alignments: availableAlignments = DEFAULT_CONTROLS } = layout;\n\tconst enabledControls = controls\n\t\t.filter(\n\t\t\t( control ) =>\n\t\t\t\t( layout.alignments || // Ignore the global wideAlignment check if the layout explicitely defines alignments.\n\t\t\t\t\twideControlsEnabled ||\n\t\t\t\t\t! WIDE_CONTROLS.includes( control ) ) &&\n\t\t\t\tavailableAlignments.includes( control )\n\t\t)\n\t\t.map( ( enabledControl ) => ( { name: enabledControl } ) );\n\n\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t// other alignments exist.\n\tif (\n\t\tenabledControls.length === 1 &&\n\t\tenabledControls[ 0 ].name === 'none'\n\t) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\treturn enabledControls;\n}\n"]}
@@ -24,7 +24,7 @@ import { store as blockEditorStore } from '../../store';
24
24
  import BlockPopover from '../block-popover';
25
25
  import useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';
26
26
  import Inserter from '../inserter';
27
- import { unlock } from '../../experiments';
27
+ import { unlock } from '../../lock-unlock';
28
28
 
29
29
  function selector(select) {
30
30
  const {