@wordpress/block-editor 13.0.0 → 13.1.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.
Files changed (218) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-actions/index.js +4 -6
  3. package/build/components/block-actions/index.js.map +1 -1
  4. package/build/components/block-draggable/index.js +1 -1
  5. package/build/components/block-draggable/index.js.map +1 -1
  6. package/build/components/block-list/block.js +2 -2
  7. package/build/components/block-list/block.js.map +1 -1
  8. package/build/components/block-list/block.native.js +2 -2
  9. package/build/components/block-list/block.native.js.map +1 -1
  10. package/build/components/block-list/use-in-between-inserter.js +3 -1
  11. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  12. package/build/components/block-lock/use-block-lock.js +2 -4
  13. package/build/components/block-lock/use-block-lock.js.map +1 -1
  14. package/build/components/block-mover/index.js +1 -1
  15. package/build/components/block-mover/index.js.map +1 -1
  16. package/build/components/block-mover/index.native.js +1 -1
  17. package/build/components/block-mover/index.native.js.map +1 -1
  18. package/build/components/block-settings-menu/block-settings-dropdown.js +1 -1
  19. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  20. package/build/components/block-switcher/block-variation-transformations.js +1 -3
  21. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  22. package/build/components/block-switcher/index.js +13 -6
  23. package/build/components/block-switcher/index.js.map +1 -1
  24. package/build/components/block-toolbar/index.js +6 -10
  25. package/build/components/block-toolbar/index.js.map +1 -1
  26. package/build/components/block-tools/block-selection-button.js +2 -2
  27. package/build/components/block-tools/block-selection-button.js.map +1 -1
  28. package/build/components/button-block-appender/index.js +4 -1
  29. package/build/components/button-block-appender/index.js.map +1 -1
  30. package/build/components/date-format-picker/index.js +18 -10
  31. package/build/components/date-format-picker/index.js.map +1 -1
  32. package/build/components/global-styles/background-panel.js +3 -3
  33. package/build/components/global-styles/background-panel.js.map +1 -1
  34. package/build/components/global-styles/hooks.js +2 -2
  35. package/build/components/global-styles/hooks.js.map +1 -1
  36. package/build/components/global-styles/use-global-styles-output.js +14 -1
  37. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  38. package/build/components/inserter/block-types-tab.js +3 -3
  39. package/build/components/inserter/block-types-tab.js.map +1 -1
  40. package/build/components/inserter/block-types-tab.native.js +1 -1
  41. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  42. package/build/components/inserter/hooks/use-block-types-state.js +3 -2
  43. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  44. package/build/components/link-control/link-preview.js +13 -1
  45. package/build/components/link-control/link-preview.js.map +1 -1
  46. package/build/components/link-control/search-input.js +1 -1
  47. package/build/components/link-control/search-input.js.map +1 -1
  48. package/build/components/list-view/block.js +7 -6
  49. package/build/components/list-view/block.js.map +1 -1
  50. package/build/components/list-view/branch.js +3 -1
  51. package/build/components/list-view/branch.js.map +1 -1
  52. package/build/components/list-view/use-clipboard-handler.js +1 -1
  53. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  54. package/build/components/provider/use-block-sync.js +1 -7
  55. package/build/components/provider/use-block-sync.js.map +1 -1
  56. package/build/components/rich-text/index.native.js +4 -0
  57. package/build/components/rich-text/index.native.js.map +1 -1
  58. package/build/components/rich-text/native/index.native.js +6 -4
  59. package/build/components/rich-text/native/index.native.js.map +1 -1
  60. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +9 -12
  61. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  62. package/build/components/use-block-commands/index.js +3 -3
  63. package/build/components/use-block-commands/index.js.map +1 -1
  64. package/build/components/writing-flow/use-clipboard-handler.js +22 -3
  65. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  66. package/build/hooks/block-bindings.js +19 -16
  67. package/build/hooks/block-bindings.js.map +1 -1
  68. package/build/hooks/block-style-variation.js +2 -2
  69. package/build/hooks/block-style-variation.js.map +1 -1
  70. package/build/hooks/use-bindings-attributes.js +7 -2
  71. package/build/hooks/use-bindings-attributes.js.map +1 -1
  72. package/build/private-apis.js +3 -1
  73. package/build/private-apis.js.map +1 -1
  74. package/build/store/actions.js +4 -4
  75. package/build/store/actions.js.map +1 -1
  76. package/build/store/private-actions.js +1 -36
  77. package/build/store/private-actions.js.map +1 -1
  78. package/build/store/selectors.js +19 -20
  79. package/build/store/selectors.js.map +1 -1
  80. package/build-module/components/block-actions/index.js +4 -6
  81. package/build-module/components/block-actions/index.js.map +1 -1
  82. package/build-module/components/block-draggable/index.js +1 -1
  83. package/build-module/components/block-draggable/index.js.map +1 -1
  84. package/build-module/components/block-list/block.js +2 -2
  85. package/build-module/components/block-list/block.js.map +1 -1
  86. package/build-module/components/block-list/block.native.js +2 -2
  87. package/build-module/components/block-list/block.native.js.map +1 -1
  88. package/build-module/components/block-list/use-in-between-inserter.js +3 -1
  89. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  90. package/build-module/components/block-lock/use-block-lock.js +2 -4
  91. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  92. package/build-module/components/block-mover/index.js +1 -1
  93. package/build-module/components/block-mover/index.js.map +1 -1
  94. package/build-module/components/block-mover/index.native.js +1 -1
  95. package/build-module/components/block-mover/index.native.js.map +1 -1
  96. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -1
  97. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  98. package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
  99. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  100. package/build-module/components/block-switcher/index.js +15 -8
  101. package/build-module/components/block-switcher/index.js.map +1 -1
  102. package/build-module/components/block-toolbar/index.js +7 -10
  103. package/build-module/components/block-toolbar/index.js.map +1 -1
  104. package/build-module/components/block-tools/block-selection-button.js +2 -2
  105. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  106. package/build-module/components/button-block-appender/index.js +4 -1
  107. package/build-module/components/button-block-appender/index.js.map +1 -1
  108. package/build-module/components/date-format-picker/index.js +19 -11
  109. package/build-module/components/date-format-picker/index.js.map +1 -1
  110. package/build-module/components/global-styles/background-panel.js +4 -4
  111. package/build-module/components/global-styles/background-panel.js.map +1 -1
  112. package/build-module/components/global-styles/hooks.js +2 -2
  113. package/build-module/components/global-styles/hooks.js.map +1 -1
  114. package/build-module/components/global-styles/use-global-styles-output.js +14 -1
  115. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  116. package/build-module/components/inserter/block-types-tab.js +3 -3
  117. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  118. package/build-module/components/inserter/block-types-tab.native.js +1 -1
  119. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  120. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -3
  121. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  122. package/build-module/components/link-control/link-preview.js +15 -1
  123. package/build-module/components/link-control/link-preview.js.map +1 -1
  124. package/build-module/components/link-control/search-input.js +1 -1
  125. package/build-module/components/link-control/search-input.js.map +1 -1
  126. package/build-module/components/list-view/block.js +7 -6
  127. package/build-module/components/list-view/block.js.map +1 -1
  128. package/build-module/components/list-view/branch.js +3 -1
  129. package/build-module/components/list-view/branch.js.map +1 -1
  130. package/build-module/components/list-view/use-clipboard-handler.js +1 -1
  131. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  132. package/build-module/components/provider/use-block-sync.js +1 -7
  133. package/build-module/components/provider/use-block-sync.js.map +1 -1
  134. package/build-module/components/rich-text/index.native.js +4 -0
  135. package/build-module/components/rich-text/index.native.js.map +1 -1
  136. package/build-module/components/rich-text/native/index.native.js +6 -4
  137. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  138. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +9 -12
  139. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  140. package/build-module/components/use-block-commands/index.js +3 -3
  141. package/build-module/components/use-block-commands/index.js.map +1 -1
  142. package/build-module/components/writing-flow/use-clipboard-handler.js +23 -4
  143. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  144. package/build-module/hooks/block-bindings.js +20 -17
  145. package/build-module/hooks/block-bindings.js.map +1 -1
  146. package/build-module/hooks/block-style-variation.js +2 -2
  147. package/build-module/hooks/block-style-variation.js.map +1 -1
  148. package/build-module/hooks/use-bindings-attributes.js +7 -2
  149. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  150. package/build-module/private-apis.js +3 -1
  151. package/build-module/private-apis.js.map +1 -1
  152. package/build-module/store/actions.js +4 -4
  153. package/build-module/store/actions.js.map +1 -1
  154. package/build-module/store/private-actions.js +1 -35
  155. package/build-module/store/private-actions.js.map +1 -1
  156. package/build-module/store/selectors.js +19 -20
  157. package/build-module/store/selectors.js.map +1 -1
  158. package/build-style/content-rtl.css +1 -1
  159. package/build-style/content.css +1 -1
  160. package/build-style/style-rtl.css +13 -17
  161. package/build-style/style.css +13 -17
  162. package/package.json +31 -31
  163. package/src/components/block-actions/index.js +3 -7
  164. package/src/components/block-canvas/style.scss +2 -2
  165. package/src/components/block-draggable/index.js +1 -1
  166. package/src/components/block-list/block.js +2 -2
  167. package/src/components/block-list/block.native.js +2 -2
  168. package/src/components/block-list/use-in-between-inserter.js +3 -1
  169. package/src/components/block-lock/use-block-lock.js +2 -4
  170. package/src/components/block-mover/index.js +1 -1
  171. package/src/components/block-mover/index.native.js +1 -1
  172. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -1
  173. package/src/components/block-switcher/block-variation-transformations.js +4 -9
  174. package/src/components/block-switcher/index.js +27 -12
  175. package/src/components/block-switcher/style.scss +5 -0
  176. package/src/components/block-toolbar/index.js +7 -9
  177. package/src/components/block-toolbar/style.scss +9 -6
  178. package/src/components/block-tools/block-selection-button.js +2 -2
  179. package/src/components/block-variation-picker/content.scss +1 -1
  180. package/src/components/button-block-appender/index.js +2 -0
  181. package/src/components/date-format-picker/index.js +25 -13
  182. package/src/components/global-styles/background-panel.js +13 -4
  183. package/src/components/global-styles/hooks.js +2 -4
  184. package/src/components/global-styles/use-global-styles-output.js +24 -4
  185. package/src/components/inserter/block-types-tab.js +0 -1
  186. package/src/components/inserter/block-types-tab.native.js +2 -1
  187. package/src/components/inserter/hooks/use-block-types-state.js +10 -5
  188. package/src/components/inserter/style.scss +4 -0
  189. package/src/components/link-control/link-preview.js +19 -1
  190. package/src/components/link-control/search-input.js +1 -1
  191. package/src/components/list-view/block.js +7 -7
  192. package/src/components/list-view/branch.js +5 -1
  193. package/src/components/list-view/use-clipboard-handler.js +1 -6
  194. package/src/components/provider/use-block-sync.js +0 -6
  195. package/src/components/rich-text/index.native.js +4 -0
  196. package/src/components/rich-text/native/index.native.js +3 -1
  197. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -4
  198. package/src/components/use-block-commands/index.js +3 -4
  199. package/src/components/writing-flow/use-clipboard-handler.js +29 -7
  200. package/src/hooks/block-bindings.js +28 -22
  201. package/src/hooks/block-style-variation.js +2 -2
  202. package/src/hooks/use-bindings-attributes.js +11 -1
  203. package/src/private-apis.js +2 -0
  204. package/src/store/actions.js +4 -10
  205. package/src/store/private-actions.js +1 -34
  206. package/src/store/selectors.js +22 -27
  207. package/src/style.scss +0 -1
  208. package/build/components/block-bindings-toolbar-indicator/index.js +0 -106
  209. package/build/components/block-bindings-toolbar-indicator/index.js.map +0 -1
  210. package/build/store/undo-ignore.js +0 -11
  211. package/build/store/undo-ignore.js.map +0 -1
  212. package/build-module/components/block-bindings-toolbar-indicator/index.js +0 -99
  213. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +0 -1
  214. package/build-module/store/undo-ignore.js +0 -5
  215. package/build-module/store/undo-ignore.js.map +0 -1
  216. package/src/components/block-bindings-toolbar-indicator/index.js +0 -135
  217. package/src/components/block-bindings-toolbar-indicator/style.scss +0 -12
  218. package/src/store/undo-ignore.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_blockIcon","_interopRequireDefault","_store","_jsxRuntime","useTransformCommands","replaceBlocks","multiSelect","useDispatch","blockEditorStore","blocks","clientIds","canRemove","possibleBlockTransformations","invalidSelection","useSelect","select","getBlockRootClientId","getBlockTransformItems","getSelectedBlockClientIds","getBlocksByClientId","canRemoveBlocks","selectedBlockClientIds","selectedBlocks","filter","block","length","rootClientId","isLoading","commands","isTemplate","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","map","transformation","title","icon","replace","label","sprintf","__","jsx","default","callback","close","exports","useActionsCommands","canMoveBlocks","getBlockCount","setBlockMovingClientId","setNavigationMode","selectBlock","canMove","push","move","command","useQuickActionsCommands","isUngroupable","isGroupable","_isUngroupable","_isGroupable","canInsertBlockType","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","hasBlockSupport","copy","Array","isArray","add","group","ungroup","remove","useBlockCommands","useCommandLoader","hook","context"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\ttrash as remove,\n\tplus as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst {\n\t\tblocks,\n\t\tclientIds,\n\t\tcanRemove,\n\t\tpossibleBlockTransformations,\n\t\tinvalidSelection,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlocksByClientId,\n\t\t\tcanRemoveBlocks,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlocks = getBlocksByClientId( selectedBlockClientIds );\n\n\t\t// selectedBlocks can have `null`s when something tries to call `selectBlock` with an inexistent clientId.\n\t\t// These nulls will cause fatal errors down the line.\n\t\t// In order to prevent discrepancies between selectedBlockClientIds and selectedBlocks, we effectively treat the entire selection as invalid.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/59410#issuecomment-2006304536\n\t\tif ( selectedBlocks.filter( ( block ) => ! block ).length > 0 ) {\n\t\t\treturn {\n\t\t\t\tinvalidSelection: true,\n\t\t\t};\n\t\t}\n\n\t\tconst rootClientId = getBlockRootClientId(\n\t\t\tselectedBlockClientIds[ 0 ]\n\t\t);\n\t\treturn {\n\t\t\tblocks: selectedBlocks,\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\tselectedBlocks,\n\t\t\t\trootClientId\n\t\t\t),\n\t\t\tcanRemove: canRemoveBlocks( selectedBlockClientIds, rootClientId ),\n\t\t\tinvalidSelection: false,\n\t\t};\n\t}, [] );\n\n\tif ( invalidSelection ) {\n\t\treturn {\n\t\t\tisLoading: false,\n\t\t\tcommands: [],\n\t\t};\n\t}\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: <BlockIcon icon={ icon } />,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\n\tconst { getBlockRootClientId, canMoveBlocks, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setBlockMovingClientId, setNavigationMode, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds, rootClientId ) &&\n\t\tgetBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [];\n\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nconst useQuickActionsCommands = () => {\n\tconst { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tisGroupable: _isGroupable,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable(),\n\t\t\tisGroupable: _isGroupable(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst commands = [];\n\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\n\tif ( isGroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t} );\n\t}\n\n\tif ( isUngroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t} );\n\t}\n\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Delete' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockQuickActions',\n\t\thook: useQuickActionsCommands,\n\t\tcontext: 'block-selection-edit',\n\t} );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_blockIcon","_interopRequireDefault","_store","_jsxRuntime","useTransformCommands","replaceBlocks","multiSelect","useDispatch","blockEditorStore","blocks","clientIds","canRemove","possibleBlockTransformations","invalidSelection","useSelect","select","getBlockRootClientId","getBlockTransformItems","getSelectedBlockClientIds","getBlocksByClientId","canRemoveBlocks","selectedBlockClientIds","selectedBlocks","filter","block","length","rootClientId","isLoading","commands","isTemplate","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","map","transformation","title","icon","replace","label","sprintf","__","jsx","default","callback","close","exports","useActionsCommands","canMoveBlocks","getBlockCount","setBlockMovingClientId","setNavigationMode","selectBlock","canMove","push","move","command","useQuickActionsCommands","isUngroupable","isGroupable","_isUngroupable","_isGroupable","canInsertBlockType","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","hasBlockSupport","copy","Array","isArray","add","group","ungroup","remove","useBlockCommands","useCommandLoader","hook","context"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\ttrash as remove,\n\tplus as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst {\n\t\tblocks,\n\t\tclientIds,\n\t\tcanRemove,\n\t\tpossibleBlockTransformations,\n\t\tinvalidSelection,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlocksByClientId,\n\t\t\tcanRemoveBlocks,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlocks = getBlocksByClientId( selectedBlockClientIds );\n\n\t\t// selectedBlocks can have `null`s when something tries to call `selectBlock` with an inexistent clientId.\n\t\t// These nulls will cause fatal errors down the line.\n\t\t// In order to prevent discrepancies between selectedBlockClientIds and selectedBlocks, we effectively treat the entire selection as invalid.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/59410#issuecomment-2006304536\n\t\tif ( selectedBlocks.filter( ( block ) => ! block ).length > 0 ) {\n\t\t\treturn {\n\t\t\t\tinvalidSelection: true,\n\t\t\t};\n\t\t}\n\n\t\tconst rootClientId = getBlockRootClientId(\n\t\t\tselectedBlockClientIds[ 0 ]\n\t\t);\n\t\treturn {\n\t\t\tblocks: selectedBlocks,\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\tselectedBlocks,\n\t\t\t\trootClientId\n\t\t\t),\n\t\t\tcanRemove: canRemoveBlocks( selectedBlockClientIds ),\n\t\t\tinvalidSelection: false,\n\t\t};\n\t}, [] );\n\n\tif ( invalidSelection ) {\n\t\treturn {\n\t\t\tisLoading: false,\n\t\t\tcommands: [],\n\t\t};\n\t}\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: <BlockIcon icon={ icon } />,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\n\tconst { getBlockRootClientId, canMoveBlocks, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setBlockMovingClientId, setNavigationMode, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds ) && getBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [];\n\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nconst useQuickActionsCommands = () => {\n\tconst { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tisGroupable: _isGroupable,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable(),\n\t\t\tisGroupable: _isGroupable(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds );\n\n\tconst commands = [];\n\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\n\tif ( isGroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t} );\n\t}\n\n\tif ( isUngroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t} );\n\t}\n\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Delete' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockQuickActions',\n\t\thook: useQuickActionsCommands,\n\t\tcontext: 'block-selection-edit',\n\t} );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -165,10 +165,29 @@ function useClipboardHandler() {
165
165
  }
166
166
  const [firstSelectedClientId] = selectedBlockClientIds;
167
167
  const rootClientId = getBlockRootClientId(firstSelectedClientId);
168
- if (!blocks.every(block => canInsertBlockType(block.name, rootClientId))) {
169
- return;
168
+ const newBlocks = [];
169
+ for (const block of blocks) {
170
+ if (canInsertBlockType(block.name, rootClientId)) {
171
+ newBlocks.push(block);
172
+ } else {
173
+ // If a block cannot be inserted in a root block, try
174
+ // converting it to that root block type and insert the
175
+ // inner blocks.
176
+ // Example: paragraphs cannot be inserted into a list,
177
+ // so convert the paragraphs to a list for list items.
178
+ const rootBlockName = getBlockName(rootClientId);
179
+ const switchedBlocks = block.name !== rootBlockName ? (0, _blocks.switchToBlockType)(block, rootBlockName) : [block];
180
+ if (!switchedBlocks) {
181
+ return;
182
+ }
183
+ for (const switchedBlock of switchedBlocks) {
184
+ for (const innerBlock of switchedBlock.innerBlocks) {
185
+ newBlocks.push(innerBlock);
186
+ }
187
+ }
188
+ }
170
189
  }
171
- __unstableSplitSelection(blocks);
190
+ __unstableSplitSelection(newBlocks);
172
191
  event.preventDefault();
173
192
  }
174
193
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_dom","_data","_compose","_store","_useNotifyCopy","_utils","_pasting","useClipboardHandler","registry","useRegistry","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","getBlockName","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","getBlockRootClientId","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableSplitSelection","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","activeElement","isContentEditable","contains","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","preventDefault","blocks","head","tail","inBetweenBlocks","slice","setClipboardBlocks","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","isInternal","clipboardData","getData","plainText","html","files","getPasteEventData","isFullySelected","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","hasBlockSupport","__deprecatedOnSplit","firstSelectedClientId","rootClientId","every","block","name","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\t! blocks.every( ( block ) =>\n\t\t\t\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t__unstableSplitSelection( blocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_dom","_data","_compose","_store","_useNotifyCopy","_utils","_pasting","useClipboardHandler","registry","useRegistry","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","getBlockName","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","getBlockRootClientId","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableSplitSelection","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","activeElement","isContentEditable","contains","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","preventDefault","blocks","head","tail","inBetweenBlocks","slice","setClipboardBlocks","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","isInternal","clipboardData","getData","plainText","html","files","getPasteEventData","isFullySelected","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","hasBlockSupport","__deprecatedOnSplit","firstSelectedClientId","rootClientId","newBlocks","block","name","rootBlockName","switchedBlocks","switchToBlockType","switchedBlock","innerBlock","innerBlocks","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tconst newBlocks = [];\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( canInsertBlockType( block.name, rootClientId ) ) {\n\t\t\t\t\t\tnewBlocks.push( block );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a block cannot be inserted in a root block, try\n\t\t\t\t\t\t// converting it to that root block type and insert the\n\t\t\t\t\t\t// inner blocks.\n\t\t\t\t\t\t// Example: paragraphs cannot be inserted into a list,\n\t\t\t\t\t\t// so convert the paragraphs to a list for list items.\n\t\t\t\t\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\t\t\t\t\tconst switchedBlocks =\n\t\t\t\t\t\t\tblock.name !== rootBlockName\n\t\t\t\t\t\t\t\t? switchToBlockType( block, rootBlockName )\n\t\t\t\t\t\t\t\t: [ block ];\n\n\t\t\t\t\t\tif ( ! switchedBlocks ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( const switchedBlock of switchedBlocks ) {\n\t\t\t\t\t\t\tfor ( const innerBlock of switchedBlock.innerBlocks ) {\n\t\t\t\t\t\t\t\tnewBlocks.push( innerBlock );\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}\n\n\t\t\t\t__unstableSplitSelection( newBlocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -56,23 +56,26 @@ const BlockBindingsPanel = ({
56
56
  }
57
57
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_inspectorControls.default, {
58
58
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PanelBody, {
59
- title: (0, _i18n.__)('Bindings'),
59
+ title: (0, _i18n.__)('Attributes'),
60
60
  className: "components-panel__block-bindings-panel",
61
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItemGroup, {
62
- isBordered: true,
63
- isSeparated: true,
64
- size: "large",
65
- children: Object.keys(filteredBindings).map(key => {
66
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItem, {
67
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
68
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
69
- children: key
70
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
71
- className: "components-item__block-bindings-source",
72
- children: sources[filteredBindings[key].source] ? sources[filteredBindings[key].source].label : filteredBindings[key].source
73
- })]
74
- })
75
- }, key);
61
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BaseControl, {
62
+ help: (0, _i18n.__)('Attributes connected to various sources.'),
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItemGroup, {
64
+ isBordered: true,
65
+ isSeparated: true,
66
+ size: "large",
67
+ children: Object.keys(filteredBindings).map(key => {
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItem, {
69
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
70
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
71
+ children: key
72
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
73
+ className: "components-item__block-bindings-source",
74
+ children: sources[filteredBindings[key].source] ? sources[filteredBindings[key].source].label : filteredBindings[key].source
75
+ })]
76
+ })
77
+ }, key);
78
+ })
76
79
  })
77
80
  })
78
81
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_components","_data","_useBindingsAttributes","_lockUnlock","_inspectorControls","_interopRequireDefault","_jsxRuntime","BlockBindingsPanel","name","metadata","bindings","sources","useSelect","select","_sources","unlock","blocksStore","getAllBlockBindingsSources","filteredBindings","Object","keys","forEach","key","canBindAttribute","source","length","jsx","default","children","PanelBody","title","__","className","__experimentalItemGroup","isBordered","isSeparated","size","map","__experimentalItem","jsxs","__experimentalHStack","label","exports","_default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { canBindAttribute } from '../hooks/use-bindings-attributes';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\n\nexport const BlockBindingsPanel = ( { name, metadata } ) => {\n\tconst { bindings } = metadata || {};\n\tconst { sources } = useSelect( ( select ) => {\n\t\tconst _sources = unlock(\n\t\t\tselect( blocksStore )\n\t\t).getAllBlockBindingsSources();\n\n\t\treturn {\n\t\t\tsources: _sources,\n\t\t};\n\t}, [] );\n\n\tif ( ! bindings ) {\n\t\treturn null;\n\t}\n\n\t// Don't show not allowed attributes.\n\t// Don't show the bindings connected to pattern overrides in the inspectors panel.\n\t// TODO: Explore if this should be abstracted to let other sources decide.\n\tconst filteredBindings = { ...bindings };\n\tObject.keys( filteredBindings ).forEach( ( key ) => {\n\t\tif (\n\t\t\t! canBindAttribute( name, key ) ||\n\t\t\tfilteredBindings[ key ].source === 'core/pattern-overrides'\n\t\t) {\n\t\t\tdelete filteredBindings[ key ];\n\t\t}\n\t} );\n\n\tif ( Object.keys( filteredBindings ).length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\ttitle={ __( 'Bindings' ) }\n\t\t\t\tclassName=\"components-panel__block-bindings-panel\"\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated size=\"large\">\n\t\t\t\t\t{ Object.keys( filteredBindings ).map( ( key ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Item key={ key }>\n\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t<span>{ key }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"components-item__block-bindings-source\">\n\t\t\t\t\t\t\t\t\t\t{ sources[\n\t\t\t\t\t\t\t\t\t\t\tfilteredBindings[ key ].source\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t? sources[\n\t\t\t\t\t\t\t\t\t\t\t\t\tfilteredBindings[ key ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.source\n\t\t\t\t\t\t\t\t\t\t\t ].label\n\t\t\t\t\t\t\t\t\t\t\t: filteredBindings[ key ].source }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default {\n\tedit: BlockBindingsPanel,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_blocks","_components","_data","_useBindingsAttributes","_lockUnlock","_inspectorControls","_interopRequireDefault","_jsxRuntime","BlockBindingsPanel","name","metadata","bindings","sources","useSelect","select","_sources","unlock","blocksStore","getAllBlockBindingsSources","filteredBindings","Object","keys","forEach","key","canBindAttribute","source","length","jsx","default","children","PanelBody","title","__","className","BaseControl","help","__experimentalItemGroup","isBordered","isSeparated","size","map","__experimentalItem","jsxs","__experimentalHStack","label","exports","_default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tBaseControl,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { canBindAttribute } from '../hooks/use-bindings-attributes';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\n\nexport const BlockBindingsPanel = ( { name, metadata } ) => {\n\tconst { bindings } = metadata || {};\n\tconst { sources } = useSelect( ( select ) => {\n\t\tconst _sources = unlock(\n\t\t\tselect( blocksStore )\n\t\t).getAllBlockBindingsSources();\n\n\t\treturn {\n\t\t\tsources: _sources,\n\t\t};\n\t}, [] );\n\n\tif ( ! bindings ) {\n\t\treturn null;\n\t}\n\n\t// Don't show not allowed attributes.\n\t// Don't show the bindings connected to pattern overrides in the inspectors panel.\n\t// TODO: Explore if this should be abstracted to let other sources decide.\n\tconst filteredBindings = { ...bindings };\n\tObject.keys( filteredBindings ).forEach( ( key ) => {\n\t\tif (\n\t\t\t! canBindAttribute( name, key ) ||\n\t\t\tfilteredBindings[ key ].source === 'core/pattern-overrides'\n\t\t) {\n\t\t\tdelete filteredBindings[ key ];\n\t\t}\n\t} );\n\n\tif ( Object.keys( filteredBindings ).length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\ttitle={ __( 'Attributes' ) }\n\t\t\t\tclassName=\"components-panel__block-bindings-panel\"\n\t\t\t>\n\t\t\t\t<BaseControl\n\t\t\t\t\thelp={ __( 'Attributes connected to various sources.' ) }\n\t\t\t\t>\n\t\t\t\t\t<ItemGroup isBordered isSeparated size=\"large\">\n\t\t\t\t\t\t{ Object.keys( filteredBindings ).map( ( key ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Item key={ key }>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<span>{ key }</span>\n\t\t\t\t\t\t\t\t\t\t<span className=\"components-item__block-bindings-source\">\n\t\t\t\t\t\t\t\t\t\t\t{ sources[\n\t\t\t\t\t\t\t\t\t\t\t\tfilteredBindings[ key ].source\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t? sources[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilteredBindings[ key ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.source\n\t\t\t\t\t\t\t\t\t\t\t\t ].label\n\t\t\t\t\t\t\t\t\t\t\t\t: filteredBindings[ key ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.source }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</BaseControl>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default {\n\tedit: BlockBindingsPanel,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,7 @@ function getVariationNameFromClass(className, registeredStyles = []) {
42
42
  }
43
43
  return null;
44
44
  }
45
- function useBlockSyleVariation(name, variation, clientId) {
45
+ function useBlockStyleVariation(name, variation, clientId) {
46
46
  // Prefer global styles data in GlobalStylesContext, which are available
47
47
  // if in the site editor. Otherwise fall back to whatever is in the
48
48
  // editor settings and available in the post editor.
@@ -98,7 +98,7 @@ function useBlockProps({
98
98
  const {
99
99
  settings,
100
100
  styles
101
- } = useBlockSyleVariation(name, variation, clientId);
101
+ } = useBlockStyleVariation(name, variation, clientId);
102
102
  const variationStyles = (0, _element.useMemo)(() => {
103
103
  if (!variation) {
104
104
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_data","_element","_globalStyles","_utils","_store","_privateKeys","getVariationNameFromClass","className","registeredStyles","matches","match","variationClass","variation","substring","some","style","name","useBlockSyleVariation","clientId","merged","mergedConfig","useContext","GlobalStylesContext","globalSettings","globalStyles","useSelect","select","settings","blockEditorStore","getSettings","__experimentalFeatures","globalStylesDataKey","useMemo","_mergedConfig$styles","_mergedConfig$setting","styles","variationStyles","blocks","variations","useBlockProps","getBlockStyles","blocksStore","variationConfig","blockSelectors","getBlockSelectors","getBlockTypes","hasBlockGapSupport","hasFallbackGapSupport","disableLayoutStyles","isTemplate","toStyles","blockGap","blockStyles","layoutStyles","marginReset","presets","rootPadding","useStyleOverride","id","css","__unstableType","_default","exports","default","hasSupport","attributeKeys"],"sources":["@wordpress/block-editor/src/hooks/block-style-variation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tGlobalStylesContext,\n\ttoStyles,\n\tgetBlockSelectors,\n} from '../components/global-styles';\nimport { useStyleOverride } from './utils';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\n\n/**\n * Get the first block style variation that has been registered from the class string.\n *\n * @param {string} className CSS class string for a block.\n * @param {Array} registeredStyles Currently registered block styles.\n *\n * @return {string|null} The name of the first registered variation.\n */\nfunction getVariationNameFromClass( className, registeredStyles = [] ) {\n\t// The global flag affects how capturing groups work in JS. So the regex\n\t// below will only return full CSS classes not just the variation name.\n\tconst matches = className?.match( /\\bis-style-(?!default)(\\S+)\\b/g );\n\n\tif ( ! matches ) {\n\t\treturn null;\n\t}\n\n\tfor ( const variationClass of matches ) {\n\t\tconst variation = variationClass.substring( 9 ); // Remove 'is-style-' prefix.\n\t\tif ( registeredStyles.some( ( style ) => style.name === variation ) ) {\n\t\t\treturn variation;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction useBlockSyleVariation( name, variation, clientId ) {\n\t// Prefer global styles data in GlobalStylesContext, which are available\n\t// if in the site editor. Otherwise fall back to whatever is in the\n\t// editor settings and available in the post editor.\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst { globalSettings, globalStyles } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tglobalSettings: settings.__experimentalFeatures,\n\t\t\tglobalStyles: settings[ globalStylesDataKey ],\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst styles = mergedConfig?.styles ?? globalStyles;\n\t\tconst variationStyles =\n\t\t\tstyles?.blocks?.[ name ]?.variations?.[ variation ];\n\n\t\treturn {\n\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t// The variation style data is all that is needed to generate\n\t\t\t// the styles for the current application to a block. The variation\n\t\t\t// name is updated to match the instance specific class name.\n\t\t\tstyles: {\n\t\t\t\tblocks: {\n\t\t\t\t\t[ name ]: {\n\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t[ `${ variation }-${ clientId }` ]: variationStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tglobalSettings,\n\t\tglobalStyles,\n\t\tvariation,\n\t\tclientId,\n\t\tname,\n\t] );\n}\n\n// Rather than leveraging `useInstanceId` here, the `clientId` is used.\n// This is so that the variation style override's ID is predictable\n// when the order of applied style variations changes.\nfunction useBlockProps( { name, className, clientId } ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\tconst registeredStyles = getBlockStyles( name );\n\tconst variation = getVariationNameFromClass( className, registeredStyles );\n\tconst variationClass = `is-style-${ variation }-${ clientId }`;\n\n\tconst { settings, styles } = useBlockSyleVariation(\n\t\tname,\n\t\tvariation,\n\t\tclientId\n\t);\n\n\tconst variationStyles = useMemo( () => {\n\t\tif ( ! variation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst variationConfig = { settings, styles };\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles,\n\t\t\tclientId\n\t\t);\n\t\tconst hasBlockGapSupport = false;\n\t\tconst hasFallbackGapSupport = true;\n\t\tconst disableLayoutStyles = true;\n\t\tconst isTemplate = true;\n\n\t\treturn toStyles(\n\t\t\tvariationConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tisTemplate,\n\t\t\t{\n\t\t\t\tblockGap: false,\n\t\t\t\tblockStyles: true,\n\t\t\t\tlayoutStyles: false,\n\t\t\t\tmarginReset: false,\n\t\t\t\tpresets: false,\n\t\t\t\trootPadding: false,\n\t\t\t}\n\t\t);\n\t}, [ variation, settings, styles, getBlockStyles, clientId ] );\n\n\tuseStyleOverride( {\n\t\tid: `variation-${ clientId }`,\n\t\tcss: variationStyles,\n\t\t__unstableType: 'variation',\n\t\t// The clientId will be stored with the override and used to ensure\n\t\t// the order of overrides matches the order of blocks so that the\n\t\t// correct CSS cascade is maintained.\n\t\tclientId,\n\t} );\n\n\treturn variation ? { className: variationClass } : {};\n}\n\nexport default {\n\thasSupport: () => true,\n\tattributeKeys: [ 'className' ],\n\tuseBlockProps,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_data","_element","_globalStyles","_utils","_store","_privateKeys","getVariationNameFromClass","className","registeredStyles","matches","match","variationClass","variation","substring","some","style","name","useBlockStyleVariation","clientId","merged","mergedConfig","useContext","GlobalStylesContext","globalSettings","globalStyles","useSelect","select","settings","blockEditorStore","getSettings","__experimentalFeatures","globalStylesDataKey","useMemo","_mergedConfig$styles","_mergedConfig$setting","styles","variationStyles","blocks","variations","useBlockProps","getBlockStyles","blocksStore","variationConfig","blockSelectors","getBlockSelectors","getBlockTypes","hasBlockGapSupport","hasFallbackGapSupport","disableLayoutStyles","isTemplate","toStyles","blockGap","blockStyles","layoutStyles","marginReset","presets","rootPadding","useStyleOverride","id","css","__unstableType","_default","exports","default","hasSupport","attributeKeys"],"sources":["@wordpress/block-editor/src/hooks/block-style-variation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tGlobalStylesContext,\n\ttoStyles,\n\tgetBlockSelectors,\n} from '../components/global-styles';\nimport { useStyleOverride } from './utils';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\n\n/**\n * Get the first block style variation that has been registered from the class string.\n *\n * @param {string} className CSS class string for a block.\n * @param {Array} registeredStyles Currently registered block styles.\n *\n * @return {string|null} The name of the first registered variation.\n */\nfunction getVariationNameFromClass( className, registeredStyles = [] ) {\n\t// The global flag affects how capturing groups work in JS. So the regex\n\t// below will only return full CSS classes not just the variation name.\n\tconst matches = className?.match( /\\bis-style-(?!default)(\\S+)\\b/g );\n\n\tif ( ! matches ) {\n\t\treturn null;\n\t}\n\n\tfor ( const variationClass of matches ) {\n\t\tconst variation = variationClass.substring( 9 ); // Remove 'is-style-' prefix.\n\t\tif ( registeredStyles.some( ( style ) => style.name === variation ) ) {\n\t\t\treturn variation;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction useBlockStyleVariation( name, variation, clientId ) {\n\t// Prefer global styles data in GlobalStylesContext, which are available\n\t// if in the site editor. Otherwise fall back to whatever is in the\n\t// editor settings and available in the post editor.\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst { globalSettings, globalStyles } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tglobalSettings: settings.__experimentalFeatures,\n\t\t\tglobalStyles: settings[ globalStylesDataKey ],\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst styles = mergedConfig?.styles ?? globalStyles;\n\t\tconst variationStyles =\n\t\t\tstyles?.blocks?.[ name ]?.variations?.[ variation ];\n\n\t\treturn {\n\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t// The variation style data is all that is needed to generate\n\t\t\t// the styles for the current application to a block. The variation\n\t\t\t// name is updated to match the instance specific class name.\n\t\t\tstyles: {\n\t\t\t\tblocks: {\n\t\t\t\t\t[ name ]: {\n\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t[ `${ variation }-${ clientId }` ]: variationStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tglobalSettings,\n\t\tglobalStyles,\n\t\tvariation,\n\t\tclientId,\n\t\tname,\n\t] );\n}\n\n// Rather than leveraging `useInstanceId` here, the `clientId` is used.\n// This is so that the variation style override's ID is predictable\n// when the order of applied style variations changes.\nfunction useBlockProps( { name, className, clientId } ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\tconst registeredStyles = getBlockStyles( name );\n\tconst variation = getVariationNameFromClass( className, registeredStyles );\n\tconst variationClass = `is-style-${ variation }-${ clientId }`;\n\n\tconst { settings, styles } = useBlockStyleVariation(\n\t\tname,\n\t\tvariation,\n\t\tclientId\n\t);\n\n\tconst variationStyles = useMemo( () => {\n\t\tif ( ! variation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst variationConfig = { settings, styles };\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles,\n\t\t\tclientId\n\t\t);\n\t\tconst hasBlockGapSupport = false;\n\t\tconst hasFallbackGapSupport = true;\n\t\tconst disableLayoutStyles = true;\n\t\tconst isTemplate = true;\n\n\t\treturn toStyles(\n\t\t\tvariationConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tisTemplate,\n\t\t\t{\n\t\t\t\tblockGap: false,\n\t\t\t\tblockStyles: true,\n\t\t\t\tlayoutStyles: false,\n\t\t\t\tmarginReset: false,\n\t\t\t\tpresets: false,\n\t\t\t\trootPadding: false,\n\t\t\t}\n\t\t);\n\t}, [ variation, settings, styles, getBlockStyles, clientId ] );\n\n\tuseStyleOverride( {\n\t\tid: `variation-${ clientId }`,\n\t\tcss: variationStyles,\n\t\t__unstableType: 'variation',\n\t\t// The clientId will be stored with the override and used to ensure\n\t\t// the order of overrides matches the order of blocks so that the\n\t\t// correct CSS cascade is maintained.\n\t\tclientId,\n\t} );\n\n\treturn variation ? { className: variationClass } : {};\n}\n\nexport default {\n\thasSupport: () => true,\n\tattributeKeys: [ 'className' ],\n\tuseBlockProps,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -96,6 +96,7 @@ const withBlockBindingSupport = exports.withBlockBindingSupport = (0, _compose.c
96
96
  clientId,
97
97
  context
98
98
  } = props;
99
+ const hasPatternOverridesDefaultBinding = props.attributes.metadata?.bindings?.[DEFAULT_ATTRIBUTE]?.source === 'core/pattern-overrides';
99
100
  const bindings = (0, _element.useMemo)(() => replacePatternOverrideDefaultBindings(name, props.attributes.metadata?.bindings), [props.attributes.metadata?.bindings, name]);
100
101
  const boundAttributes = (0, _data.useSelect)(() => {
101
102
  if (!bindings) {
@@ -179,11 +180,15 @@ const withBlockBindingSupport = exports.withBlockBindingSupport = (0, _compose.c
179
180
  }
180
181
  }
181
182
  }
182
- if (Object.keys(keptAttributes).length) {
183
+
184
+ // Only apply normal attribute updates to blocks
185
+ // that have partial bindings. Currently this is
186
+ // only skipped for pattern overrides sources.
187
+ if (!hasPatternOverridesDefaultBinding && Object.keys(keptAttributes).length) {
183
188
  setAttributes(keptAttributes);
184
189
  }
185
190
  });
186
- }, [registry, bindings, name, clientId, context, setAttributes, sources]);
191
+ }, [registry, bindings, name, clientId, context, setAttributes, sources, hasPatternOverridesDefaultBinding]);
187
192
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
188
193
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockEdit, {
189
194
  ...props,
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_compose","_data","_element","_hooks","_lockUnlock","_jsxRuntime","BLOCK_BINDINGS_ALLOWED_BLOCKS","DEFAULT_ATTRIBUTE","replacePatternOverrideDefaultBindings","blockName","bindings","source","supportedAttributes","bindingsWithDefaults","attributeName","bindingSource","canBindBlock","canBindAttribute","includes","withBlockBindingSupport","exports","createHigherOrderComponent","BlockEdit","props","registry","useRegistry","sources","useSelect","select","unlock","blocksStore","getAllBlockBindingsSources","name","clientId","context","useMemo","attributes","metadata","boundAttributes","boundAttribute","Object","entries","getValue","args","undefined","getPlaceholder","setAttributes","_setAttributes","useCallback","nextAttributes","batch","keptAttributes","updatesBySource","Map","newValue","binding","setValue","setValues","set","get","size","value","keys","length","jsx","Fragment","children","shimAttributeSource","settings","edit","addFilter"],"sources":["@wordpress/block-editor/src/hooks/use-bindings-attributes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\n/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */\n/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */\n\n/**\n * Given a binding of block attributes, returns a higher order component that\n * overrides its `attributes` and `setAttributes` props to sync any changes needed.\n *\n * @return {WPHigherOrderComponent} Higher-order component.\n */\n\nconst BLOCK_BINDINGS_ALLOWED_BLOCKS = {\n\t'core/paragraph': [ 'content' ],\n\t'core/heading': [ 'content' ],\n\t'core/image': [ 'id', 'url', 'title', 'alt' ],\n\t'core/button': [ 'url', 'text', 'linkTarget', 'rel' ],\n};\n\nconst DEFAULT_ATTRIBUTE = '__default';\n\n/**\n * Returns the bindings with the `__default` binding for pattern overrides\n * replaced with the full-set of supported attributes. e.g.:\n *\n * bindings passed in: `{ __default: { source: 'core/pattern-overrides' } }`\n * bindings returned: `{ content: { source: 'core/pattern-overrides' } }`\n *\n * @param {string} blockName The block name (e.g. 'core/paragraph').\n * @param {Object} bindings A block's bindings from the metadata attribute.\n *\n * @return {Object} The bindings with default replaced for pattern overrides.\n */\nfunction replacePatternOverrideDefaultBindings( blockName, bindings ) {\n\t// The `__default` binding currently only works for pattern overrides.\n\tif (\n\t\tbindings?.[ DEFAULT_ATTRIBUTE ]?.source === 'core/pattern-overrides'\n\t) {\n\t\tconst supportedAttributes = BLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ];\n\t\tconst bindingsWithDefaults = {};\n\t\tfor ( const attributeName of supportedAttributes ) {\n\t\t\t// If the block has mixed binding sources, retain any non pattern override bindings.\n\t\t\tconst bindingSource = bindings[ attributeName ]\n\t\t\t\t? bindings[ attributeName ]\n\t\t\t\t: { source: 'core/pattern-overrides' };\n\t\t\tbindingsWithDefaults[ attributeName ] = bindingSource;\n\t\t}\n\n\t\treturn bindingsWithDefaults;\n\t}\n\n\treturn bindings;\n}\n\n/**\n * Based on the given block name,\n * check if it is possible to bind the block.\n *\n * @param {string} blockName - The block name.\n * @return {boolean} Whether it is possible to bind the block to sources.\n */\nexport function canBindBlock( blockName ) {\n\treturn blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS;\n}\n\n/**\n * Based on the given block name and attribute name,\n * check if it is possible to bind the block attribute.\n *\n * @param {string} blockName - The block name.\n * @param {string} attributeName - The attribute name.\n * @return {boolean} Whether it is possible to bind the block attribute.\n */\nexport function canBindAttribute( blockName, attributeName ) {\n\treturn (\n\t\tcanBindBlock( blockName ) &&\n\t\tBLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ].includes( attributeName )\n\t);\n}\n\nexport const withBlockBindingSupport = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst registry = useRegistry();\n\t\tconst sources = useSelect( ( select ) =>\n\t\t\tunlock( select( blocksStore ) ).getAllBlockBindingsSources()\n\t\t);\n\t\tconst { name, clientId, context } = props;\n\t\tconst bindings = useMemo(\n\t\t\t() =>\n\t\t\t\treplacePatternOverrideDefaultBindings(\n\t\t\t\t\tname,\n\t\t\t\t\tprops.attributes.metadata?.bindings\n\t\t\t\t),\n\t\t\t[ props.attributes.metadata?.bindings, name ]\n\t\t);\n\t\tconst boundAttributes = useSelect( () => {\n\t\t\tif ( ! bindings ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst attributes = {};\n\n\t\t\tfor ( const [ attributeName, boundAttribute ] of Object.entries(\n\t\t\t\tbindings\n\t\t\t) ) {\n\t\t\t\tconst source = sources[ boundAttribute.source ];\n\t\t\t\tif (\n\t\t\t\t\t! source?.getValue ||\n\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst args = {\n\t\t\t\t\tregistry,\n\t\t\t\t\tcontext,\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeName,\n\t\t\t\t\targs: boundAttribute.args,\n\t\t\t\t};\n\n\t\t\t\tattributes[ attributeName ] = source.getValue( args );\n\n\t\t\t\tif ( attributes[ attributeName ] === undefined ) {\n\t\t\t\t\tif ( attributeName === 'url' ) {\n\t\t\t\t\t\tattributes[ attributeName ] = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tattributes[ attributeName ] =\n\t\t\t\t\t\t\tsource.getPlaceholder?.( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn attributes;\n\t\t}, [ bindings, name, clientId, context, registry, sources ] );\n\n\t\tconst { setAttributes } = props;\n\n\t\tconst _setAttributes = useCallback(\n\t\t\t( nextAttributes ) => {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tif ( ! bindings ) {\n\t\t\t\t\t\tsetAttributes( nextAttributes );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst keptAttributes = { ...nextAttributes };\n\t\t\t\t\tconst updatesBySource = new Map();\n\n\t\t\t\t\t// Loop only over the updated attributes to avoid modifying the bound ones that haven't changed.\n\t\t\t\t\tfor ( const [ attributeName, newValue ] of Object.entries(\n\t\t\t\t\t\tkeptAttributes\n\t\t\t\t\t) ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! bindings[ attributeName ] ||\n\t\t\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst binding = bindings[ attributeName ];\n\t\t\t\t\t\tconst source = sources[ binding?.source ];\n\t\t\t\t\t\tif ( ! source?.setValue && ! source?.setValues ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tupdatesBySource.set( source, {\n\t\t\t\t\t\t\t...updatesBySource.get( source ),\n\t\t\t\t\t\t\t[ attributeName ]: newValue,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tdelete keptAttributes[ attributeName ];\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( updatesBySource.size ) {\n\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t] of updatesBySource ) {\n\t\t\t\t\t\t\tif ( source.setValues ) {\n\t\t\t\t\t\t\t\tsource.setValues( {\n\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t] of Object.entries( attributes ) ) {\n\t\t\t\t\t\t\t\t\tconst binding = bindings[ attributeName ];\n\t\t\t\t\t\t\t\t\tsource.setValue( {\n\t\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\t\targs: binding.args,\n\t\t\t\t\t\t\t\t\t\tvalue,\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}\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( Object.keys( keptAttributes ).length ) {\n\t\t\t\t\t\tsetAttributes( keptAttributes );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\t[\n\t\t\t\tregistry,\n\t\t\t\tbindings,\n\t\t\t\tname,\n\t\t\t\tclientId,\n\t\t\t\tcontext,\n\t\t\t\tsetAttributes,\n\t\t\t\tsources,\n\t\t\t]\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tattributes={ { ...props.attributes, ...boundAttributes } }\n\t\t\t\t\tsetAttributes={ _setAttributes }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n\t'withBlockBindingSupport'\n);\n\n/**\n * Filters a registered block's settings to enhance a block's `edit` component\n * to upgrade bound attributes.\n *\n * @param {WPBlockSettings} settings - Registered block settings.\n * @param {string} name - Block name.\n * @return {WPBlockSettings} Filtered block settings.\n */\nfunction shimAttributeSource( settings, name ) {\n\tif ( ! canBindBlock( name ) ) {\n\t\treturn settings;\n\t}\n\n\treturn {\n\t\t...settings,\n\t\tedit: withBlockBindingSupport( settings.edit ),\n\t};\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/custom-sources-backwards-compatibility/shim-attribute-source',\n\tshimAttributeSource\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_compose","_data","_element","_hooks","_lockUnlock","_jsxRuntime","BLOCK_BINDINGS_ALLOWED_BLOCKS","DEFAULT_ATTRIBUTE","replacePatternOverrideDefaultBindings","blockName","bindings","source","supportedAttributes","bindingsWithDefaults","attributeName","bindingSource","canBindBlock","canBindAttribute","includes","withBlockBindingSupport","exports","createHigherOrderComponent","BlockEdit","props","registry","useRegistry","sources","useSelect","select","unlock","blocksStore","getAllBlockBindingsSources","name","clientId","context","hasPatternOverridesDefaultBinding","attributes","metadata","useMemo","boundAttributes","boundAttribute","Object","entries","getValue","args","undefined","getPlaceholder","setAttributes","_setAttributes","useCallback","nextAttributes","batch","keptAttributes","updatesBySource","Map","newValue","binding","setValue","setValues","set","get","size","value","keys","length","jsx","Fragment","children","shimAttributeSource","settings","edit","addFilter"],"sources":["@wordpress/block-editor/src/hooks/use-bindings-attributes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\n/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */\n/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */\n\n/**\n * Given a binding of block attributes, returns a higher order component that\n * overrides its `attributes` and `setAttributes` props to sync any changes needed.\n *\n * @return {WPHigherOrderComponent} Higher-order component.\n */\n\nconst BLOCK_BINDINGS_ALLOWED_BLOCKS = {\n\t'core/paragraph': [ 'content' ],\n\t'core/heading': [ 'content' ],\n\t'core/image': [ 'id', 'url', 'title', 'alt' ],\n\t'core/button': [ 'url', 'text', 'linkTarget', 'rel' ],\n};\n\nconst DEFAULT_ATTRIBUTE = '__default';\n\n/**\n * Returns the bindings with the `__default` binding for pattern overrides\n * replaced with the full-set of supported attributes. e.g.:\n *\n * bindings passed in: `{ __default: { source: 'core/pattern-overrides' } }`\n * bindings returned: `{ content: { source: 'core/pattern-overrides' } }`\n *\n * @param {string} blockName The block name (e.g. 'core/paragraph').\n * @param {Object} bindings A block's bindings from the metadata attribute.\n *\n * @return {Object} The bindings with default replaced for pattern overrides.\n */\nfunction replacePatternOverrideDefaultBindings( blockName, bindings ) {\n\t// The `__default` binding currently only works for pattern overrides.\n\tif (\n\t\tbindings?.[ DEFAULT_ATTRIBUTE ]?.source === 'core/pattern-overrides'\n\t) {\n\t\tconst supportedAttributes = BLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ];\n\t\tconst bindingsWithDefaults = {};\n\t\tfor ( const attributeName of supportedAttributes ) {\n\t\t\t// If the block has mixed binding sources, retain any non pattern override bindings.\n\t\t\tconst bindingSource = bindings[ attributeName ]\n\t\t\t\t? bindings[ attributeName ]\n\t\t\t\t: { source: 'core/pattern-overrides' };\n\t\t\tbindingsWithDefaults[ attributeName ] = bindingSource;\n\t\t}\n\n\t\treturn bindingsWithDefaults;\n\t}\n\n\treturn bindings;\n}\n\n/**\n * Based on the given block name,\n * check if it is possible to bind the block.\n *\n * @param {string} blockName - The block name.\n * @return {boolean} Whether it is possible to bind the block to sources.\n */\nexport function canBindBlock( blockName ) {\n\treturn blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS;\n}\n\n/**\n * Based on the given block name and attribute name,\n * check if it is possible to bind the block attribute.\n *\n * @param {string} blockName - The block name.\n * @param {string} attributeName - The attribute name.\n * @return {boolean} Whether it is possible to bind the block attribute.\n */\nexport function canBindAttribute( blockName, attributeName ) {\n\treturn (\n\t\tcanBindBlock( blockName ) &&\n\t\tBLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ].includes( attributeName )\n\t);\n}\n\nexport const withBlockBindingSupport = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst registry = useRegistry();\n\t\tconst sources = useSelect( ( select ) =>\n\t\t\tunlock( select( blocksStore ) ).getAllBlockBindingsSources()\n\t\t);\n\t\tconst { name, clientId, context } = props;\n\t\tconst hasPatternOverridesDefaultBinding =\n\t\t\tprops.attributes.metadata?.bindings?.[ DEFAULT_ATTRIBUTE ]\n\t\t\t\t?.source === 'core/pattern-overrides';\n\t\tconst bindings = useMemo(\n\t\t\t() =>\n\t\t\t\treplacePatternOverrideDefaultBindings(\n\t\t\t\t\tname,\n\t\t\t\t\tprops.attributes.metadata?.bindings\n\t\t\t\t),\n\t\t\t[ props.attributes.metadata?.bindings, name ]\n\t\t);\n\t\tconst boundAttributes = useSelect( () => {\n\t\t\tif ( ! bindings ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst attributes = {};\n\n\t\t\tfor ( const [ attributeName, boundAttribute ] of Object.entries(\n\t\t\t\tbindings\n\t\t\t) ) {\n\t\t\t\tconst source = sources[ boundAttribute.source ];\n\t\t\t\tif (\n\t\t\t\t\t! source?.getValue ||\n\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst args = {\n\t\t\t\t\tregistry,\n\t\t\t\t\tcontext,\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeName,\n\t\t\t\t\targs: boundAttribute.args,\n\t\t\t\t};\n\n\t\t\t\tattributes[ attributeName ] = source.getValue( args );\n\n\t\t\t\tif ( attributes[ attributeName ] === undefined ) {\n\t\t\t\t\tif ( attributeName === 'url' ) {\n\t\t\t\t\t\tattributes[ attributeName ] = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tattributes[ attributeName ] =\n\t\t\t\t\t\t\tsource.getPlaceholder?.( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn attributes;\n\t\t}, [ bindings, name, clientId, context, registry, sources ] );\n\n\t\tconst { setAttributes } = props;\n\n\t\tconst _setAttributes = useCallback(\n\t\t\t( nextAttributes ) => {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tif ( ! bindings ) {\n\t\t\t\t\t\tsetAttributes( nextAttributes );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst keptAttributes = { ...nextAttributes };\n\t\t\t\t\tconst updatesBySource = new Map();\n\n\t\t\t\t\t// Loop only over the updated attributes to avoid modifying the bound ones that haven't changed.\n\t\t\t\t\tfor ( const [ attributeName, newValue ] of Object.entries(\n\t\t\t\t\t\tkeptAttributes\n\t\t\t\t\t) ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! bindings[ attributeName ] ||\n\t\t\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst binding = bindings[ attributeName ];\n\t\t\t\t\t\tconst source = sources[ binding?.source ];\n\t\t\t\t\t\tif ( ! source?.setValue && ! source?.setValues ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tupdatesBySource.set( source, {\n\t\t\t\t\t\t\t...updatesBySource.get( source ),\n\t\t\t\t\t\t\t[ attributeName ]: newValue,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tdelete keptAttributes[ attributeName ];\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( updatesBySource.size ) {\n\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t] of updatesBySource ) {\n\t\t\t\t\t\t\tif ( source.setValues ) {\n\t\t\t\t\t\t\t\tsource.setValues( {\n\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t] of Object.entries( attributes ) ) {\n\t\t\t\t\t\t\t\t\tconst binding = bindings[ attributeName ];\n\t\t\t\t\t\t\t\t\tsource.setValue( {\n\t\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\t\targs: binding.args,\n\t\t\t\t\t\t\t\t\t\tvalue,\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}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only apply normal attribute updates to blocks\n\t\t\t\t\t// that have partial bindings. Currently this is\n\t\t\t\t\t// only skipped for pattern overrides sources.\n\t\t\t\t\tif (\n\t\t\t\t\t\t! hasPatternOverridesDefaultBinding &&\n\t\t\t\t\t\tObject.keys( keptAttributes ).length\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetAttributes( keptAttributes );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\t[\n\t\t\t\tregistry,\n\t\t\t\tbindings,\n\t\t\t\tname,\n\t\t\t\tclientId,\n\t\t\t\tcontext,\n\t\t\t\tsetAttributes,\n\t\t\t\tsources,\n\t\t\t\thasPatternOverridesDefaultBinding,\n\t\t\t]\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tattributes={ { ...props.attributes, ...boundAttributes } }\n\t\t\t\t\tsetAttributes={ _setAttributes }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n\t'withBlockBindingSupport'\n);\n\n/**\n * Filters a registered block's settings to enhance a block's `edit` component\n * to upgrade bound attributes.\n *\n * @param {WPBlockSettings} settings - Registered block settings.\n * @param {string} name - Block name.\n * @return {WPBlockSettings} Filtered block settings.\n */\nfunction shimAttributeSource( settings, name ) {\n\tif ( ! canBindBlock( name ) ) {\n\t\treturn settings;\n\t}\n\n\treturn {\n\t\t...settings,\n\t\tedit: withBlockBindingSupport( settings.edit ),\n\t};\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/custom-sources-backwards-compatibility/shim-attribute-source',\n\tshimAttributeSource\n);\n"],"mappings":"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","ignoreList":[]}
@@ -36,6 +36,7 @@ var _blockPopover = require("./components/block-popover");
36
36
  var _library = require("./components/inserter/library");
37
37
  var _publishDateTimePicker = require("./components/publish-date-time-picker");
38
38
  var _useSpacingSizes = _interopRequireDefault(require("./components/spacing-sizes-control/hooks/use-spacing-sizes"));
39
+ var _useBlockDisplayTitle = _interopRequireDefault(require("./components/block-title/use-block-display-title"));
39
40
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
40
41
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
41
42
  /**
@@ -83,6 +84,7 @@ const privateApis = exports.privateApis = {};
83
84
  reusableBlocksSelectKey: _privateKeys.reusableBlocksSelectKey,
84
85
  PrivateBlockPopover: _blockPopover.PrivateBlockPopover,
85
86
  PrivatePublishDateTimePicker: _publishDateTimePicker.PrivatePublishDateTimePicker,
86
- useSpacingSizes: _useSpacingSizes.default
87
+ useSpacingSizes: _useSpacingSizes.default,
88
+ useBlockDisplayTitle: _useBlockDisplayTitle.default
87
89
  });
88
90
  //# sourceMappingURL=private-apis.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["globalStyles","_interopRequireWildcard","require","_provider","_lockUnlock","_getRichTextValues","_resizableBoxPopover","_interopRequireDefault","_inserter","_quickInserter","_searchItems","_listView","_blockInfoSlotFill","_useHasBlockToolbar","_utils","_blockQuickNavigation","_layout","_blockRemovalWarningModal","_hooks","_dimensionsTool","_resolutionTool","_textAlignmentControl","_reusableBlockRenameHint","_formatEdit","_blockCanvas","_utils2","_useFlashEditableBlocks","_privateKeys","_utils3","_richText","_blockPopover","_library","_publishDateTimePicker","_useSpacingSizes","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","privateApis","exports","lock","ExperimentalBlockCanvas","ExperimentalBlockEditorProvider","getDuotoneFilter","getRichTextValues","PrivateInserter","PrivateQuickInserter","extractWords","getNormalizedSearchTerms","normalizeString","PrivateListView","ResizableBoxPopover","BlockInfo","useHasBlockToolbar","cleanEmptyObject","useStyleOverride","BlockQuickNavigation","LayoutStyle","BlockRemovalWarningModal","useLayoutClasses","useLayoutStyles","DimensionsTool","ResolutionTool","TextAlignmentControl","ReusableBlocksRenameHint","useReusableBlocksRenameHint","usesContextKey","useFlashEditableBlocks","globalStylesDataKey","selectBlockPatternsKey","requiresWrapperOnCopy","PrivateRichText","PrivateInserterLibrary","reusableBlocksSelectKey","PrivateBlockPopover","PrivatePublishDateTimePicker","useSpacingSizes"],"sources":["@wordpress/block-editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { getRichTextValues } from './components/rich-text/get-rich-text-values';\nimport ResizableBoxPopover from './components/resizable-box-popover';\nimport { ComposedPrivateInserter as PrivateInserter } from './components/inserter';\nimport { default as PrivateQuickInserter } from './components/inserter/quick-inserter';\nimport {\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n} from './components/inserter/search-items';\nimport { PrivateListView } from './components/list-view';\nimport BlockInfo from './components/block-info-slot-fill';\nimport { useHasBlockToolbar } from './components/block-toolbar/use-has-block-toolbar';\nimport { cleanEmptyObject, useStyleOverride } from './hooks/utils';\nimport BlockQuickNavigation from './components/block-quick-navigation';\nimport { LayoutStyle } from './components/block-list/layout';\nimport { BlockRemovalWarningModal } from './components/block-removal-warning-modal';\nimport { useLayoutClasses, useLayoutStyles } from './hooks';\nimport DimensionsTool from './components/dimensions-tool';\nimport ResolutionTool from './components/resolution-tool';\nimport TextAlignmentControl from './components/text-alignment-control';\nimport {\n\tdefault as ReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n} from './components/inserter/reusable-block-rename-hint';\nimport { usesContextKey } from './components/rich-text/format-edit';\nimport { ExperimentalBlockCanvas } from './components/block-canvas';\nimport { getDuotoneFilter } from './components/duotone/utils';\nimport { useFlashEditableBlocks } from './components/use-flash-editable-blocks';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tglobalStylesDataKey,\n} from './store/private-keys';\nimport { requiresWrapperOnCopy } from './components/writing-flow/utils';\nimport { PrivateRichText } from './components/rich-text/';\nimport { PrivateBlockPopover } from './components/block-popover';\nimport { PrivateInserterLibrary } from './components/inserter/library';\nimport { PrivatePublishDateTimePicker } from './components/publish-date-time-picker';\nimport useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockCanvas,\n\tExperimentalBlockEditorProvider,\n\tgetDuotoneFilter,\n\tgetRichTextValues,\n\tPrivateInserter,\n\tPrivateQuickInserter,\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n\tPrivateListView,\n\tResizableBoxPopover,\n\tBlockInfo,\n\tuseHasBlockToolbar,\n\tcleanEmptyObject,\n\tuseStyleOverride,\n\tBlockQuickNavigation,\n\tLayoutStyle,\n\tBlockRemovalWarningModal,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tDimensionsTool,\n\tResolutionTool,\n\tTextAlignmentControl,\n\tReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n\tusesContextKey,\n\tuseFlashEditableBlocks,\n\tglobalStylesDataKey,\n\tselectBlockPatternsKey,\n\trequiresWrapperOnCopy,\n\tPrivateRichText,\n\tPrivateInserterLibrary,\n\treusableBlocksSelectKey,\n\tPrivateBlockPopover,\n\tPrivatePublishDateTimePicker,\n\tuseSpacingSizes,\n} );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["globalStyles","_interopRequireWildcard","require","_provider","_lockUnlock","_getRichTextValues","_resizableBoxPopover","_interopRequireDefault","_inserter","_quickInserter","_searchItems","_listView","_blockInfoSlotFill","_useHasBlockToolbar","_utils","_blockQuickNavigation","_layout","_blockRemovalWarningModal","_hooks","_dimensionsTool","_resolutionTool","_textAlignmentControl","_reusableBlockRenameHint","_formatEdit","_blockCanvas","_utils2","_useFlashEditableBlocks","_privateKeys","_utils3","_richText","_blockPopover","_library","_publishDateTimePicker","_useSpacingSizes","_useBlockDisplayTitle","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","privateApis","exports","lock","ExperimentalBlockCanvas","ExperimentalBlockEditorProvider","getDuotoneFilter","getRichTextValues","PrivateInserter","PrivateQuickInserter","extractWords","getNormalizedSearchTerms","normalizeString","PrivateListView","ResizableBoxPopover","BlockInfo","useHasBlockToolbar","cleanEmptyObject","useStyleOverride","BlockQuickNavigation","LayoutStyle","BlockRemovalWarningModal","useLayoutClasses","useLayoutStyles","DimensionsTool","ResolutionTool","TextAlignmentControl","ReusableBlocksRenameHint","useReusableBlocksRenameHint","usesContextKey","useFlashEditableBlocks","globalStylesDataKey","selectBlockPatternsKey","requiresWrapperOnCopy","PrivateRichText","PrivateInserterLibrary","reusableBlocksSelectKey","PrivateBlockPopover","PrivatePublishDateTimePicker","useSpacingSizes","useBlockDisplayTitle"],"sources":["@wordpress/block-editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { getRichTextValues } from './components/rich-text/get-rich-text-values';\nimport ResizableBoxPopover from './components/resizable-box-popover';\nimport { ComposedPrivateInserter as PrivateInserter } from './components/inserter';\nimport { default as PrivateQuickInserter } from './components/inserter/quick-inserter';\nimport {\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n} from './components/inserter/search-items';\nimport { PrivateListView } from './components/list-view';\nimport BlockInfo from './components/block-info-slot-fill';\nimport { useHasBlockToolbar } from './components/block-toolbar/use-has-block-toolbar';\nimport { cleanEmptyObject, useStyleOverride } from './hooks/utils';\nimport BlockQuickNavigation from './components/block-quick-navigation';\nimport { LayoutStyle } from './components/block-list/layout';\nimport { BlockRemovalWarningModal } from './components/block-removal-warning-modal';\nimport { useLayoutClasses, useLayoutStyles } from './hooks';\nimport DimensionsTool from './components/dimensions-tool';\nimport ResolutionTool from './components/resolution-tool';\nimport TextAlignmentControl from './components/text-alignment-control';\nimport {\n\tdefault as ReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n} from './components/inserter/reusable-block-rename-hint';\nimport { usesContextKey } from './components/rich-text/format-edit';\nimport { ExperimentalBlockCanvas } from './components/block-canvas';\nimport { getDuotoneFilter } from './components/duotone/utils';\nimport { useFlashEditableBlocks } from './components/use-flash-editable-blocks';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tglobalStylesDataKey,\n} from './store/private-keys';\nimport { requiresWrapperOnCopy } from './components/writing-flow/utils';\nimport { PrivateRichText } from './components/rich-text/';\nimport { PrivateBlockPopover } from './components/block-popover';\nimport { PrivateInserterLibrary } from './components/inserter/library';\nimport { PrivatePublishDateTimePicker } from './components/publish-date-time-picker';\nimport useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';\nimport useBlockDisplayTitle from './components/block-title/use-block-display-title';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockCanvas,\n\tExperimentalBlockEditorProvider,\n\tgetDuotoneFilter,\n\tgetRichTextValues,\n\tPrivateInserter,\n\tPrivateQuickInserter,\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n\tPrivateListView,\n\tResizableBoxPopover,\n\tBlockInfo,\n\tuseHasBlockToolbar,\n\tcleanEmptyObject,\n\tuseStyleOverride,\n\tBlockQuickNavigation,\n\tLayoutStyle,\n\tBlockRemovalWarningModal,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tDimensionsTool,\n\tResolutionTool,\n\tTextAlignmentControl,\n\tReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n\tusesContextKey,\n\tuseFlashEditableBlocks,\n\tglobalStylesDataKey,\n\tselectBlockPatternsKey,\n\trequiresWrapperOnCopy,\n\tPrivateRichText,\n\tPrivateInserterLibrary,\n\treusableBlocksSelectKey,\n\tPrivateBlockPopover,\n\tPrivatePublishDateTimePicker,\n\tuseSpacingSizes,\n\tuseBlockDisplayTitle,\n} );\n"],"mappings":"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","ignoreList":[]}
@@ -434,7 +434,7 @@ const createOnMove = type => (clientIds, rootClientId) => ({
434
434
  dispatch
435
435
  }) => {
436
436
  // If one of the blocks is locked or the parent is locked, we cannot move any block.
437
- const canMoveBlocks = select.canMoveBlocks(clientIds, rootClientId);
437
+ const canMoveBlocks = select.canMoveBlocks(clientIds);
438
438
  if (!canMoveBlocks) {
439
439
  return;
440
440
  }
@@ -459,7 +459,7 @@ const moveBlocksToPosition = (clientIds, fromRootClientId = '', toRootClientId =
459
459
  select,
460
460
  dispatch
461
461
  }) => {
462
- const canMoveBlocks = select.canMoveBlocks(clientIds, fromRootClientId);
462
+ const canMoveBlocks = select.canMoveBlocks(clientIds);
463
463
 
464
464
  // If one of the blocks is locked or the parent is locked, we cannot move any block.
465
465
  if (!canMoveBlocks) {
@@ -468,7 +468,7 @@ const moveBlocksToPosition = (clientIds, fromRootClientId = '', toRootClientId =
468
468
 
469
469
  // If moving inside the same root block the move is always possible.
470
470
  if (fromRootClientId !== toRootClientId) {
471
- const canRemoveBlocks = select.canRemoveBlocks(clientIds, fromRootClientId);
471
+ const canRemoveBlocks = select.canRemoveBlocks(clientIds);
472
472
 
473
473
  // If we're moving to another block, it means we're deleting blocks from
474
474
  // the original block, so we need to check if removing is possible.
@@ -1769,7 +1769,7 @@ function __unstableSetTemporarilyEditingAsBlocks(temporarilyEditingAsBlocks, foc
1769
1769
  * per_page: 'page_size',
1770
1770
  * search: 'q',
1771
1771
  * };
1772
- * const url = new URL( 'https://api.openverse.engineering/v1/images/' );
1772
+ * const url = new URL( 'https://api.openverse.org/v1/images/' );
1773
1773
  * Object.entries( finalQuery ).forEach( ( [ key, value ] ) => {
1774
1774
  * const queryKey = mapFromInserterMediaRequest[ key ] || key;
1775
1775
  * url.searchParams.set( queryKey, value );