@wordpress/block-editor 11.3.9 → 11.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/inserter/block-patterns-tab.js +4 -2
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/index.js +2 -1
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/rich-text/index.js +2 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +7 -3
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/hooks/position.js +2 -2
- package/build/hooks/position.js.map +1 -1
- package/build/layouts/utils.js +3 -2
- package/build/layouts/utils.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +5 -2
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -1
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +2 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +7 -3
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/hooks/position.js +3 -3
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/layouts/utils.js +3 -2
- package/build-module/layouts/utils.js.map +1 -1
- package/package.json +5 -5
- package/src/components/inserter/block-patterns-tab.js +4 -2
- package/src/components/inserter/index.js +1 -1
- package/src/components/rich-text/index.js +2 -1
- package/src/components/rich-text/use-input-rules.js +6 -2
- package/src/hooks/position.js +3 -3
- package/src/layouts/utils.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/position.js"],"names":["classnames","__","sprintf","getBlockSupport","hasBlockSupport","BaseControl","privateApis","componentsPrivateApis","createHigherOrderComponent","useInstanceId","useSelect","useContext","useMemo","createPortal","Platform","addFilter","BlockList","useSetting","InspectorControls","cleanEmptyObject","unlock","store","blockEditorStore","CustomSelectControl","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","parents","length","options","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","web","selectedItem","native","withInspectorControls","BlockEdit","positionSupport","showPositionControls","withPositionStyles","BlockListBlock","hasPositionBlockSupport","allowPositionStyles","id","element","__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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/position.js"],"names":["classnames","__","_x","sprintf","getBlockSupport","hasBlockSupport","BaseControl","privateApis","componentsPrivateApis","createHigherOrderComponent","useInstanceId","useSelect","useContext","useMemo","createPortal","Platform","addFilter","BlockList","useSetting","InspectorControls","cleanEmptyObject","unlock","store","blockEditorStore","CustomSelectControl","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","parents","length","options","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","web","selectedItem","native","withInspectorControls","BlockEdit","positionSupport","showPositionControls","withPositionStyles","BlockListBlock","hasPositionBlockSupport","allowPositionStyles","id","element","__unstableElementContext","positionSelector","css"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, 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: _x( 'Sticky', 'Name for the value of the CSS position property' ),\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: _x( 'Fixed', 'Name for the value of the CSS position property' ),\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"]}
|
|
@@ -68,12 +68,13 @@ export function getBlockGapCSS(selector, layoutDefinitions, layoutType, blockGap
|
|
|
68
68
|
export function getAlignmentsInfo(layout) {
|
|
69
69
|
const {
|
|
70
70
|
contentSize,
|
|
71
|
-
wideSize
|
|
71
|
+
wideSize,
|
|
72
|
+
type = 'default'
|
|
72
73
|
} = layout;
|
|
73
74
|
const alignmentInfo = {};
|
|
74
75
|
const sizeRegex = /^(?!0)\d+(px|em|rem|vw|vh|%)?$/i;
|
|
75
76
|
|
|
76
|
-
if (sizeRegex.test(contentSize)) {
|
|
77
|
+
if (sizeRegex.test(contentSize) && type === 'constrained') {
|
|
77
78
|
// translators: %s: container size (i.e. 600px etc)
|
|
78
79
|
alignmentInfo.none = sprintf(__('Max %s wide'), contentSize);
|
|
79
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/layouts/utils.js"],"names":["__","sprintf","appendSelectors","selectors","append","split","map","subselector","join","getBlockGapCSS","selector","layoutDefinitions","layoutType","blockGapValue","output","spacingStyles","length","forEach","gapStyle","trim","Object","entries","rules","cssProperty","value","getAlignmentsInfo","layout","contentSize","wideSize","alignmentInfo","sizeRegex","test","none","wide"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAA0BC,SAA1B,EAAmD;AAAA,MAAdC,MAAc,uEAAL,EAAK;AACzD;AACA;AACA;AACA;AACA;AAEA,SAAOD,SAAS,CACdE,KADK,CACE,GADF,EAELC,GAFK,CAGHC,WAAF,IACE,0BAA0BA,WAAa,GACvCH,MAAM,GAAI,IAAIA,MAAQ,EAAhB,GAAoB,EAC1B,EANG,EAQLI,IARK,CAQC,GARD,CAAP;AASA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,cAAT,CACNC,QADM,EAENC,iBAFM,EAGNC,UAHM,EAINC,aAJM,EAKL;AAAA;;AACD,MAAIC,MAAM,GAAG,EAAb;;AACA,MACCH,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,6BAAAA,iBAAiB,CAAIC,UAAJ,CAAjB,kGAAmCG,aAAnC,0EAAkDC,MAAlD,IACAH,aAFD,EAGE;AACDF,IAAAA,iBAAiB,CAAEC,UAAF,CAAjB,CAAgCG,aAAhC,CAA8CE,OAA9C,CAAyDC,QAAF,IAAgB;AACtEJ,MAAAA,MAAM,IAAK,GAAGZ,eAAe,CAC5BQ,QAD4B,EAE5BQ,QAAQ,CAACR,QAAT,CAAkBS,IAAlB,EAF4B,CAG1B,KAHH;AAIAL,MAAAA,MAAM,IAAIM,MAAM,CAACC,OAAP,CAAgBH,QAAQ,CAACI,KAAzB,EACRhB,GADQ,CAER;AAAA,YAAE,CAAEiB,WAAF,EAAeC,KAAf,CAAF;AAAA,eACE,GAAGD,WAAa,KAAKC,KAAK,GAAGA,KAAH,GAAWX,aAAe,EADtD;AAAA,OAFQ,EAKRL,IALQ,CAKF,IALE,CAAV;AAMAM,MAAAA,MAAM,IAAI,KAAV;AACA,KAZD;AAaA;;AACD,SAAOA,MAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,iBAAT,CAA4BC,MAA5B,EAAqC;AAC3C,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/layouts/utils.js"],"names":["__","sprintf","appendSelectors","selectors","append","split","map","subselector","join","getBlockGapCSS","selector","layoutDefinitions","layoutType","blockGapValue","output","spacingStyles","length","forEach","gapStyle","trim","Object","entries","rules","cssProperty","value","getAlignmentsInfo","layout","contentSize","wideSize","type","alignmentInfo","sizeRegex","test","none","wide"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAA0BC,SAA1B,EAAmD;AAAA,MAAdC,MAAc,uEAAL,EAAK;AACzD;AACA;AACA;AACA;AACA;AAEA,SAAOD,SAAS,CACdE,KADK,CACE,GADF,EAELC,GAFK,CAGHC,WAAF,IACE,0BAA0BA,WAAa,GACvCH,MAAM,GAAI,IAAIA,MAAQ,EAAhB,GAAoB,EAC1B,EANG,EAQLI,IARK,CAQC,GARD,CAAP;AASA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,cAAT,CACNC,QADM,EAENC,iBAFM,EAGNC,UAHM,EAINC,aAJM,EAKL;AAAA;;AACD,MAAIC,MAAM,GAAG,EAAb;;AACA,MACCH,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,6BAAAA,iBAAiB,CAAIC,UAAJ,CAAjB,kGAAmCG,aAAnC,0EAAkDC,MAAlD,IACAH,aAFD,EAGE;AACDF,IAAAA,iBAAiB,CAAEC,UAAF,CAAjB,CAAgCG,aAAhC,CAA8CE,OAA9C,CAAyDC,QAAF,IAAgB;AACtEJ,MAAAA,MAAM,IAAK,GAAGZ,eAAe,CAC5BQ,QAD4B,EAE5BQ,QAAQ,CAACR,QAAT,CAAkBS,IAAlB,EAF4B,CAG1B,KAHH;AAIAL,MAAAA,MAAM,IAAIM,MAAM,CAACC,OAAP,CAAgBH,QAAQ,CAACI,KAAzB,EACRhB,GADQ,CAER;AAAA,YAAE,CAAEiB,WAAF,EAAeC,KAAf,CAAF;AAAA,eACE,GAAGD,WAAa,KAAKC,KAAK,GAAGA,KAAH,GAAWX,aAAe,EADtD;AAAA,OAFQ,EAKRL,IALQ,CAKF,IALE,CAAV;AAMAM,MAAAA,MAAM,IAAI,KAAV;AACA,KAZD;AAaA;;AACD,SAAOA,MAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,iBAAT,CAA4BC,MAA5B,EAAqC;AAC3C,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,QAAf;AAAyBC,IAAAA,IAAI,GAAG;AAAhC,MAA8CH,MAApD;AACA,QAAMI,aAAa,GAAG,EAAtB;AACA,QAAMC,SAAS,GAAG,iCAAlB;;AACA,MAAKA,SAAS,CAACC,IAAV,CAAgBL,WAAhB,KAAiCE,IAAI,KAAK,aAA/C,EAA+D;AAC9D;AACAC,IAAAA,aAAa,CAACG,IAAd,GAAqBhC,OAAO,CAAED,EAAE,CAAE,aAAF,CAAJ,EAAuB2B,WAAvB,CAA5B;AACA;;AACD,MAAKI,SAAS,CAACC,IAAV,CAAgBJ,QAAhB,CAAL,EAAkC;AACjC;AACAE,IAAAA,aAAa,CAACI,IAAd,GAAqBjC,OAAO,CAAED,EAAE,CAAE,aAAF,CAAJ,EAAuB4B,QAAvB,CAA5B;AACA;;AACD,SAAOE,aAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Utility to generate the proper CSS selector for layout styles.\n *\n * @param {string} selectors CSS selector, also supports multiple comma-separated selectors.\n * @param {string} append The string to append.\n *\n * @return {string} - CSS selector.\n */\nexport function appendSelectors( selectors, append = '' ) {\n\t// Ideally we shouldn't need the `.editor-styles-wrapper` increased specificity here\n\t// The problem though is that we have a `.editor-styles-wrapper p { margin: reset; }` style\n\t// it's used to reset the default margin added by wp-admin to paragraphs\n\t// so we need this to be higher speficity otherwise, it won't be applied to paragraphs inside containers\n\t// When the post editor is fully iframed, this extra classname could be removed.\n\n\treturn selectors\n\t\t.split( ',' )\n\t\t.map(\n\t\t\t( subselector ) =>\n\t\t\t\t`.editor-styles-wrapper ${ subselector }${\n\t\t\t\t\tappend ? ` ${ append }` : ''\n\t\t\t\t}`\n\t\t)\n\t\t.join( ',' );\n}\n\n/**\n * Get generated blockGap CSS rules based on layout definitions provided in theme.json\n * Falsy values in the layout definition's spacingStyles rules will be swapped out\n * with the provided `blockGapValue`.\n *\n * @param {string} selector The CSS selector to target for the generated rules.\n * @param {Object} layoutDefinitions Layout definitions object from theme.json.\n * @param {string} layoutType The layout type (e.g. `default` or `flex`).\n * @param {string} blockGapValue The current blockGap value to be applied.\n * @return {string} The generated CSS rules.\n */\nexport function getBlockGapCSS(\n\tselector,\n\tlayoutDefinitions,\n\tlayoutType,\n\tblockGapValue\n) {\n\tlet output = '';\n\tif (\n\t\tlayoutDefinitions?.[ layoutType ]?.spacingStyles?.length &&\n\t\tblockGapValue\n\t) {\n\t\tlayoutDefinitions[ layoutType ].spacingStyles.forEach( ( gapStyle ) => {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\tgapStyle.selector.trim()\n\t\t\t) } { `;\n\t\t\toutput += Object.entries( gapStyle.rules )\n\t\t\t\t.map(\n\t\t\t\t\t( [ cssProperty, value ] ) =>\n\t\t\t\t\t\t`${ cssProperty }: ${ value ? value : blockGapValue }`\n\t\t\t\t)\n\t\t\t\t.join( '; ' );\n\t\t\toutput += '; }';\n\t\t} );\n\t}\n\treturn output;\n}\n\n/**\n * Helper method to assign contextual info to clarify\n * alignment settings.\n *\n * Besides checking if `contentSize` and `wideSize` have a\n * value, we now show this information only if their values\n * are not a `css var`. This needs to change when parsing\n * css variables land.\n *\n * @see https://github.com/WordPress/gutenberg/pull/34710#issuecomment-918000752\n *\n * @param {Object} layout The layout object.\n * @return {Object} An object with contextual info per alignment.\n */\nexport function getAlignmentsInfo( layout ) {\n\tconst { contentSize, wideSize, type = 'default' } = layout;\n\tconst alignmentInfo = {};\n\tconst sizeRegex = /^(?!0)\\d+(px|em|rem|vw|vh|%)?$/i;\n\tif ( sizeRegex.test( contentSize ) && type === 'constrained' ) {\n\t\t// translators: %s: container size (i.e. 600px etc)\n\t\talignmentInfo.none = sprintf( __( 'Max %s wide' ), contentSize );\n\t}\n\tif ( sizeRegex.test( wideSize ) ) {\n\t\t// translators: %s: container size (i.e. 600px etc)\n\t\talignmentInfo.wide = sprintf( __( 'Max %s wide' ), wideSize );\n\t}\n\treturn alignmentInfo;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-editor",
|
|
3
|
-
"version": "11.3.
|
|
3
|
+
"version": "11.3.10",
|
|
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.23.1",
|
|
38
38
|
"@wordpress/blob": "^3.26.1",
|
|
39
39
|
"@wordpress/blocks": "^12.3.3",
|
|
40
|
-
"@wordpress/components": "^23.3.
|
|
40
|
+
"@wordpress/components": "^23.3.7",
|
|
41
41
|
"@wordpress/compose": "^6.3.3",
|
|
42
42
|
"@wordpress/data": "^8.3.3",
|
|
43
43
|
"@wordpress/date": "^4.26.2",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"@wordpress/keyboard-shortcuts": "^4.3.3",
|
|
54
54
|
"@wordpress/keycodes": "^3.26.2",
|
|
55
55
|
"@wordpress/notices": "^3.26.3",
|
|
56
|
-
"@wordpress/preferences": "^3.3.
|
|
56
|
+
"@wordpress/preferences": "^3.3.7",
|
|
57
57
|
"@wordpress/private-apis": "^0.8.1",
|
|
58
|
-
"@wordpress/rich-text": "^6.3.
|
|
58
|
+
"@wordpress/rich-text": "^6.3.4",
|
|
59
59
|
"@wordpress/shortcode": "^3.26.1",
|
|
60
60
|
"@wordpress/style-engine": "^1.9.1",
|
|
61
61
|
"@wordpress/token-list": "^2.26.1",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"publishConfig": {
|
|
84
84
|
"access": "public"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "6cf78aefb52e1ca38b58aa38a44a312b744f3310"
|
|
87
87
|
}
|
|
@@ -28,7 +28,9 @@ import BlockPatternList from '../block-patterns-list';
|
|
|
28
28
|
import PatternsExplorerModal from './block-patterns-explorer/explorer';
|
|
29
29
|
import MobileTabNavigation from './mobile-tab-navigation';
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
const noop = () => {};
|
|
32
|
+
|
|
33
|
+
// Preferred order of pattern categories. Any other categories should
|
|
32
34
|
// be at the bottom without any re-ordering.
|
|
33
35
|
const patternCategoriesOrder = [
|
|
34
36
|
'featured',
|
|
@@ -148,7 +150,7 @@ export function BlockPatternsCategoryDialog( {
|
|
|
148
150
|
export function BlockPatternsCategoryPanel( {
|
|
149
151
|
rootClientId,
|
|
150
152
|
onInsert,
|
|
151
|
-
onHover,
|
|
153
|
+
onHover = noop,
|
|
152
154
|
category,
|
|
153
155
|
showTitlesAsTooltip,
|
|
154
156
|
} ) {
|
|
@@ -214,7 +214,7 @@ class PrivateInserter extends Component {
|
|
|
214
214
|
'block-editor-inserter__popover',
|
|
215
215
|
{ 'is-quick': isQuick }
|
|
216
216
|
) }
|
|
217
|
-
popoverProps={ { position } }
|
|
217
|
+
popoverProps={ { position, shift: true } }
|
|
218
218
|
onToggle={ this.onToggle }
|
|
219
219
|
expandOnMobile
|
|
220
220
|
headerTitle={ __( 'Add a block' ) }
|
|
@@ -281,6 +281,7 @@ function RichTextWrapper(
|
|
|
281
281
|
|
|
282
282
|
const {
|
|
283
283
|
value,
|
|
284
|
+
getValue,
|
|
284
285
|
onChange,
|
|
285
286
|
ref: richTextRef,
|
|
286
287
|
} = useRichText( {
|
|
@@ -401,7 +402,7 @@ function RichTextWrapper(
|
|
|
401
402
|
richTextRef,
|
|
402
403
|
useBeforeInputRules( { value, onChange } ),
|
|
403
404
|
useInputRules( {
|
|
404
|
-
|
|
405
|
+
getValue,
|
|
405
406
|
onChange,
|
|
406
407
|
__unstableAllowPrefixTransformations,
|
|
407
408
|
formatTypes,
|
|
@@ -49,12 +49,15 @@ export function useInputRules( props ) {
|
|
|
49
49
|
propsRef.current = props;
|
|
50
50
|
return useRefEffect( ( element ) => {
|
|
51
51
|
function inputRule() {
|
|
52
|
-
const {
|
|
52
|
+
const { getValue, onReplace, selectionChange } = propsRef.current;
|
|
53
53
|
|
|
54
54
|
if ( ! onReplace ) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
// We must use getValue() here because value may be update
|
|
59
|
+
// asynchronously.
|
|
60
|
+
const value = getValue();
|
|
58
61
|
const { start, text } = value;
|
|
59
62
|
const characterBefore = text.slice( start - 1, start );
|
|
60
63
|
|
|
@@ -91,7 +94,7 @@ export function useInputRules( props ) {
|
|
|
91
94
|
function onInput( event ) {
|
|
92
95
|
const { inputType, type } = event;
|
|
93
96
|
const {
|
|
94
|
-
|
|
97
|
+
getValue,
|
|
95
98
|
onChange,
|
|
96
99
|
__unstableAllowPrefixTransformations,
|
|
97
100
|
formatTypes,
|
|
@@ -106,6 +109,7 @@ export function useInputRules( props ) {
|
|
|
106
109
|
inputRule();
|
|
107
110
|
}
|
|
108
111
|
|
|
112
|
+
const value = getValue();
|
|
109
113
|
const transformed = formatTypes.reduce(
|
|
110
114
|
( accumlator, { __unstableInputRule } ) => {
|
|
111
115
|
if ( __unstableInputRule ) {
|
package/src/hooks/position.js
CHANGED
|
@@ -6,7 +6,7 @@ import classnames from 'classnames';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
9
|
+
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
10
10
|
import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';
|
|
11
11
|
import {
|
|
12
12
|
BaseControl,
|
|
@@ -49,7 +49,7 @@ const DEFAULT_OPTION = {
|
|
|
49
49
|
const STICKY_OPTION = {
|
|
50
50
|
key: 'sticky',
|
|
51
51
|
value: 'sticky',
|
|
52
|
-
name:
|
|
52
|
+
name: _x( 'Sticky', 'Name for the value of the CSS position property' ),
|
|
53
53
|
className: OPTION_CLASSNAME,
|
|
54
54
|
__experimentalHint: __(
|
|
55
55
|
'The block will stick to the top of the window instead of scrolling.'
|
|
@@ -59,7 +59,7 @@ const STICKY_OPTION = {
|
|
|
59
59
|
const FIXED_OPTION = {
|
|
60
60
|
key: 'fixed',
|
|
61
61
|
value: 'fixed',
|
|
62
|
-
name:
|
|
62
|
+
name: _x( 'Fixed', 'Name for the value of the CSS position property' ),
|
|
63
63
|
className: OPTION_CLASSNAME,
|
|
64
64
|
__experimentalHint: __(
|
|
65
65
|
'The block will not move when the page is scrolled.'
|
package/src/layouts/utils.js
CHANGED
|
@@ -83,10 +83,10 @@ export function getBlockGapCSS(
|
|
|
83
83
|
* @return {Object} An object with contextual info per alignment.
|
|
84
84
|
*/
|
|
85
85
|
export function getAlignmentsInfo( layout ) {
|
|
86
|
-
const { contentSize, wideSize } = layout;
|
|
86
|
+
const { contentSize, wideSize, type = 'default' } = layout;
|
|
87
87
|
const alignmentInfo = {};
|
|
88
88
|
const sizeRegex = /^(?!0)\d+(px|em|rem|vw|vh|%)?$/i;
|
|
89
|
-
if ( sizeRegex.test( contentSize ) ) {
|
|
89
|
+
if ( sizeRegex.test( contentSize ) && type === 'constrained' ) {
|
|
90
90
|
// translators: %s: container size (i.e. 600px etc)
|
|
91
91
|
alignmentInfo.none = sprintf( __( 'Max %s wide' ), contentSize );
|
|
92
92
|
}
|