@wordpress/patterns 1.1.0 → 1.2.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
+ ## 1.2.0 (2023-08-31)
6
+
5
7
  ## 1.1.0 (2023-08-16)
6
8
 
7
9
  Initial release.
@@ -85,7 +85,9 @@ function PatternConvertButton({
85
85
  };
86
86
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuItem, {
87
87
  icon: _icons.symbol,
88
- onClick: () => setIsModalOpen(true)
88
+ onClick: () => setIsModalOpen(true),
89
+ "aria-expanded": isModalOpen,
90
+ "aria-haspopup": "dialog"
89
91
  }, (0, _i18n.__)('Create pattern')), isModalOpen && (0, _element.createElement)(_createPatternModal.default, {
90
92
  clientIds: clientIds,
91
93
  onSuccess: pattern => {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blocks","_blockEditor","_components","_icons","_data","_coreData","_i18n","_notices","_createPatternModal","_interopRequireDefault","PatternConvertButton","clientIds","rootClientId","createSuccessNotice","useDispatch","noticesStore","isModalOpen","setIsModalOpen","useState","canConvert","useSelect","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","blockEditorStore","rootId","length","undefined","blocks","isReusable","isReusableBlock","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","hasBlockSupport","name","handleSuccess","pattern","wp_pattern_sync_status","sprintf","__","title","raw","type","id","createElement","Fragment","MenuItem","icon","symbol","onClick","default","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport CreatePatternModal from './create-pattern-modal';\n\n/**\n * Menu control to convert block(s) to a pattern 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 * @return {import('@wordpress/element').WPComponent} The menu control or null.\n */\nexport default function PatternConvertButton( { clientIds, rootClientId } ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\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 synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns 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 into a pattern.\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!! canUser( 'create', 'blocks' );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\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<CreatePatternModal\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_blocks","_blockEditor","_components","_icons","_data","_coreData","_i18n","_notices","_createPatternModal","_interopRequireDefault","PatternConvertButton","clientIds","rootClientId","createSuccessNotice","useDispatch","noticesStore","isModalOpen","setIsModalOpen","useState","canConvert","useSelect","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","blockEditorStore","rootId","length","undefined","blocks","isReusable","isReusableBlock","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","hasBlockSupport","name","handleSuccess","pattern","wp_pattern_sync_status","sprintf","__","title","raw","type","id","createElement","Fragment","MenuItem","icon","symbol","onClick","default","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport CreatePatternModal from './create-pattern-modal';\n\n/**\n * Menu control to convert block(s) to a pattern 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 * @return {import('@wordpress/element').WPComponent} The menu control or null.\n */\nexport default function PatternConvertButton( { clientIds, rootClientId } ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\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 synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns 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 into a pattern.\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!! canUser( 'create', 'blocks' );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -78,7 +78,9 @@ export default function PatternConvertButton({
78
78
  };
79
79
  return createElement(Fragment, null, createElement(MenuItem, {
80
80
  icon: symbol,
81
- onClick: () => setIsModalOpen(true)
81
+ onClick: () => setIsModalOpen(true),
82
+ "aria-expanded": isModalOpen,
83
+ "aria-haspopup": "dialog"
82
84
  }, __('Create pattern')), isModalOpen && createElement(CreatePatternModal, {
83
85
  clientIds: clientIds,
84
86
  onSuccess: pattern => {
@@ -1 +1 @@
1
- {"version":3,"names":["hasBlockSupport","isReusableBlock","store","blockEditorStore","useState","MenuItem","symbol","useSelect","useDispatch","coreStore","__","sprintf","noticesStore","CreatePatternModal","PatternConvertButton","clientIds","rootClientId","createSuccessNotice","isModalOpen","setIsModalOpen","canConvert","select","_getBlocksByClientId","canUser","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","isReusable","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","handleSuccess","pattern","wp_pattern_sync_status","title","raw","type","id","createElement","Fragment","icon","onClick","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport CreatePatternModal from './create-pattern-modal';\n\n/**\n * Menu control to convert block(s) to a pattern 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 * @return {import('@wordpress/element').WPComponent} The menu control or null.\n */\nexport default function PatternConvertButton( { clientIds, rootClientId } ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\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 synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns 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 into a pattern.\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!! canUser( 'create', 'blocks' );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\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<CreatePatternModal\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["hasBlockSupport","isReusableBlock","store","blockEditorStore","useState","MenuItem","symbol","useSelect","useDispatch","coreStore","__","sprintf","noticesStore","CreatePatternModal","PatternConvertButton","clientIds","rootClientId","createSuccessNotice","isModalOpen","setIsModalOpen","canConvert","select","_getBlocksByClientId","canUser","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","isReusable","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","handleSuccess","pattern","wp_pattern_sync_status","title","raw","type","id","createElement","Fragment","icon","onClick","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport CreatePatternModal from './create-pattern-modal';\n\n/**\n * Menu control to convert block(s) to a pattern 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 * @return {import('@wordpress/element').WPComponent} The menu control or null.\n */\nexport default function PatternConvertButton( { clientIds, rootClientId } ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\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 synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns 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 into a pattern.\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!! canUser( 'create', 'blocks' );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced Pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/patterns",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Management of user pattern editing.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -31,18 +31,18 @@
31
31
  "{src,build,build-module}/{index.js,store/index.js,hooks/**}"
32
32
  ],
33
33
  "dependencies": {
34
- "@wordpress/block-editor": "^12.8.0",
35
- "@wordpress/blocks": "^12.17.0",
36
- "@wordpress/components": "^25.6.0",
37
- "@wordpress/compose": "^6.17.0",
38
- "@wordpress/core-data": "^6.17.0",
39
- "@wordpress/data": "^9.10.0",
40
- "@wordpress/element": "^5.17.0",
41
- "@wordpress/i18n": "^4.40.0",
42
- "@wordpress/icons": "^9.31.0",
43
- "@wordpress/notices": "^4.8.0",
44
- "@wordpress/private-apis": "^0.22.0",
45
- "@wordpress/url": "^3.41.0"
34
+ "@wordpress/block-editor": "^12.9.0",
35
+ "@wordpress/blocks": "^12.18.0",
36
+ "@wordpress/components": "^25.7.0",
37
+ "@wordpress/compose": "^6.18.0",
38
+ "@wordpress/core-data": "^6.18.0",
39
+ "@wordpress/data": "^9.11.0",
40
+ "@wordpress/element": "^5.18.0",
41
+ "@wordpress/i18n": "^4.41.0",
42
+ "@wordpress/icons": "^9.32.0",
43
+ "@wordpress/notices": "^4.9.0",
44
+ "@wordpress/private-apis": "^0.23.0",
45
+ "@wordpress/url": "^3.42.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "react": "^18.0.0",
@@ -51,5 +51,5 @@
51
51
  "publishConfig": {
52
52
  "access": "public"
53
53
  },
54
- "gitHead": "78a288d55b83a713b2f7d98d5a855c0771a2afc6"
54
+ "gitHead": "5eac1734bcdca2301fdd37ec8cfe2a45e722a2c4"
55
55
  }
@@ -101,7 +101,12 @@ export default function PatternConvertButton( { clientIds, rootClientId } ) {
101
101
  };
102
102
  return (
103
103
  <>
104
- <MenuItem icon={ symbol } onClick={ () => setIsModalOpen( true ) }>
104
+ <MenuItem
105
+ icon={ symbol }
106
+ onClick={ () => setIsModalOpen( true ) }
107
+ aria-expanded={ isModalOpen }
108
+ aria-haspopup="dialog"
109
+ >
105
110
  { __( 'Create pattern' ) }
106
111
  </MenuItem>
107
112
  { isModalOpen && (