@wordpress/patterns 1.17.0 → 1.18.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.18.0 (2024-05-02)
6
+
5
7
  ## 1.17.0 (2024-04-19)
6
8
 
7
9
  ## 1.16.0 (2024-04-03)
@@ -72,7 +72,9 @@ function PatternOverridesControls({
72
72
  }
73
73
 
74
74
  // Avoid overwriting other (e.g. meta) bindings.
75
- if (isConnectedToOtherSources) return null;
75
+ if (isConnectedToOtherSources) {
76
+ return null;
77
+ }
76
78
  const hasName = !!attributes.metadata?.name;
77
79
  const allowOverrides = hasName && attributeSources.some(source => source === _constants.PATTERN_OVERRIDES_BINDING_SOURCE);
78
80
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.InspectorControls, {
@@ -85,6 +87,7 @@ function PatternOverridesControls({
85
87
  __next40pxDefaultSize: true,
86
88
  className: "pattern-overrides-control__allow-overrides-button",
87
89
  variant: "secondary",
90
+ "aria-haspopup": "dialog",
88
91
  onClick: () => {
89
92
  if (allowOverrides) {
90
93
  setShowDisallowOverridesModal(true);
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blockEditor","_components","_i18n","_constants","_allowOverridesModal","removeBindings","bindings","syncedAttributes","updatedBindings","attributeName","source","PATTERN_OVERRIDES_BINDING_SOURCE","undefined","Object","keys","length","addBindings","PatternOverridesControls","attributes","name","setAttributes","controlId","useId","showAllowOverridesModal","setShowAllowOverridesModal","useState","showDisallowOverridesModal","setShowDisallowOverridesModal","PARTIAL_SYNCING_SUPPORTED_BLOCKS","attributeSources","map","metadata","isConnectedToOtherSources","every","updateBindings","isChecked","customName","prevBindings","updatedMetadata","hasName","allowOverrides","some","_react","createElement","Fragment","InspectorControls","group","BaseControl","id","label","__","help","Button","__next40pxDefaultSize","className","variant","onClick","AllowOverridesModal","initialName","onClose","onSave","newName","DisallowOverridesModal","_default","exports","default"],"sources":["@wordpress/patterns/src/components/pattern-overrides-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useId } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPARTIAL_SYNCING_SUPPORTED_BLOCKS,\n\tPATTERN_OVERRIDES_BINDING_SOURCE,\n} from '../constants';\nimport {\n\tAllowOverridesModal,\n\tDisallowOverridesModal,\n} from './allow-overrides-modal';\n\nfunction removeBindings( bindings, syncedAttributes ) {\n\tlet updatedBindings = {};\n\tfor ( const attributeName of syncedAttributes ) {\n\t\t// Omit any bindings that's not the same source from the `updatedBindings` object.\n\t\tif (\n\t\t\tbindings?.[ attributeName ]?.source !==\n\t\t\t\tPATTERN_OVERRIDES_BINDING_SOURCE &&\n\t\t\tbindings?.[ attributeName ]?.source !== undefined\n\t\t) {\n\t\t\tupdatedBindings[ attributeName ] = bindings[ attributeName ];\n\t\t}\n\t}\n\tif ( ! Object.keys( updatedBindings ).length ) {\n\t\tupdatedBindings = undefined;\n\t}\n\treturn updatedBindings;\n}\n\nfunction addBindings( bindings, syncedAttributes ) {\n\tconst updatedBindings = { ...bindings };\n\tfor ( const attributeName of syncedAttributes ) {\n\t\tif ( ! bindings?.[ attributeName ] ) {\n\t\t\tupdatedBindings[ attributeName ] = {\n\t\t\t\tsource: PATTERN_OVERRIDES_BINDING_SOURCE,\n\t\t\t};\n\t\t}\n\t}\n\treturn updatedBindings;\n}\n\nfunction PatternOverridesControls( { attributes, name, setAttributes } ) {\n\tconst controlId = useId();\n\tconst [ showAllowOverridesModal, setShowAllowOverridesModal ] =\n\t\tuseState( false );\n\tconst [ showDisallowOverridesModal, setShowDisallowOverridesModal ] =\n\t\tuseState( false );\n\n\tconst syncedAttributes = PARTIAL_SYNCING_SUPPORTED_BLOCKS[ name ];\n\tconst attributeSources = syncedAttributes.map(\n\t\t( attributeName ) =>\n\t\t\tattributes.metadata?.bindings?.[ attributeName ]?.source\n\t);\n\tconst isConnectedToOtherSources = attributeSources.every(\n\t\t( source ) => source && source !== 'core/pattern-overrides'\n\t);\n\n\tfunction updateBindings( isChecked, customName ) {\n\t\tconst prevBindings = attributes?.metadata?.bindings;\n\t\tconst updatedBindings = isChecked\n\t\t\t? addBindings( prevBindings, syncedAttributes )\n\t\t\t: removeBindings( prevBindings, syncedAttributes );\n\n\t\tconst updatedMetadata = {\n\t\t\t...attributes.metadata,\n\t\t\tbindings: updatedBindings,\n\t\t};\n\n\t\tif ( customName ) {\n\t\t\tupdatedMetadata.name = customName;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmetadata: updatedMetadata,\n\t\t} );\n\t}\n\n\t// Avoid overwriting other (e.g. meta) bindings.\n\tif ( isConnectedToOtherSources ) return null;\n\n\tconst hasName = !! attributes.metadata?.name;\n\tconst allowOverrides =\n\t\thasName &&\n\t\tattributeSources.some(\n\t\t\t( source ) => source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<BaseControl\n\t\t\t\t\tid={ controlId }\n\t\t\t\t\tlabel={ __( 'Overrides' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Allow changes to this block throughout instances of this pattern.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tclassName=\"pattern-overrides-control__allow-overrides-button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( allowOverrides ) {\n\t\t\t\t\t\t\t\tsetShowDisallowOverridesModal( true );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetShowAllowOverridesModal( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ allowOverrides\n\t\t\t\t\t\t\t? __( 'Disable overrides' )\n\t\t\t\t\t\t\t: __( 'Enable overrides' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</BaseControl>\n\t\t\t</InspectorControls>\n\n\t\t\t{ showAllowOverridesModal && (\n\t\t\t\t<AllowOverridesModal\n\t\t\t\t\tinitialName={ attributes.metadata?.name }\n\t\t\t\t\tonClose={ () => setShowAllowOverridesModal( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\tupdateBindings( true, newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showDisallowOverridesModal && (\n\t\t\t\t<DisallowOverridesModal\n\t\t\t\t\tonClose={ () => setShowDisallowOverridesModal( false ) }\n\t\t\t\t\tonSave={ () => updateBindings( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PatternOverridesControls;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_blockEditor","_components","_i18n","_constants","_allowOverridesModal","removeBindings","bindings","syncedAttributes","updatedBindings","attributeName","source","PATTERN_OVERRIDES_BINDING_SOURCE","undefined","Object","keys","length","addBindings","PatternOverridesControls","attributes","name","setAttributes","controlId","useId","showAllowOverridesModal","setShowAllowOverridesModal","useState","showDisallowOverridesModal","setShowDisallowOverridesModal","PARTIAL_SYNCING_SUPPORTED_BLOCKS","attributeSources","map","metadata","isConnectedToOtherSources","every","updateBindings","isChecked","customName","prevBindings","updatedMetadata","hasName","allowOverrides","some","_react","createElement","Fragment","InspectorControls","group","BaseControl","id","label","__","help","Button","__next40pxDefaultSize","className","variant","onClick","AllowOverridesModal","initialName","onClose","onSave","newName","DisallowOverridesModal","_default","exports","default"],"sources":["@wordpress/patterns/src/components/pattern-overrides-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useId } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPARTIAL_SYNCING_SUPPORTED_BLOCKS,\n\tPATTERN_OVERRIDES_BINDING_SOURCE,\n} from '../constants';\nimport {\n\tAllowOverridesModal,\n\tDisallowOverridesModal,\n} from './allow-overrides-modal';\n\nfunction removeBindings( bindings, syncedAttributes ) {\n\tlet updatedBindings = {};\n\tfor ( const attributeName of syncedAttributes ) {\n\t\t// Omit any bindings that's not the same source from the `updatedBindings` object.\n\t\tif (\n\t\t\tbindings?.[ attributeName ]?.source !==\n\t\t\t\tPATTERN_OVERRIDES_BINDING_SOURCE &&\n\t\t\tbindings?.[ attributeName ]?.source !== undefined\n\t\t) {\n\t\t\tupdatedBindings[ attributeName ] = bindings[ attributeName ];\n\t\t}\n\t}\n\tif ( ! Object.keys( updatedBindings ).length ) {\n\t\tupdatedBindings = undefined;\n\t}\n\treturn updatedBindings;\n}\n\nfunction addBindings( bindings, syncedAttributes ) {\n\tconst updatedBindings = { ...bindings };\n\tfor ( const attributeName of syncedAttributes ) {\n\t\tif ( ! bindings?.[ attributeName ] ) {\n\t\t\tupdatedBindings[ attributeName ] = {\n\t\t\t\tsource: PATTERN_OVERRIDES_BINDING_SOURCE,\n\t\t\t};\n\t\t}\n\t}\n\treturn updatedBindings;\n}\n\nfunction PatternOverridesControls( { attributes, name, setAttributes } ) {\n\tconst controlId = useId();\n\tconst [ showAllowOverridesModal, setShowAllowOverridesModal ] =\n\t\tuseState( false );\n\tconst [ showDisallowOverridesModal, setShowDisallowOverridesModal ] =\n\t\tuseState( false );\n\n\tconst syncedAttributes = PARTIAL_SYNCING_SUPPORTED_BLOCKS[ name ];\n\tconst attributeSources = syncedAttributes.map(\n\t\t( attributeName ) =>\n\t\t\tattributes.metadata?.bindings?.[ attributeName ]?.source\n\t);\n\tconst isConnectedToOtherSources = attributeSources.every(\n\t\t( source ) => source && source !== 'core/pattern-overrides'\n\t);\n\n\tfunction updateBindings( isChecked, customName ) {\n\t\tconst prevBindings = attributes?.metadata?.bindings;\n\t\tconst updatedBindings = isChecked\n\t\t\t? addBindings( prevBindings, syncedAttributes )\n\t\t\t: removeBindings( prevBindings, syncedAttributes );\n\n\t\tconst updatedMetadata = {\n\t\t\t...attributes.metadata,\n\t\t\tbindings: updatedBindings,\n\t\t};\n\n\t\tif ( customName ) {\n\t\t\tupdatedMetadata.name = customName;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmetadata: updatedMetadata,\n\t\t} );\n\t}\n\n\t// Avoid overwriting other (e.g. meta) bindings.\n\tif ( isConnectedToOtherSources ) {\n\t\treturn null;\n\t}\n\n\tconst hasName = !! attributes.metadata?.name;\n\tconst allowOverrides =\n\t\thasName &&\n\t\tattributeSources.some(\n\t\t\t( source ) => source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<BaseControl\n\t\t\t\t\tid={ controlId }\n\t\t\t\t\tlabel={ __( 'Overrides' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Allow changes to this block throughout instances of this pattern.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tclassName=\"pattern-overrides-control__allow-overrides-button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( allowOverrides ) {\n\t\t\t\t\t\t\t\tsetShowDisallowOverridesModal( true );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetShowAllowOverridesModal( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ allowOverrides\n\t\t\t\t\t\t\t? __( 'Disable overrides' )\n\t\t\t\t\t\t\t: __( 'Enable overrides' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</BaseControl>\n\t\t\t</InspectorControls>\n\n\t\t\t{ showAllowOverridesModal && (\n\t\t\t\t<AllowOverridesModal\n\t\t\t\t\tinitialName={ attributes.metadata?.name }\n\t\t\t\t\tonClose={ () => setShowAllowOverridesModal( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\tupdateBindings( true, newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showDisallowOverridesModal && (\n\t\t\t\t<DisallowOverridesModal\n\t\t\t\t\tonClose={ () => setShowDisallowOverridesModal( false ) }\n\t\t\t\t\tonSave={ () => updateBindings( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PatternOverridesControls;\n"],"mappings":"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","ignoreList":[]}
@@ -33,14 +33,12 @@ function PatternsManageButton({
33
33
  const {
34
34
  getBlock,
35
35
  canRemoveBlock,
36
- getBlockCount,
37
- getSettings
36
+ getBlockCount
38
37
  } = select(_blockEditor.store);
39
38
  const {
40
39
  canUser
41
40
  } = select(_coreData.store);
42
41
  const reusableBlock = getBlock(clientId);
43
- const isBlockTheme = getSettings().__unstableIsBlockBasedTheme;
44
42
  return {
45
43
  canRemove: canRemoveBlock(clientId),
46
44
  isVisible: !!reusableBlock && (0, _blocks.isReusableBlock)(reusableBlock) && !!canUser('update', 'blocks', reusableBlock.attributes.ref),
@@ -48,7 +46,7 @@ function PatternsManageButton({
48
46
  // The site editor and templates both check whether the user
49
47
  // has edit_theme_options capabilities. We can leverage that here
50
48
  // and omit the manage patterns link if the user can't access it.
51
- managePatternsUrl: isBlockTheme && canUser('read', 'templates') ? (0, _url.addQueryArgs)('site-editor.php', {
49
+ managePatternsUrl: canUser('read', 'templates') ? (0, _url.addQueryArgs)('site-editor.php', {
52
50
  path: '/patterns'
53
51
  }) : (0, _url.addQueryArgs)('edit.php', {
54
52
  post_type: 'wp_block'
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_blocks","_data","_blockEditor","_url","_coreData","_store","_lockUnlock","PatternsManageButton","clientId","canRemove","isVisible","managePatternsUrl","useSelect","select","getBlock","canRemoveBlock","getBlockCount","getSettings","blockEditorStore","canUser","coreStore","reusableBlock","isBlockTheme","__unstableIsBlockBasedTheme","isReusableBlock","attributes","ref","innerBlockCount","addQueryArgs","path","post_type","convertSyncedPatternToStatic","unlock","useDispatch","patternsStore","_react","createElement","Fragment","MenuItem","onClick","__","href","_default","exports","default"],"sources":["@wordpress/patterns/src/components/patterns-manage-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { isReusableBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nfunction PatternsManageButton( { clientId } ) {\n\tconst { canRemove, isVisible, managePatternsUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, canRemoveBlock, getBlockCount, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst reusableBlock = getBlock( clientId );\n\t\t\tconst isBlockTheme = getSettings().__unstableIsBlockBasedTheme;\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tisVisible:\n\t\t\t\t\t!! reusableBlock &&\n\t\t\t\t\tisReusableBlock( reusableBlock ) &&\n\t\t\t\t\t!! canUser(\n\t\t\t\t\t\t'update',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\treusableBlock.attributes.ref\n\t\t\t\t\t),\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t\t// The site editor and templates both check whether the user\n\t\t\t\t// has edit_theme_options capabilities. We can leverage that here\n\t\t\t\t// and omit the manage patterns link if the user can't access it.\n\t\t\t\tmanagePatternsUrl:\n\t\t\t\t\tisBlockTheme && canUser( 'read', 'templates' )\n\t\t\t\t\t\t? addQueryArgs( 'site-editor.php', {\n\t\t\t\t\t\t\t\tpath: '/patterns',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t\t } ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { convertSyncedPatternToStatic } = unlock(\n\t\tuseDispatch( patternsStore )\n\t);\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => convertSyncedPatternToStatic( clientId ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Detach' ) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t\t<MenuItem href={ managePatternsUrl }>\n\t\t\t\t{ __( 'Manage patterns' ) }\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n\nexport default PatternsManageButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAKA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAfA;AACA;AACA;;AASA;AACA;AACA;;AAIA,SAASS,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC7C,MAAM;IAAEC,SAAS;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAG,IAAAC,eAAS,EAC1DC,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,cAAc;MAAEC,aAAa;MAAEC;IAAY,CAAC,GAC7DJ,MAAM,CAAEK,kBAAiB,CAAC;IAC3B,MAAM;MAAEC;IAAQ,CAAC,GAAGN,MAAM,CAAEO,eAAU,CAAC;IACvC,MAAMC,aAAa,GAAGP,QAAQ,CAAEN,QAAS,CAAC;IAC1C,MAAMc,YAAY,GAAGL,WAAW,CAAC,CAAC,CAACM,2BAA2B;IAE9D,OAAO;MACNd,SAAS,EAAEM,cAAc,CAAEP,QAAS,CAAC;MACrCE,SAAS,EACR,CAAC,CAAEW,aAAa,IAChB,IAAAG,uBAAe,EAAEH,aAAc,CAAC,IAChC,CAAC,CAAEF,OAAO,CACT,QAAQ,EACR,QAAQ,EACRE,aAAa,CAACI,UAAU,CAACC,GAC1B,CAAC;MACFC,eAAe,EAAEX,aAAa,CAAER,QAAS,CAAC;MAC1C;MACA;MACA;MACAG,iBAAiB,EAChBW,YAAY,IAAIH,OAAO,CAAE,MAAM,EAAE,WAAY,CAAC,GAC3C,IAAAS,iBAAY,EAAE,iBAAiB,EAAE;QACjCC,IAAI,EAAE;MACN,CAAE,CAAC,GACH,IAAAD,iBAAY,EAAE,UAAU,EAAE;QAC1BE,SAAS,EAAE;MACX,CAAE;IACP,CAAC;EACF,CAAC,EACD,CAAEtB,QAAQ,CACX,CAAC;;EAED;EACA;EACA,MAAM;IAAEuB;EAA6B,CAAC,GAAG,IAAAC,kBAAM,EAC9C,IAAAC,iBAAW,EAAEC,YAAc,CAC5B,CAAC;EAED,IAAK,CAAExB,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACC,IAAAyB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACG5B,SAAS,IACV,IAAA0B,MAAA,CAAAC,aAAA,EAACvC,WAAA,CAAAyC,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAMR,4BAA4B,CAAEvB,QAAS;EAAG,GAExD,IAAAgC,QAAE,EAAE,QAAS,CACN,CACV,EACD,IAAAL,MAAA,CAAAC,aAAA,EAACvC,WAAA,CAAAyC,QAAQ;IAACG,IAAI,EAAG9B;EAAmB,GACjC,IAAA6B,QAAE,EAAE,iBAAkB,CACf,CACT,CAAC;AAEL;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrC,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_blocks","_data","_blockEditor","_url","_coreData","_store","_lockUnlock","PatternsManageButton","clientId","canRemove","isVisible","managePatternsUrl","useSelect","select","getBlock","canRemoveBlock","getBlockCount","blockEditorStore","canUser","coreStore","reusableBlock","isReusableBlock","attributes","ref","innerBlockCount","addQueryArgs","path","post_type","convertSyncedPatternToStatic","unlock","useDispatch","patternsStore","_react","createElement","Fragment","MenuItem","onClick","__","href","_default","exports","default"],"sources":["@wordpress/patterns/src/components/patterns-manage-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { isReusableBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nfunction PatternsManageButton( { clientId } ) {\n\tconst { canRemove, isVisible, managePatternsUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, canRemoveBlock, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst reusableBlock = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tisVisible:\n\t\t\t\t\t!! reusableBlock &&\n\t\t\t\t\tisReusableBlock( reusableBlock ) &&\n\t\t\t\t\t!! canUser(\n\t\t\t\t\t\t'update',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\treusableBlock.attributes.ref\n\t\t\t\t\t),\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t\t// The site editor and templates both check whether the user\n\t\t\t\t// has edit_theme_options capabilities. We can leverage that here\n\t\t\t\t// and omit the manage patterns link if the user can't access it.\n\t\t\t\tmanagePatternsUrl: canUser( 'read', 'templates' )\n\t\t\t\t\t? addQueryArgs( 'site-editor.php', {\n\t\t\t\t\t\t\tpath: '/patterns',\n\t\t\t\t\t } )\n\t\t\t\t\t: addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t } ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { convertSyncedPatternToStatic } = unlock(\n\t\tuseDispatch( patternsStore )\n\t);\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => convertSyncedPatternToStatic( clientId ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Detach' ) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t\t<MenuItem href={ managePatternsUrl }>\n\t\t\t\t{ __( 'Manage patterns' ) }\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n\nexport default PatternsManageButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAKA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAfA;AACA;AACA;;AASA;AACA;AACA;;AAIA,SAASS,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC7C,MAAM;IAAEC,SAAS;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAG,IAAAC,eAAS,EAC1DC,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,cAAc;MAAEC;IAAc,CAAC,GAChDH,MAAM,CAAEI,kBAAiB,CAAC;IAC3B,MAAM;MAAEC;IAAQ,CAAC,GAAGL,MAAM,CAAEM,eAAU,CAAC;IACvC,MAAMC,aAAa,GAAGN,QAAQ,CAAEN,QAAS,CAAC;IAE1C,OAAO;MACNC,SAAS,EAAEM,cAAc,CAAEP,QAAS,CAAC;MACrCE,SAAS,EACR,CAAC,CAAEU,aAAa,IAChB,IAAAC,uBAAe,EAAED,aAAc,CAAC,IAChC,CAAC,CAAEF,OAAO,CACT,QAAQ,EACR,QAAQ,EACRE,aAAa,CAACE,UAAU,CAACC,GAC1B,CAAC;MACFC,eAAe,EAAER,aAAa,CAAER,QAAS,CAAC;MAC1C;MACA;MACA;MACAG,iBAAiB,EAAEO,OAAO,CAAE,MAAM,EAAE,WAAY,CAAC,GAC9C,IAAAO,iBAAY,EAAE,iBAAiB,EAAE;QACjCC,IAAI,EAAE;MACN,CAAE,CAAC,GACH,IAAAD,iBAAY,EAAE,UAAU,EAAE;QAC1BE,SAAS,EAAE;MACX,CAAE;IACN,CAAC;EACF,CAAC,EACD,CAAEnB,QAAQ,CACX,CAAC;;EAED;EACA;EACA,MAAM;IAAEoB;EAA6B,CAAC,GAAG,IAAAC,kBAAM,EAC9C,IAAAC,iBAAW,EAAEC,YAAc,CAC5B,CAAC;EAED,IAAK,CAAErB,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACC,IAAAsB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACGzB,SAAS,IACV,IAAAuB,MAAA,CAAAC,aAAA,EAACpC,WAAA,CAAAsC,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAMR,4BAA4B,CAAEpB,QAAS;EAAG,GAExD,IAAA6B,QAAE,EAAE,QAAS,CACN,CACV,EACD,IAAAL,MAAA,CAAAC,aAAA,EAACpC,WAAA,CAAAsC,QAAQ;IAACG,IAAI,EAAG3B;EAAmB,GACjC,IAAA0B,QAAE,EAAE,iBAAkB,CACf,CACT,CAAC;AAEL;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEclC,oBAAoB","ignoreList":[]}
@@ -65,7 +65,9 @@ function PatternOverridesControls({
65
65
  }
66
66
 
67
67
  // Avoid overwriting other (e.g. meta) bindings.
68
- if (isConnectedToOtherSources) return null;
68
+ if (isConnectedToOtherSources) {
69
+ return null;
70
+ }
69
71
  const hasName = !!attributes.metadata?.name;
70
72
  const allowOverrides = hasName && attributeSources.some(source => source === PATTERN_OVERRIDES_BINDING_SOURCE);
71
73
  return createElement(Fragment, null, createElement(InspectorControls, {
@@ -78,6 +80,7 @@ function PatternOverridesControls({
78
80
  __next40pxDefaultSize: true,
79
81
  className: "pattern-overrides-control__allow-overrides-button",
80
82
  variant: "secondary",
83
+ "aria-haspopup": "dialog",
81
84
  onClick: () => {
82
85
  if (allowOverrides) {
83
86
  setShowDisallowOverridesModal(true);
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useId","InspectorControls","BaseControl","Button","__","PARTIAL_SYNCING_SUPPORTED_BLOCKS","PATTERN_OVERRIDES_BINDING_SOURCE","AllowOverridesModal","DisallowOverridesModal","removeBindings","bindings","syncedAttributes","updatedBindings","attributeName","source","undefined","Object","keys","length","addBindings","PatternOverridesControls","attributes","name","setAttributes","controlId","showAllowOverridesModal","setShowAllowOverridesModal","showDisallowOverridesModal","setShowDisallowOverridesModal","attributeSources","map","metadata","isConnectedToOtherSources","every","updateBindings","isChecked","customName","prevBindings","updatedMetadata","hasName","allowOverrides","some","createElement","Fragment","group","id","label","help","__next40pxDefaultSize","className","variant","onClick","initialName","onClose","onSave","newName"],"sources":["@wordpress/patterns/src/components/pattern-overrides-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useId } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPARTIAL_SYNCING_SUPPORTED_BLOCKS,\n\tPATTERN_OVERRIDES_BINDING_SOURCE,\n} from '../constants';\nimport {\n\tAllowOverridesModal,\n\tDisallowOverridesModal,\n} from './allow-overrides-modal';\n\nfunction removeBindings( bindings, syncedAttributes ) {\n\tlet updatedBindings = {};\n\tfor ( const attributeName of syncedAttributes ) {\n\t\t// Omit any bindings that's not the same source from the `updatedBindings` object.\n\t\tif (\n\t\t\tbindings?.[ attributeName ]?.source !==\n\t\t\t\tPATTERN_OVERRIDES_BINDING_SOURCE &&\n\t\t\tbindings?.[ attributeName ]?.source !== undefined\n\t\t) {\n\t\t\tupdatedBindings[ attributeName ] = bindings[ attributeName ];\n\t\t}\n\t}\n\tif ( ! Object.keys( updatedBindings ).length ) {\n\t\tupdatedBindings = undefined;\n\t}\n\treturn updatedBindings;\n}\n\nfunction addBindings( bindings, syncedAttributes ) {\n\tconst updatedBindings = { ...bindings };\n\tfor ( const attributeName of syncedAttributes ) {\n\t\tif ( ! bindings?.[ attributeName ] ) {\n\t\t\tupdatedBindings[ attributeName ] = {\n\t\t\t\tsource: PATTERN_OVERRIDES_BINDING_SOURCE,\n\t\t\t};\n\t\t}\n\t}\n\treturn updatedBindings;\n}\n\nfunction PatternOverridesControls( { attributes, name, setAttributes } ) {\n\tconst controlId = useId();\n\tconst [ showAllowOverridesModal, setShowAllowOverridesModal ] =\n\t\tuseState( false );\n\tconst [ showDisallowOverridesModal, setShowDisallowOverridesModal ] =\n\t\tuseState( false );\n\n\tconst syncedAttributes = PARTIAL_SYNCING_SUPPORTED_BLOCKS[ name ];\n\tconst attributeSources = syncedAttributes.map(\n\t\t( attributeName ) =>\n\t\t\tattributes.metadata?.bindings?.[ attributeName ]?.source\n\t);\n\tconst isConnectedToOtherSources = attributeSources.every(\n\t\t( source ) => source && source !== 'core/pattern-overrides'\n\t);\n\n\tfunction updateBindings( isChecked, customName ) {\n\t\tconst prevBindings = attributes?.metadata?.bindings;\n\t\tconst updatedBindings = isChecked\n\t\t\t? addBindings( prevBindings, syncedAttributes )\n\t\t\t: removeBindings( prevBindings, syncedAttributes );\n\n\t\tconst updatedMetadata = {\n\t\t\t...attributes.metadata,\n\t\t\tbindings: updatedBindings,\n\t\t};\n\n\t\tif ( customName ) {\n\t\t\tupdatedMetadata.name = customName;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmetadata: updatedMetadata,\n\t\t} );\n\t}\n\n\t// Avoid overwriting other (e.g. meta) bindings.\n\tif ( isConnectedToOtherSources ) return null;\n\n\tconst hasName = !! attributes.metadata?.name;\n\tconst allowOverrides =\n\t\thasName &&\n\t\tattributeSources.some(\n\t\t\t( source ) => source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<BaseControl\n\t\t\t\t\tid={ controlId }\n\t\t\t\t\tlabel={ __( 'Overrides' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Allow changes to this block throughout instances of this pattern.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tclassName=\"pattern-overrides-control__allow-overrides-button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( allowOverrides ) {\n\t\t\t\t\t\t\t\tsetShowDisallowOverridesModal( true );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetShowAllowOverridesModal( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ allowOverrides\n\t\t\t\t\t\t\t? __( 'Disable overrides' )\n\t\t\t\t\t\t\t: __( 'Enable overrides' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</BaseControl>\n\t\t\t</InspectorControls>\n\n\t\t\t{ showAllowOverridesModal && (\n\t\t\t\t<AllowOverridesModal\n\t\t\t\t\tinitialName={ attributes.metadata?.name }\n\t\t\t\t\tonClose={ () => setShowAllowOverridesModal( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\tupdateBindings( true, newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showDisallowOverridesModal && (\n\t\t\t\t<DisallowOverridesModal\n\t\t\t\t\tonClose={ () => setShowDisallowOverridesModal( false ) }\n\t\t\t\t\tonSave={ () => updateBindings( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PatternOverridesControls;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useId","InspectorControls","BaseControl","Button","__","PARTIAL_SYNCING_SUPPORTED_BLOCKS","PATTERN_OVERRIDES_BINDING_SOURCE","AllowOverridesModal","DisallowOverridesModal","removeBindings","bindings","syncedAttributes","updatedBindings","attributeName","source","undefined","Object","keys","length","addBindings","PatternOverridesControls","attributes","name","setAttributes","controlId","showAllowOverridesModal","setShowAllowOverridesModal","showDisallowOverridesModal","setShowDisallowOverridesModal","attributeSources","map","metadata","isConnectedToOtherSources","every","updateBindings","isChecked","customName","prevBindings","updatedMetadata","hasName","allowOverrides","some","createElement","Fragment","group","id","label","help","__next40pxDefaultSize","className","variant","onClick","initialName","onClose","onSave","newName"],"sources":["@wordpress/patterns/src/components/pattern-overrides-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useId } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPARTIAL_SYNCING_SUPPORTED_BLOCKS,\n\tPATTERN_OVERRIDES_BINDING_SOURCE,\n} from '../constants';\nimport {\n\tAllowOverridesModal,\n\tDisallowOverridesModal,\n} from './allow-overrides-modal';\n\nfunction removeBindings( bindings, syncedAttributes ) {\n\tlet updatedBindings = {};\n\tfor ( const attributeName of syncedAttributes ) {\n\t\t// Omit any bindings that's not the same source from the `updatedBindings` object.\n\t\tif (\n\t\t\tbindings?.[ attributeName ]?.source !==\n\t\t\t\tPATTERN_OVERRIDES_BINDING_SOURCE &&\n\t\t\tbindings?.[ attributeName ]?.source !== undefined\n\t\t) {\n\t\t\tupdatedBindings[ attributeName ] = bindings[ attributeName ];\n\t\t}\n\t}\n\tif ( ! Object.keys( updatedBindings ).length ) {\n\t\tupdatedBindings = undefined;\n\t}\n\treturn updatedBindings;\n}\n\nfunction addBindings( bindings, syncedAttributes ) {\n\tconst updatedBindings = { ...bindings };\n\tfor ( const attributeName of syncedAttributes ) {\n\t\tif ( ! bindings?.[ attributeName ] ) {\n\t\t\tupdatedBindings[ attributeName ] = {\n\t\t\t\tsource: PATTERN_OVERRIDES_BINDING_SOURCE,\n\t\t\t};\n\t\t}\n\t}\n\treturn updatedBindings;\n}\n\nfunction PatternOverridesControls( { attributes, name, setAttributes } ) {\n\tconst controlId = useId();\n\tconst [ showAllowOverridesModal, setShowAllowOverridesModal ] =\n\t\tuseState( false );\n\tconst [ showDisallowOverridesModal, setShowDisallowOverridesModal ] =\n\t\tuseState( false );\n\n\tconst syncedAttributes = PARTIAL_SYNCING_SUPPORTED_BLOCKS[ name ];\n\tconst attributeSources = syncedAttributes.map(\n\t\t( attributeName ) =>\n\t\t\tattributes.metadata?.bindings?.[ attributeName ]?.source\n\t);\n\tconst isConnectedToOtherSources = attributeSources.every(\n\t\t( source ) => source && source !== 'core/pattern-overrides'\n\t);\n\n\tfunction updateBindings( isChecked, customName ) {\n\t\tconst prevBindings = attributes?.metadata?.bindings;\n\t\tconst updatedBindings = isChecked\n\t\t\t? addBindings( prevBindings, syncedAttributes )\n\t\t\t: removeBindings( prevBindings, syncedAttributes );\n\n\t\tconst updatedMetadata = {\n\t\t\t...attributes.metadata,\n\t\t\tbindings: updatedBindings,\n\t\t};\n\n\t\tif ( customName ) {\n\t\t\tupdatedMetadata.name = customName;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmetadata: updatedMetadata,\n\t\t} );\n\t}\n\n\t// Avoid overwriting other (e.g. meta) bindings.\n\tif ( isConnectedToOtherSources ) {\n\t\treturn null;\n\t}\n\n\tconst hasName = !! attributes.metadata?.name;\n\tconst allowOverrides =\n\t\thasName &&\n\t\tattributeSources.some(\n\t\t\t( source ) => source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<BaseControl\n\t\t\t\t\tid={ controlId }\n\t\t\t\t\tlabel={ __( 'Overrides' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Allow changes to this block throughout instances of this pattern.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tclassName=\"pattern-overrides-control__allow-overrides-button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( allowOverrides ) {\n\t\t\t\t\t\t\t\tsetShowDisallowOverridesModal( true );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetShowAllowOverridesModal( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ allowOverrides\n\t\t\t\t\t\t\t? __( 'Disable overrides' )\n\t\t\t\t\t\t\t: __( 'Enable overrides' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</BaseControl>\n\t\t\t</InspectorControls>\n\n\t\t\t{ showAllowOverridesModal && (\n\t\t\t\t<AllowOverridesModal\n\t\t\t\t\tinitialName={ attributes.metadata?.name }\n\t\t\t\t\tonClose={ () => setShowAllowOverridesModal( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\tupdateBindings( true, newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showDisallowOverridesModal && (\n\t\t\t\t<DisallowOverridesModal\n\t\t\t\t\tonClose={ () => setShowDisallowOverridesModal( false ) }\n\t\t\t\t\tonSave={ () => updateBindings( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PatternOverridesControls;\n"],"mappings":"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","ignoreList":[]}
@@ -26,14 +26,12 @@ function PatternsManageButton({
26
26
  const {
27
27
  getBlock,
28
28
  canRemoveBlock,
29
- getBlockCount,
30
- getSettings
29
+ getBlockCount
31
30
  } = select(blockEditorStore);
32
31
  const {
33
32
  canUser
34
33
  } = select(coreStore);
35
34
  const reusableBlock = getBlock(clientId);
36
- const isBlockTheme = getSettings().__unstableIsBlockBasedTheme;
37
35
  return {
38
36
  canRemove: canRemoveBlock(clientId),
39
37
  isVisible: !!reusableBlock && isReusableBlock(reusableBlock) && !!canUser('update', 'blocks', reusableBlock.attributes.ref),
@@ -41,7 +39,7 @@ function PatternsManageButton({
41
39
  // The site editor and templates both check whether the user
42
40
  // has edit_theme_options capabilities. We can leverage that here
43
41
  // and omit the manage patterns link if the user can't access it.
44
- managePatternsUrl: isBlockTheme && canUser('read', 'templates') ? addQueryArgs('site-editor.php', {
42
+ managePatternsUrl: canUser('read', 'templates') ? addQueryArgs('site-editor.php', {
45
43
  path: '/patterns'
46
44
  }) : addQueryArgs('edit.php', {
47
45
  post_type: 'wp_block'
@@ -1 +1 @@
1
- {"version":3,"names":["MenuItem","__","isReusableBlock","useSelect","useDispatch","store","blockEditorStore","addQueryArgs","coreStore","patternsStore","unlock","PatternsManageButton","clientId","canRemove","isVisible","managePatternsUrl","select","getBlock","canRemoveBlock","getBlockCount","getSettings","canUser","reusableBlock","isBlockTheme","__unstableIsBlockBasedTheme","attributes","ref","innerBlockCount","path","post_type","convertSyncedPatternToStatic","createElement","Fragment","onClick","href"],"sources":["@wordpress/patterns/src/components/patterns-manage-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { isReusableBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nfunction PatternsManageButton( { clientId } ) {\n\tconst { canRemove, isVisible, managePatternsUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, canRemoveBlock, getBlockCount, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst reusableBlock = getBlock( clientId );\n\t\t\tconst isBlockTheme = getSettings().__unstableIsBlockBasedTheme;\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tisVisible:\n\t\t\t\t\t!! reusableBlock &&\n\t\t\t\t\tisReusableBlock( reusableBlock ) &&\n\t\t\t\t\t!! canUser(\n\t\t\t\t\t\t'update',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\treusableBlock.attributes.ref\n\t\t\t\t\t),\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t\t// The site editor and templates both check whether the user\n\t\t\t\t// has edit_theme_options capabilities. We can leverage that here\n\t\t\t\t// and omit the manage patterns link if the user can't access it.\n\t\t\t\tmanagePatternsUrl:\n\t\t\t\t\tisBlockTheme && canUser( 'read', 'templates' )\n\t\t\t\t\t\t? addQueryArgs( 'site-editor.php', {\n\t\t\t\t\t\t\t\tpath: '/patterns',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t\t } ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { convertSyncedPatternToStatic } = unlock(\n\t\tuseDispatch( patternsStore )\n\t);\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => convertSyncedPatternToStatic( clientId ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Detach' ) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t\t<MenuItem href={ managePatternsUrl }>\n\t\t\t\t{ __( 'Manage patterns' ) }\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n\nexport default PatternsManageButton;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASF,KAAK,IAAIG,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,UAAU;AACjD,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,SAASC,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC7C,MAAM;IAAEC,SAAS;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAGZ,SAAS,CAC1Da,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,cAAc;MAAEC,aAAa;MAAEC;IAAY,CAAC,GAC7DJ,MAAM,CAAEV,gBAAiB,CAAC;IAC3B,MAAM;MAAEe;IAAQ,CAAC,GAAGL,MAAM,CAAER,SAAU,CAAC;IACvC,MAAMc,aAAa,GAAGL,QAAQ,CAAEL,QAAS,CAAC;IAC1C,MAAMW,YAAY,GAAGH,WAAW,CAAC,CAAC,CAACI,2BAA2B;IAE9D,OAAO;MACNX,SAAS,EAAEK,cAAc,CAAEN,QAAS,CAAC;MACrCE,SAAS,EACR,CAAC,CAAEQ,aAAa,IAChBpB,eAAe,CAAEoB,aAAc,CAAC,IAChC,CAAC,CAAED,OAAO,CACT,QAAQ,EACR,QAAQ,EACRC,aAAa,CAACG,UAAU,CAACC,GAC1B,CAAC;MACFC,eAAe,EAAER,aAAa,CAAEP,QAAS,CAAC;MAC1C;MACA;MACA;MACAG,iBAAiB,EAChBQ,YAAY,IAAIF,OAAO,CAAE,MAAM,EAAE,WAAY,CAAC,GAC3Cd,YAAY,CAAE,iBAAiB,EAAE;QACjCqB,IAAI,EAAE;MACN,CAAE,CAAC,GACHrB,YAAY,CAAE,UAAU,EAAE;QAC1BsB,SAAS,EAAE;MACX,CAAE;IACP,CAAC;EACF,CAAC,EACD,CAAEjB,QAAQ,CACX,CAAC;;EAED;EACA;EACA,MAAM;IAAEkB;EAA6B,CAAC,GAAGpB,MAAM,CAC9CN,WAAW,CAAEK,aAAc,CAC5B,CAAC;EAED,IAAK,CAAEK,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACCiB,aAAA,CAAAC,QAAA,QACGnB,SAAS,IACVkB,aAAA,CAAC/B,QAAQ;IACRiC,OAAO,EAAGA,CAAA,KAAMH,4BAA4B,CAAElB,QAAS;EAAG,GAExDX,EAAE,CAAE,QAAS,CACN,CACV,EACD8B,aAAA,CAAC/B,QAAQ;IAACkC,IAAI,EAAGnB;EAAmB,GACjCd,EAAE,CAAE,iBAAkB,CACf,CACT,CAAC;AAEL;AAEA,eAAeU,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["MenuItem","__","isReusableBlock","useSelect","useDispatch","store","blockEditorStore","addQueryArgs","coreStore","patternsStore","unlock","PatternsManageButton","clientId","canRemove","isVisible","managePatternsUrl","select","getBlock","canRemoveBlock","getBlockCount","canUser","reusableBlock","attributes","ref","innerBlockCount","path","post_type","convertSyncedPatternToStatic","createElement","Fragment","onClick","href"],"sources":["@wordpress/patterns/src/components/patterns-manage-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { isReusableBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nfunction PatternsManageButton( { clientId } ) {\n\tconst { canRemove, isVisible, managePatternsUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, canRemoveBlock, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst reusableBlock = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tisVisible:\n\t\t\t\t\t!! reusableBlock &&\n\t\t\t\t\tisReusableBlock( reusableBlock ) &&\n\t\t\t\t\t!! canUser(\n\t\t\t\t\t\t'update',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\treusableBlock.attributes.ref\n\t\t\t\t\t),\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t\t// The site editor and templates both check whether the user\n\t\t\t\t// has edit_theme_options capabilities. We can leverage that here\n\t\t\t\t// and omit the manage patterns link if the user can't access it.\n\t\t\t\tmanagePatternsUrl: canUser( 'read', 'templates' )\n\t\t\t\t\t? addQueryArgs( 'site-editor.php', {\n\t\t\t\t\t\t\tpath: '/patterns',\n\t\t\t\t\t } )\n\t\t\t\t\t: addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t } ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { convertSyncedPatternToStatic } = unlock(\n\t\tuseDispatch( patternsStore )\n\t);\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => convertSyncedPatternToStatic( clientId ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Detach' ) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t\t<MenuItem href={ managePatternsUrl }>\n\t\t\t\t{ __( 'Manage patterns' ) }\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n\nexport default PatternsManageButton;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASF,KAAK,IAAIG,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,UAAU;AACjD,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,SAASC,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC7C,MAAM;IAAEC,SAAS;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAGZ,SAAS,CAC1Da,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,cAAc;MAAEC;IAAc,CAAC,GAChDH,MAAM,CAAEV,gBAAiB,CAAC;IAC3B,MAAM;MAAEc;IAAQ,CAAC,GAAGJ,MAAM,CAAER,SAAU,CAAC;IACvC,MAAMa,aAAa,GAAGJ,QAAQ,CAAEL,QAAS,CAAC;IAE1C,OAAO;MACNC,SAAS,EAAEK,cAAc,CAAEN,QAAS,CAAC;MACrCE,SAAS,EACR,CAAC,CAAEO,aAAa,IAChBnB,eAAe,CAAEmB,aAAc,CAAC,IAChC,CAAC,CAAED,OAAO,CACT,QAAQ,EACR,QAAQ,EACRC,aAAa,CAACC,UAAU,CAACC,GAC1B,CAAC;MACFC,eAAe,EAAEL,aAAa,CAAEP,QAAS,CAAC;MAC1C;MACA;MACA;MACAG,iBAAiB,EAAEK,OAAO,CAAE,MAAM,EAAE,WAAY,CAAC,GAC9Cb,YAAY,CAAE,iBAAiB,EAAE;QACjCkB,IAAI,EAAE;MACN,CAAE,CAAC,GACHlB,YAAY,CAAE,UAAU,EAAE;QAC1BmB,SAAS,EAAE;MACX,CAAE;IACN,CAAC;EACF,CAAC,EACD,CAAEd,QAAQ,CACX,CAAC;;EAED;EACA;EACA,MAAM;IAAEe;EAA6B,CAAC,GAAGjB,MAAM,CAC9CN,WAAW,CAAEK,aAAc,CAC5B,CAAC;EAED,IAAK,CAAEK,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACCc,aAAA,CAAAC,QAAA,QACGhB,SAAS,IACVe,aAAA,CAAC5B,QAAQ;IACR8B,OAAO,EAAGA,CAAA,KAAMH,4BAA4B,CAAEf,QAAS;EAAG,GAExDX,EAAE,CAAE,QAAS,CACN,CACV,EACD2B,aAAA,CAAC5B,QAAQ;IAAC+B,IAAI,EAAGhB;EAAmB,GACjCd,EAAE,CAAE,iBAAkB,CACf,CACT,CAAC;AAEL;AAEA,eAAeU,oBAAoB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/patterns",
3
- "version": "1.17.0",
3
+ "version": "1.18.0",
4
4
  "description": "Management of user pattern editing.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -31,20 +31,20 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@babel/runtime": "^7.16.0",
34
- "@wordpress/a11y": "^3.56.0",
35
- "@wordpress/block-editor": "^12.24.0",
36
- "@wordpress/blocks": "^12.33.0",
37
- "@wordpress/components": "^27.4.0",
38
- "@wordpress/compose": "^6.33.0",
39
- "@wordpress/core-data": "^6.33.0",
40
- "@wordpress/data": "^9.26.0",
41
- "@wordpress/element": "^5.33.0",
42
- "@wordpress/html-entities": "^3.56.0",
43
- "@wordpress/i18n": "^4.56.0",
44
- "@wordpress/icons": "^9.47.0",
45
- "@wordpress/notices": "^4.24.0",
46
- "@wordpress/private-apis": "^0.38.0",
47
- "@wordpress/url": "^3.57.0"
34
+ "@wordpress/a11y": "^3.57.0",
35
+ "@wordpress/block-editor": "^12.25.0",
36
+ "@wordpress/blocks": "^12.34.0",
37
+ "@wordpress/components": "^27.5.0",
38
+ "@wordpress/compose": "^6.34.0",
39
+ "@wordpress/core-data": "^6.34.0",
40
+ "@wordpress/data": "^9.27.0",
41
+ "@wordpress/element": "^5.34.0",
42
+ "@wordpress/html-entities": "^3.57.0",
43
+ "@wordpress/i18n": "^4.57.0",
44
+ "@wordpress/icons": "^9.48.0",
45
+ "@wordpress/notices": "^4.25.0",
46
+ "@wordpress/private-apis": "^0.39.0",
47
+ "@wordpress/url": "^3.58.0"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "react": "^18.0.0",
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "280403b4c1cf6cc2c55a6c4d56f9ef91145e4191"
56
+ "gitHead": "581d8a5580dba8f600b7268d51eb554771ae482c"
57
57
  }
@@ -85,7 +85,9 @@ function PatternOverridesControls( { attributes, name, setAttributes } ) {
85
85
  }
86
86
 
87
87
  // Avoid overwriting other (e.g. meta) bindings.
88
- if ( isConnectedToOtherSources ) return null;
88
+ if ( isConnectedToOtherSources ) {
89
+ return null;
90
+ }
89
91
 
90
92
  const hasName = !! attributes.metadata?.name;
91
93
  const allowOverrides =
@@ -108,6 +110,7 @@ function PatternOverridesControls( { attributes, name, setAttributes } ) {
108
110
  __next40pxDefaultSize
109
111
  className="pattern-overrides-control__allow-overrides-button"
110
112
  variant="secondary"
113
+ aria-haspopup="dialog"
111
114
  onClick={ () => {
112
115
  if ( allowOverrides ) {
113
116
  setShowDisallowOverridesModal( true );
@@ -18,11 +18,10 @@ import { unlock } from '../lock-unlock';
18
18
  function PatternsManageButton( { clientId } ) {
19
19
  const { canRemove, isVisible, managePatternsUrl } = useSelect(
20
20
  ( select ) => {
21
- const { getBlock, canRemoveBlock, getBlockCount, getSettings } =
21
+ const { getBlock, canRemoveBlock, getBlockCount } =
22
22
  select( blockEditorStore );
23
23
  const { canUser } = select( coreStore );
24
24
  const reusableBlock = getBlock( clientId );
25
- const isBlockTheme = getSettings().__unstableIsBlockBasedTheme;
26
25
 
27
26
  return {
28
27
  canRemove: canRemoveBlock( clientId ),
@@ -38,14 +37,13 @@ function PatternsManageButton( { clientId } ) {
38
37
  // The site editor and templates both check whether the user
39
38
  // has edit_theme_options capabilities. We can leverage that here
40
39
  // and omit the manage patterns link if the user can't access it.
41
- managePatternsUrl:
42
- isBlockTheme && canUser( 'read', 'templates' )
43
- ? addQueryArgs( 'site-editor.php', {
44
- path: '/patterns',
45
- } )
46
- : addQueryArgs( 'edit.php', {
47
- post_type: 'wp_block',
48
- } ),
40
+ managePatternsUrl: canUser( 'read', 'templates' )
41
+ ? addQueryArgs( 'site-editor.php', {
42
+ path: '/patterns',
43
+ } )
44
+ : addQueryArgs( 'edit.php', {
45
+ post_type: 'wp_block',
46
+ } ),
49
47
  };
50
48
  },
51
49
  [ clientId ]