@wordpress/reusable-blocks 5.5.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 5.6.0 (2024-08-21)
6
+
5
7
  ## 5.5.0 (2024-08-07)
6
8
 
7
9
  ## 5.4.0 (2024-07-24)
@@ -122,6 +122,7 @@ var _jsxRuntime = require("react/jsx-runtime");
122
122
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
123
123
  spacing: "5",
124
124
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
125
+ __next40pxDefaultSize: true,
125
126
  __nextHasNoMarginBottom: true,
126
127
  label: (0, _i18n.__)('Name'),
127
128
  value: title,
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_blockEditor","_element","_components","_icons","_data","_i18n","_notices","_coreData","_store","_jsxRuntime","ReusableBlockConvertButton","clientIds","rootClientId","onClose","syncType","setSyncType","useState","undefined","isModalOpen","setIsModalOpen","title","setTitle","canConvert","useSelect","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","blockEditorStore","rootId","length","blocks","isReusable","isReusableBlock","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","hasBlockSupport","name","kind","__experimentalConvertBlocksToReusable","convertBlocksToReusable","useDispatch","store","createSuccessNotice","createErrorNotice","noticesStore","onConvert","useCallback","reusableBlockTitle","sprintf","__","type","id","error","message","jsxs","Fragment","children","jsx","MenuItem","icon","symbol","onClick","Modal","onRequestClose","overlayClassName","onSubmit","event","preventDefault","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","label","value","onChange","placeholder","ToggleControl","_x","help","checked","__experimentalHStack","justify","Button","variant"],"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tMenuItem,\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store } from '../../store';\n\n/**\n * Menu control to convert block(s) to reusable block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.onClose Callback to close the menu.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function ReusableBlockConvertButton( {\n\tclientIds,\n\trootClientId,\n\tonClose,\n} ) {\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a reusable block.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when reusable blocks are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made reusable.\n\t\t\t\t\t\thasBlockSupport( block.name, 'reusable', true )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tconst { __experimentalConvertBlocksToReusable: convertBlocksToReusable } =\n\t\tuseDispatch( store );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst onConvert = useCallback(\n\t\tasync function ( reusableBlockTitle ) {\n\t\t\ttry {\n\t\t\t\tawait convertBlocksToReusable(\n\t\t\t\t\tclientIds,\n\t\t\t\t\treusableBlockTitle,\n\t\t\t\t\tsyncType\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t! syncType\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'convert-to-reusable-block-success',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'convert-to-reusable-block-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tconvertBlocksToReusable,\n\t\t\tclientIds,\n\t\t\tsyncType,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem icon={ symbol } onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Create pattern' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonConvert( title );\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_blockEditor","_element","_components","_icons","_data","_i18n","_notices","_coreData","_store","_jsxRuntime","ReusableBlockConvertButton","clientIds","rootClientId","onClose","syncType","setSyncType","useState","undefined","isModalOpen","setIsModalOpen","title","setTitle","canConvert","useSelect","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","blockEditorStore","rootId","length","blocks","isReusable","isReusableBlock","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","hasBlockSupport","name","kind","__experimentalConvertBlocksToReusable","convertBlocksToReusable","useDispatch","store","createSuccessNotice","createErrorNotice","noticesStore","onConvert","useCallback","reusableBlockTitle","sprintf","__","type","id","error","message","jsxs","Fragment","children","jsx","MenuItem","icon","symbol","onClick","Modal","onRequestClose","overlayClassName","onSubmit","event","preventDefault","__experimentalVStack","spacing","TextControl","__next40pxDefaultSize","__nextHasNoMarginBottom","label","value","onChange","placeholder","ToggleControl","_x","help","checked","__experimentalHStack","justify","Button","variant"],"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tMenuItem,\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store } from '../../store';\n\n/**\n * Menu control to convert block(s) to reusable block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.onClose Callback to close the menu.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function ReusableBlockConvertButton( {\n\tclientIds,\n\trootClientId,\n\tonClose,\n} ) {\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a reusable block.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when reusable blocks are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made reusable.\n\t\t\t\t\t\thasBlockSupport( block.name, 'reusable', true )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tconst { __experimentalConvertBlocksToReusable: convertBlocksToReusable } =\n\t\tuseDispatch( store );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst onConvert = useCallback(\n\t\tasync function ( reusableBlockTitle ) {\n\t\t\ttry {\n\t\t\t\tawait convertBlocksToReusable(\n\t\t\t\t\tclientIds,\n\t\t\t\t\treusableBlockTitle,\n\t\t\t\t\tsyncType\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t! syncType\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'convert-to-reusable-block-success',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'convert-to-reusable-block-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tconvertBlocksToReusable,\n\t\t\tclientIds,\n\t\t\tsyncType,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem icon={ symbol } onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Create pattern' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonConvert( title );\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -119,6 +119,7 @@ export default function ReusableBlockConvertButton({
119
119
  children: /*#__PURE__*/_jsxs(VStack, {
120
120
  spacing: "5",
121
121
  children: [/*#__PURE__*/_jsx(TextControl, {
122
+ __next40pxDefaultSize: true,
122
123
  __nextHasNoMarginBottom: true,
123
124
  label: __('Name'),
124
125
  value: title,
@@ -1 +1 @@
1
- {"version":3,"names":["hasBlockSupport","isReusableBlock","store","blockEditorStore","useCallback","useState","MenuItem","Modal","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","ToggleControl","symbol","useDispatch","useSelect","__","_x","sprintf","noticesStore","coreStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ReusableBlockConvertButton","clientIds","rootClientId","onClose","syncType","setSyncType","undefined","isModalOpen","setIsModalOpen","title","setTitle","canConvert","select","_getBlocksByClientId","canUser","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","blocks","isReusable","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","kind","__experimentalConvertBlocksToReusable","convertBlocksToReusable","createSuccessNotice","createErrorNotice","onConvert","reusableBlockTitle","type","id","error","message","children","icon","onClick","onRequestClose","overlayClassName","onSubmit","event","preventDefault","spacing","__nextHasNoMarginBottom","label","value","onChange","placeholder","help","checked","justify","variant"],"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tMenuItem,\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store } from '../../store';\n\n/**\n * Menu control to convert block(s) to reusable block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.onClose Callback to close the menu.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function ReusableBlockConvertButton( {\n\tclientIds,\n\trootClientId,\n\tonClose,\n} ) {\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a reusable block.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when reusable blocks are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made reusable.\n\t\t\t\t\t\thasBlockSupport( block.name, 'reusable', true )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tconst { __experimentalConvertBlocksToReusable: convertBlocksToReusable } =\n\t\tuseDispatch( store );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst onConvert = useCallback(\n\t\tasync function ( reusableBlockTitle ) {\n\t\t\ttry {\n\t\t\t\tawait convertBlocksToReusable(\n\t\t\t\t\tclientIds,\n\t\t\t\t\treusableBlockTitle,\n\t\t\t\t\tsyncType\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t! syncType\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'convert-to-reusable-block-success',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'convert-to-reusable-block-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tconvertBlocksToReusable,\n\t\t\tclientIds,\n\t\t\tsyncType,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem icon={ symbol } onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Create pattern' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonConvert( title );\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["hasBlockSupport","isReusableBlock","store","blockEditorStore","useCallback","useState","MenuItem","Modal","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","ToggleControl","symbol","useDispatch","useSelect","__","_x","sprintf","noticesStore","coreStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ReusableBlockConvertButton","clientIds","rootClientId","onClose","syncType","setSyncType","undefined","isModalOpen","setIsModalOpen","title","setTitle","canConvert","select","_getBlocksByClientId","canUser","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","blocks","isReusable","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","kind","__experimentalConvertBlocksToReusable","convertBlocksToReusable","createSuccessNotice","createErrorNotice","onConvert","reusableBlockTitle","type","id","error","message","children","icon","onClick","onRequestClose","overlayClassName","onSubmit","event","preventDefault","spacing","__next40pxDefaultSize","__nextHasNoMarginBottom","label","value","onChange","placeholder","help","checked","justify","variant"],"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tMenuItem,\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store } from '../../store';\n\n/**\n * Menu control to convert block(s) to reusable block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.onClose Callback to close the menu.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function ReusableBlockConvertButton( {\n\tclientIds,\n\trootClientId,\n\tonClose,\n} ) {\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a reusable block.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when reusable blocks are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made reusable.\n\t\t\t\t\t\thasBlockSupport( block.name, 'reusable', true )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tconst { __experimentalConvertBlocksToReusable: convertBlocksToReusable } =\n\t\tuseDispatch( store );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst onConvert = useCallback(\n\t\tasync function ( reusableBlockTitle ) {\n\t\t\ttry {\n\t\t\t\tawait convertBlocksToReusable(\n\t\t\t\t\tclientIds,\n\t\t\t\t\treusableBlockTitle,\n\t\t\t\t\tsyncType\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t! syncType\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\t\t\treusableBlockTitle\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'convert-to-reusable-block-success',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'convert-to-reusable-block-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tconvertBlocksToReusable,\n\t\t\tclientIds,\n\t\t\tsyncType,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem icon={ symbol } onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Create pattern' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonConvert( title );\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,EAAEC,eAAe,QAAQ,mBAAmB;AACpE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;AAC1D,SACCC,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,aAAa,QACP,uBAAuB;AAC9B,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AACjD,SAASlB,KAAK,IAAImB,YAAY,QAAQ,oBAAoB;AAC1D,SAASnB,KAAK,IAAIoB,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASpB,KAAK,QAAQ,aAAa;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAqB,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AASA,eAAe,SAASC,0BAA0BA,CAAE;EACnDC,SAAS;EACTC,YAAY;EACZC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAG7B,QAAQ,CAAE8B,SAAU,CAAC;EACvD,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGhC,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM,CAAEiC,KAAK,EAAEC,QAAQ,CAAE,GAAGlC,QAAQ,CAAE,EAAG,CAAC;EAC1C,MAAMmC,UAAU,GAAGvB,SAAS,CACzBwB,MAAM,IAAM;IAAA,IAAAC,oBAAA;IACb,MAAM;MAAEC;IAAQ,CAAC,GAAGF,MAAM,CAAEnB,SAAU,CAAC;IACvC,MAAM;MACLsB,mBAAmB;MACnBC,kBAAkB;MAClBC;IACD,CAAC,GAAGL,MAAM,CAAEtC,gBAAiB,CAAC;IAE9B,MAAM4C,MAAM,GACXhB,YAAY,KACVD,SAAS,CAACkB,MAAM,GAAG,CAAC,GACnBF,oBAAoB,CAAEhB,SAAS,CAAE,CAAC,CAAG,CAAC,GACtCK,SAAS,CAAE;IAEf,MAAMc,MAAM,IAAAP,oBAAA,GAAGE,mBAAmB,CAAEd,SAAU,CAAC,cAAAY,oBAAA,cAAAA,oBAAA,GAAI,EAAE;IAErD,MAAMQ,UAAU,GACfD,MAAM,CAACD,MAAM,KAAK,CAAC,IACnBC,MAAM,CAAE,CAAC,CAAE,IACXhD,eAAe,CAAEgD,MAAM,CAAE,CAAC,CAAG,CAAC,IAC9B,CAAC,CAAER,MAAM,CAAEnB,SAAU,CAAC,CAAC6B,eAAe,CACrC,UAAU,EACV,UAAU,EACVF,MAAM,CAAE,CAAC,CAAE,CAACG,UAAU,CAACC,GACxB,CAAC;IAEF,MAAMC,WAAW;IAChB;IACA,CAAEJ,UAAU;IACZ;IACAL,kBAAkB,CAAE,YAAY,EAAEE,MAAO,CAAC,IAC1CE,MAAM,CAACM,KAAK,CACTC,KAAK;IACN;IACA,CAAC,CAAEA,KAAK;IACR;IACAA,KAAK,CAACC,OAAO;IACb;IACAzD,eAAe,CAAEwD,KAAK,CAACE,IAAI,EAAE,UAAU,EAAE,IAAK,CAChD,CAAC;IACD;IACA;IACA,CAAC,CAAEf,OAAO,CAAE,QAAQ,EAAE;MACrBgB,IAAI,EAAE,UAAU;MAChBD,IAAI,EAAE;IACP,CAAE,CAAC;IAEJ,OAAOJ,WAAW;EACnB,CAAC,EACD,CAAExB,SAAS,EAAEC,YAAY,CAC1B,CAAC;EAED,MAAM;IAAE6B,qCAAqC,EAAEC;EAAwB,CAAC,GACvE7C,WAAW,CAAEd,KAAM,CAAC;EAErB,MAAM;IAAE4D,mBAAmB;IAAEC;EAAkB,CAAC,GAC/C/C,WAAW,CAAEK,YAAa,CAAC;EAC5B,MAAM2C,SAAS,GAAG5D,WAAW,CAC5B,gBAAiB6D,kBAAkB,EAAG;IACrC,IAAI;MACH,MAAMJ,uBAAuB,CAC5B/B,SAAS,EACTmC,kBAAkB,EAClBhC,QACD,CAAC;MACD6B,mBAAmB,CAClB,CAAE7B,QAAQ,GACPb,OAAO;MACP;MACAF,EAAE,CAAE,4BAA6B,CAAC,EAClC+C,kBACA,CAAC,GACD7C,OAAO;MACP;MACAF,EAAE,CAAE,8BAA+B,CAAC,EACpC+C,kBACA,CAAC,EACJ;QACCC,IAAI,EAAE,UAAU;QAChBC,EAAE,EAAE;MACL,CACD,CAAC;IACF,CAAC,CAAC,OAAQC,KAAK,EAAG;MACjBL,iBAAiB,CAAEK,KAAK,CAACC,OAAO,EAAE;QACjCH,IAAI,EAAE,UAAU;QAChBC,EAAE,EAAE;MACL,CAAE,CAAC;IACJ;EACD,CAAC,EACD,CACCN,uBAAuB,EACvB/B,SAAS,EACTG,QAAQ,EACR6B,mBAAmB,EACnBC,iBAAiB,CAEnB,CAAC;EAED,IAAK,CAAEvB,UAAU,EAAG;IACnB,OAAO,IAAI;EACZ;EAEA,oBACCd,KAAA,CAAAE,SAAA;IAAA0C,QAAA,gBACC9C,IAAA,CAAClB,QAAQ;MAACiE,IAAI,EAAGxD,MAAQ;MAACyD,OAAO,EAAGA,CAAA,KAAMnC,cAAc,CAAE,IAAK,CAAG;MAAAiC,QAAA,EAC/DpD,EAAE,CAAE,gBAAiB;IAAC,CACf,CAAC,EACTkB,WAAW,iBACZZ,IAAA,CAACjB,KAAK;MACL+B,KAAK,EAAGpB,EAAE,CAAE,gBAAiB,CAAG;MAChCuD,cAAc,EAAGA,CAAA,KAAM;QACtBpC,cAAc,CAAE,KAAM,CAAC;QACvBE,QAAQ,CAAE,EAAG,CAAC;MACf,CAAG;MACHmC,gBAAgB,EAAC,2CAA2C;MAAAJ,QAAA,eAE5D9C,IAAA;QACCmD,QAAQ,EAAKC,KAAK,IAAM;UACvBA,KAAK,CAACC,cAAc,CAAC,CAAC;UACtBb,SAAS,CAAE1B,KAAM,CAAC;UAClBD,cAAc,CAAE,KAAM,CAAC;UACvBE,QAAQ,CAAE,EAAG,CAAC;UACdP,OAAO,CAAC,CAAC;QACV,CAAG;QAAAsC,QAAA,eAEH5C,KAAA,CAACb,MAAM;UAACiE,OAAO,EAAC,GAAG;UAAAR,QAAA,gBAClB9C,IAAA,CAACf,WAAW;YACXsE,qBAAqB;YACrBC,uBAAuB;YACvBC,KAAK,EAAG/D,EAAE,CAAE,MAAO,CAAG;YACtBgE,KAAK,EAAG5C,KAAO;YACf6C,QAAQ,EAAG5C,QAAU;YACrB6C,WAAW,EAAGlE,EAAE,CAAE,YAAa;UAAG,CAClC,CAAC,eACFM,IAAA,CAACV,aAAa;YACbkE,uBAAuB;YACvBC,KAAK,EAAG9D,EAAE,CAAE,QAAQ,EAAE,oBAAqB,CAAG;YAC9CkE,IAAI,EAAGnE,EAAE,CACR,8CACD,CAAG;YACHoE,OAAO,EAAG,CAAErD,QAAU;YACtBkD,QAAQ,EAAGA,CAAA,KAAM;cAChBjD,WAAW,CACV,CAAED,QAAQ,GAAG,UAAU,GAAGE,SAC3B,CAAC;YACF;UAAG,CACH,CAAC,eACFT,KAAA,CAACf,MAAM;YAAC4E,OAAO,EAAC,OAAO;YAAAjB,QAAA,gBACtB9C,IAAA,CAAChB,MAAM;cACNgF,OAAO,EAAC,UAAU;cAClBhB,OAAO,EAAGA,CAAA,KAAM;gBACfnC,cAAc,CAAE,KAAM,CAAC;gBACvBE,QAAQ,CAAE,EAAG,CAAC;cACf,CAAG;cAAA+B,QAAA,EAEDpD,EAAE,CAAE,QAAS;YAAC,CACT,CAAC,eAETM,IAAA,CAAChB,MAAM;cAACgF,OAAO,EAAC,SAAS;cAACtB,IAAI,EAAC,QAAQ;cAAAI,QAAA,EACpCpD,EAAE,CAAE,QAAS;YAAC,CACT,CAAC;UAAA,CACF,CAAC;QAAA,CACF;MAAC,CACJ;IAAC,CACD,CACP;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
@@ -37,10 +37,10 @@
37
37
  * Radius scale.
38
38
  */
39
39
  /**
40
- * Dimensions.
40
+ * Elevation scale.
41
41
  */
42
42
  /**
43
- * Shadows.
43
+ * Dimensions.
44
44
  */
45
45
  /**
46
46
  * Editor widths.
@@ -37,10 +37,10 @@
37
37
  * Radius scale.
38
38
  */
39
39
  /**
40
- * Dimensions.
40
+ * Elevation scale.
41
41
  */
42
42
  /**
43
- * Shadows.
43
+ * Dimensions.
44
44
  */
45
45
  /**
46
46
  * Editor widths.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/reusable-blocks",
3
- "version": "5.5.0",
3
+ "version": "5.6.0",
4
4
  "description": "Reusable blocks utilities.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -30,17 +30,17 @@
30
30
  ],
31
31
  "dependencies": {
32
32
  "@babel/runtime": "^7.16.0",
33
- "@wordpress/block-editor": "^14.0.0",
34
- "@wordpress/blocks": "^13.5.0",
35
- "@wordpress/components": "^28.5.0",
36
- "@wordpress/core-data": "^7.5.0",
37
- "@wordpress/data": "^10.5.0",
38
- "@wordpress/element": "^6.5.0",
39
- "@wordpress/i18n": "^5.5.0",
40
- "@wordpress/icons": "^10.5.0",
41
- "@wordpress/notices": "^5.5.0",
42
- "@wordpress/private-apis": "^1.5.0",
43
- "@wordpress/url": "^4.5.0"
33
+ "@wordpress/block-editor": "^14.1.0",
34
+ "@wordpress/blocks": "^13.6.0",
35
+ "@wordpress/components": "^28.6.0",
36
+ "@wordpress/core-data": "^7.6.0",
37
+ "@wordpress/data": "^10.6.0",
38
+ "@wordpress/element": "^6.6.0",
39
+ "@wordpress/i18n": "^5.6.0",
40
+ "@wordpress/icons": "^10.6.0",
41
+ "@wordpress/notices": "^5.6.0",
42
+ "@wordpress/private-apis": "^1.6.0",
43
+ "@wordpress/url": "^4.6.0"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "react": "^18.0.0",
@@ -49,5 +49,5 @@
49
49
  "publishConfig": {
50
50
  "access": "public"
51
51
  },
52
- "gitHead": "c3101ab024e2bfc85d525c6d247e0d57cafc9fd9"
52
+ "gitHead": "ab9564947967bb3f00343130954b9efacba6cdd7"
53
53
  }
@@ -169,6 +169,7 @@ export default function ReusableBlockConvertButton( {
169
169
  >
170
170
  <VStack spacing="5">
171
171
  <TextControl
172
+ __next40pxDefaultSize
172
173
  __nextHasNoMarginBottom
173
174
  label={ __( 'Name' ) }
174
175
  value={ title }