@wordpress/block-editor 13.0.1 → 13.0.3

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 (168) hide show
  1. package/build/components/block-actions/index.js +4 -6
  2. package/build/components/block-actions/index.js.map +1 -1
  3. package/build/components/block-draggable/index.js +1 -1
  4. package/build/components/block-draggable/index.js.map +1 -1
  5. package/build/components/block-list/block.js +2 -2
  6. package/build/components/block-list/block.js.map +1 -1
  7. package/build/components/block-list/block.native.js +2 -2
  8. package/build/components/block-list/block.native.js.map +1 -1
  9. package/build/components/block-list/use-in-between-inserter.js +3 -1
  10. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  11. package/build/components/block-lock/use-block-lock.js +2 -4
  12. package/build/components/block-lock/use-block-lock.js.map +1 -1
  13. package/build/components/block-mover/index.js +1 -1
  14. package/build/components/block-mover/index.js.map +1 -1
  15. package/build/components/block-mover/index.native.js +1 -1
  16. package/build/components/block-mover/index.native.js.map +1 -1
  17. package/build/components/block-settings-menu/block-settings-dropdown.js +1 -1
  18. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  19. package/build/components/block-switcher/block-variation-transformations.js +1 -3
  20. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  21. package/build/components/block-switcher/index.js +13 -6
  22. package/build/components/block-switcher/index.js.map +1 -1
  23. package/build/components/block-toolbar/index.js +6 -10
  24. package/build/components/block-toolbar/index.js.map +1 -1
  25. package/build/components/block-toolbar/shuffle.js +3 -1
  26. package/build/components/block-toolbar/shuffle.js.map +1 -1
  27. package/build/components/block-tools/block-selection-button.js +2 -2
  28. package/build/components/block-tools/block-selection-button.js.map +1 -1
  29. package/build/components/global-styles/hooks.js +1 -1
  30. package/build/components/global-styles/hooks.js.map +1 -1
  31. package/build/components/global-styles/use-global-styles-output.js +18 -4
  32. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  33. package/build/components/image-editor/aspect-ratio-dropdown.js +0 -1
  34. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  35. package/build/components/list-view/block.js +7 -6
  36. package/build/components/list-view/block.js.map +1 -1
  37. package/build/components/list-view/branch.js +3 -1
  38. package/build/components/list-view/branch.js.map +1 -1
  39. package/build/components/list-view/use-clipboard-handler.js +1 -1
  40. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  41. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +4 -4
  42. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  43. package/build/components/use-block-commands/index.js +3 -3
  44. package/build/components/use-block-commands/index.js.map +1 -1
  45. package/build/hooks/block-bindings.js +19 -16
  46. package/build/hooks/block-bindings.js.map +1 -1
  47. package/build/hooks/block-style-variation.js +26 -7
  48. package/build/hooks/block-style-variation.js.map +1 -1
  49. package/build/hooks/use-bindings-attributes.js +7 -2
  50. package/build/hooks/use-bindings-attributes.js.map +1 -1
  51. package/build/hooks/utils.js +3 -2
  52. package/build/hooks/utils.js.map +1 -1
  53. package/build/lock-unlock.js +1 -1
  54. package/build/lock-unlock.js.map +1 -1
  55. package/build/private-apis.js +3 -1
  56. package/build/private-apis.js.map +1 -1
  57. package/build/store/actions.js +20 -4
  58. package/build/store/actions.js.map +1 -1
  59. package/build/store/private-actions.js +1 -2
  60. package/build/store/private-actions.js.map +1 -1
  61. package/build/store/selectors.js +17 -19
  62. package/build/store/selectors.js.map +1 -1
  63. package/build-module/components/block-actions/index.js +4 -6
  64. package/build-module/components/block-actions/index.js.map +1 -1
  65. package/build-module/components/block-draggable/index.js +1 -1
  66. package/build-module/components/block-draggable/index.js.map +1 -1
  67. package/build-module/components/block-list/block.js +2 -2
  68. package/build-module/components/block-list/block.js.map +1 -1
  69. package/build-module/components/block-list/block.native.js +2 -2
  70. package/build-module/components/block-list/block.native.js.map +1 -1
  71. package/build-module/components/block-list/use-in-between-inserter.js +3 -1
  72. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  73. package/build-module/components/block-lock/use-block-lock.js +2 -4
  74. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  75. package/build-module/components/block-mover/index.js +1 -1
  76. package/build-module/components/block-mover/index.js.map +1 -1
  77. package/build-module/components/block-mover/index.native.js +1 -1
  78. package/build-module/components/block-mover/index.native.js.map +1 -1
  79. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -1
  80. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  81. package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
  82. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  83. package/build-module/components/block-switcher/index.js +15 -8
  84. package/build-module/components/block-switcher/index.js.map +1 -1
  85. package/build-module/components/block-toolbar/index.js +7 -10
  86. package/build-module/components/block-toolbar/index.js.map +1 -1
  87. package/build-module/components/block-toolbar/shuffle.js +3 -1
  88. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  89. package/build-module/components/block-tools/block-selection-button.js +2 -2
  90. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  91. package/build-module/components/global-styles/hooks.js +1 -1
  92. package/build-module/components/global-styles/hooks.js.map +1 -1
  93. package/build-module/components/global-styles/use-global-styles-output.js +18 -4
  94. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build-module/components/image-editor/aspect-ratio-dropdown.js +0 -1
  96. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  97. package/build-module/components/list-view/block.js +7 -6
  98. package/build-module/components/list-view/block.js.map +1 -1
  99. package/build-module/components/list-view/branch.js +3 -1
  100. package/build-module/components/list-view/branch.js.map +1 -1
  101. package/build-module/components/list-view/use-clipboard-handler.js +1 -1
  102. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  103. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +4 -4
  104. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  105. package/build-module/components/use-block-commands/index.js +3 -3
  106. package/build-module/components/use-block-commands/index.js.map +1 -1
  107. package/build-module/hooks/block-bindings.js +20 -17
  108. package/build-module/hooks/block-bindings.js.map +1 -1
  109. package/build-module/hooks/block-style-variation.js +25 -7
  110. package/build-module/hooks/block-style-variation.js.map +1 -1
  111. package/build-module/hooks/use-bindings-attributes.js +7 -2
  112. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  113. package/build-module/hooks/utils.js +3 -2
  114. package/build-module/hooks/utils.js.map +1 -1
  115. package/build-module/lock-unlock.js +1 -1
  116. package/build-module/lock-unlock.js.map +1 -1
  117. package/build-module/private-apis.js +3 -1
  118. package/build-module/private-apis.js.map +1 -1
  119. package/build-module/store/actions.js +20 -4
  120. package/build-module/store/actions.js.map +1 -1
  121. package/build-module/store/private-actions.js +1 -2
  122. package/build-module/store/private-actions.js.map +1 -1
  123. package/build-module/store/selectors.js +17 -19
  124. package/build-module/store/selectors.js.map +1 -1
  125. package/build-style/style-rtl.css +8 -17
  126. package/build-style/style.css +8 -17
  127. package/package.json +13 -13
  128. package/src/components/block-actions/index.js +3 -7
  129. package/src/components/block-draggable/index.js +1 -1
  130. package/src/components/block-list/block.js +2 -2
  131. package/src/components/block-list/block.native.js +2 -2
  132. package/src/components/block-list/use-in-between-inserter.js +3 -1
  133. package/src/components/block-lock/use-block-lock.js +2 -4
  134. package/src/components/block-mover/index.js +1 -1
  135. package/src/components/block-mover/index.native.js +1 -1
  136. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -1
  137. package/src/components/block-switcher/block-variation-transformations.js +4 -9
  138. package/src/components/block-switcher/index.js +27 -12
  139. package/src/components/block-switcher/style.scss +5 -0
  140. package/src/components/block-toolbar/index.js +7 -9
  141. package/src/components/block-toolbar/shuffle.js +3 -1
  142. package/src/components/block-toolbar/style.scss +9 -6
  143. package/src/components/block-tools/block-selection-button.js +2 -2
  144. package/src/components/global-styles/hooks.js +1 -4
  145. package/src/components/global-styles/test/use-global-styles-output.js +38 -3
  146. package/src/components/global-styles/use-global-styles-output.js +28 -7
  147. package/src/components/image-editor/aspect-ratio-dropdown.js +0 -1
  148. package/src/components/list-view/block.js +7 -7
  149. package/src/components/list-view/branch.js +5 -1
  150. package/src/components/list-view/use-clipboard-handler.js +1 -6
  151. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +2 -9
  152. package/src/components/use-block-commands/index.js +3 -4
  153. package/src/hooks/block-bindings.js +28 -22
  154. package/src/hooks/block-style-variation.js +24 -6
  155. package/src/hooks/use-bindings-attributes.js +11 -1
  156. package/src/hooks/utils.js +3 -1
  157. package/src/lock-unlock.js +1 -1
  158. package/src/private-apis.js +2 -0
  159. package/src/store/actions.js +24 -10
  160. package/src/store/private-actions.js +1 -5
  161. package/src/store/selectors.js +19 -26
  162. package/src/style.scss +0 -1
  163. package/build/components/block-bindings-toolbar-indicator/index.js +0 -106
  164. package/build/components/block-bindings-toolbar-indicator/index.js.map +0 -1
  165. package/build-module/components/block-bindings-toolbar-indicator/index.js +0 -99
  166. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +0 -1
  167. package/src/components/block-bindings-toolbar-indicator/index.js +0 -137
  168. package/src/components/block-bindings-toolbar-indicator/style.scss +0 -12
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_blocks","_data","_element","_store","_blockIcon","_interopRequireDefault","_previewBlockPopover","_jsxRuntime","EMPTY_OBJECT","useBlockVariationTransforms","clientIds","blocks","activeBlockVariation","blockVariationTransformations","useSelect","select","getBlockRootClientId","getBlockAttributes","canRemoveBlocks","blockEditorStore","getActiveBlockVariation","getBlockVariations","blocksStore","rootClientId","Array","isArray","canRemove","length","firstBlock","name","clientId","transformations","useMemo","filter","BlockVariationTransformations","onSelect","hoveredTransformItemName","setHoveredTransformItemName","useState","jsxs","Fragment","children","jsx","default","cloneBlock","find","attributes","map","item","BlockVariationTranformationItem","icon","title","MenuItem","className","getBlockMenuDefaultClassName","onClick","event","preventDefault","onMouseLeave","onMouseEnter","showColors","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-variation-transformations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tcloneBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst EMPTY_OBJECT = {};\n\nexport function useBlockVariationTransforms( { clientIds, blocks } ) {\n\tconst { activeBlockVariation, blockVariationTransformations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\t\t\t// Only handle single selected blocks for now.\n\t\t\tif ( blocks.length !== 1 || ! canRemove ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst [ firstBlock ] = blocks;\n\t\t\treturn {\n\t\t\t\tblockVariationTransformations: getBlockVariations(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t'transform'\n\t\t\t\t),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\tgetBlockAttributes( firstBlock.clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\tconst transformations = useMemo( () => {\n\t\treturn blockVariationTransformations?.filter(\n\t\t\t( { name } ) => name !== activeBlockVariation?.name\n\t\t);\n\t}, [ blockVariationTransformations, activeBlockVariation ] );\n\treturn transformations;\n}\n\nconst BlockVariationTransformations = ( {\n\ttransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ cloneBlock(\n\t\t\t\t\t\tblocks[ 0 ],\n\t\t\t\t\t\ttransformations.find(\n\t\t\t\t\t\t\t( { name } ) => name === hoveredTransformItemName\n\t\t\t\t\t\t).attributes\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ transformations?.map( ( item ) => (\n\t\t\t\t<BlockVariationTranformationItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n};\n\nfunction BlockVariationTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockVariationTransformations;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_blocks","_data","_element","_store","_blockIcon","_interopRequireDefault","_previewBlockPopover","_jsxRuntime","EMPTY_OBJECT","useBlockVariationTransforms","clientIds","blocks","activeBlockVariation","blockVariationTransformations","useSelect","select","getBlockAttributes","canRemoveBlocks","blockEditorStore","getActiveBlockVariation","getBlockVariations","blocksStore","canRemove","length","firstBlock","name","clientId","transformations","useMemo","filter","BlockVariationTransformations","onSelect","hoveredTransformItemName","setHoveredTransformItemName","useState","jsxs","Fragment","children","jsx","default","cloneBlock","find","attributes","map","item","BlockVariationTranformationItem","icon","title","MenuItem","className","getBlockMenuDefaultClassName","onClick","event","preventDefault","onMouseLeave","onMouseEnter","showColors","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-variation-transformations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tcloneBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst EMPTY_OBJECT = {};\n\nexport function useBlockVariationTransforms( { clientIds, blocks } ) {\n\tconst { activeBlockVariation, blockVariationTransformations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst canRemove = canRemoveBlocks( clientIds );\n\t\t\t// Only handle single selected blocks for now.\n\t\t\tif ( blocks.length !== 1 || ! canRemove ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst [ firstBlock ] = blocks;\n\t\t\treturn {\n\t\t\t\tblockVariationTransformations: getBlockVariations(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t'transform'\n\t\t\t\t),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\tgetBlockAttributes( firstBlock.clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\tconst transformations = useMemo( () => {\n\t\treturn blockVariationTransformations?.filter(\n\t\t\t( { name } ) => name !== activeBlockVariation?.name\n\t\t);\n\t}, [ blockVariationTransformations, activeBlockVariation ] );\n\treturn transformations;\n}\n\nconst BlockVariationTransformations = ( {\n\ttransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ cloneBlock(\n\t\t\t\t\t\tblocks[ 0 ],\n\t\t\t\t\t\ttransformations.find(\n\t\t\t\t\t\t\t( { name } ) => name === hoveredTransformItemName\n\t\t\t\t\t\t).attributes\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ transformations?.map( ( item ) => (\n\t\t\t\t<BlockVariationTranformationItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n};\n\nfunction BlockVariationTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockVariationTransformations;\n"],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,8 @@ function BlockSwitcherDropdownMenuContents({
30
30
  onClose,
31
31
  clientIds,
32
32
  hasBlockStyles,
33
- canRemove
33
+ canRemove,
34
+ isUsingBindings
34
35
  }) {
35
36
  const {
36
37
  replaceBlocks,
@@ -101,6 +102,7 @@ function BlockSwitcherDropdownMenuContents({
101
102
  children: (0, _i18n.__)('No transforms.')
102
103
  });
103
104
  }
105
+ const connectedBlockDescription = isSingleBlock ? (0, _i18n._x)('This block is connected.', 'block toolbar button label and description') : (0, _i18n._x)('These blocks are connected.', 'block toolbar button label and description');
104
106
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
105
107
  className: "block-editor-block-switcher__container",
106
108
  children: [hasPatternTransformation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_patternTransformationsMenu.default, {
@@ -126,12 +128,18 @@ function BlockSwitcherDropdownMenuContents({
126
128
  }), hasBlockStyles && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockStylesMenu.default, {
127
129
  hoveredBlock: blocks[0],
128
130
  onSwitch: onClose
131
+ }), isUsingBindings && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
132
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
133
+ className: "block-editor-block-switcher__binding-indicator",
134
+ children: connectedBlockDescription
135
+ })
129
136
  })]
130
137
  });
131
138
  }
132
139
  const BlockSwitcher = ({
133
140
  clientIds,
134
- disabled
141
+ disabled,
142
+ isUsingBindings
135
143
  }) => {
136
144
  const {
137
145
  canRemove,
@@ -142,7 +150,6 @@ const BlockSwitcher = ({
142
150
  isTemplate
143
151
  } = (0, _data.useSelect)(select => {
144
152
  const {
145
- getBlockRootClientId,
146
153
  getBlocksByClientId,
147
154
  getBlockAttributes,
148
155
  canRemoveBlocks
@@ -158,7 +165,6 @@ const BlockSwitcher = ({
158
165
  invalidBlocks: true
159
166
  };
160
167
  }
161
- const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds);
162
168
  const [{
163
169
  name: firstBlockName
164
170
  }] = _blocks;
@@ -178,7 +184,7 @@ const BlockSwitcher = ({
178
184
  _icon = isSelectionOfSameType ? blockType.icon : _icons.copy;
179
185
  }
180
186
  return {
181
- canRemove: canRemoveBlocks(clientIds, rootClientId),
187
+ canRemove: canRemoveBlocks(clientIds),
182
188
  hasBlockStyles: _isSingleBlockSelected && !!getBlockStyles(firstBlockName)?.length,
183
189
  icon: _icon,
184
190
  isReusable: _isSingleBlockSelected && (0, _blocks2.isReusableBlock)(_blocks[0]),
@@ -247,7 +253,8 @@ const BlockSwitcher = ({
247
253
  onClose: onClose,
248
254
  clientIds: clientIds,
249
255
  hasBlockStyles: hasBlockStyles,
250
- canRemove: canRemove
256
+ canRemove: canRemove,
257
+ isUsingBindings: isUsingBindings
251
258
  })
252
259
  })
253
260
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","useSelect","select","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","Array","isArray","_blocks","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","clientId","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","BlockSwitcher","disabled","icon","invalidBlocks","isReusable","getBlockAttributes","canRemoveBlocks","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","_icon","match","isSelectionOfSameType","Set","map","size","copy","isReusableBlock","blockTitle","useBlockDisplayTitle","maximumLength","blockSwitcherLabel","hideDropdown","ToolbarGroup","ToolbarButton","title","Fragment","showColors","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","describedBy","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\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\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\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\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 isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds, disabled } ) => {\n\tconst {\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\n\t\t\tlet _icon;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown = disabled || ( ! hasBlockStyles && ! canRemove );\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t</span>\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\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t\t</span>\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\ttoggleProps={ {\n\t\t\t\t\t\t\tdescribedBy: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","isUsingBindings","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","useSelect","select","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","Array","isArray","_blocks","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","clientId","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockSwitcher","disabled","icon","invalidBlocks","isReusable","getBlockAttributes","canRemoveBlocks","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","_icon","match","isSelectionOfSameType","Set","map","size","copy","isReusableBlock","blockTitle","useBlockDisplayTitle","maximumLength","blockSwitcherLabel","hideDropdown","ToolbarGroup","ToolbarButton","title","Fragment","showColors","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","describedBy","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n\tisUsingBindings,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\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\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\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\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 isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {\n\tconst {\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocksByClientId, getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\n\t\t\tlet _icon;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown = disabled || ( ! hasBlockStyles && ! canRemove );\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t</span>\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\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t\t</span>\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\ttoggleProps={ {\n\t\t\t\t\t\t\tdescribedBy: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
@@ -27,9 +27,7 @@ var _store = require("../../store");
27
27
  var _blockNameContext = _interopRequireDefault(require("./block-name-context"));
28
28
  var _navigableToolbar = _interopRequireDefault(require("../navigable-toolbar"));
29
29
  var _shuffle = _interopRequireDefault(require("./shuffle"));
30
- var _blockBindingsToolbarIndicator = _interopRequireDefault(require("../block-bindings-toolbar-indicator"));
31
30
  var _useHasBlockToolbar = require("./use-has-block-toolbar");
32
- var _useBindingsAttributes = require("../../hooks/use-bindings-attributes");
33
31
  var _jsxRuntime = require("react/jsx-runtime");
34
32
  /**
35
33
  * External dependencies
@@ -67,7 +65,6 @@ function PrivateBlockToolbar({
67
65
  blockClientIds,
68
66
  isDefaultEditingMode,
69
67
  blockType,
70
- blockName,
71
68
  toolbarKey,
72
69
  shouldShowVisualToolbar,
73
70
  showParentSelector,
@@ -94,12 +91,11 @@ function PrivateBlockToolbar({
94
91
  const _blockName = getBlockName(selectedBlockClientId);
95
92
  const isValid = selectedBlockClientIds.every(id => isBlockValid(id));
96
93
  const isVisual = selectedBlockClientIds.every(id => getBlockMode(id) === 'visual');
97
- const _isUsingBindings = !!getBlockAttributes(selectedBlockClientId)?.metadata?.bindings;
94
+ const _isUsingBindings = selectedBlockClientIds.every(clientId => !!getBlockAttributes(clientId)?.metadata?.bindings);
98
95
  return {
99
96
  blockClientId: selectedBlockClientId,
100
97
  blockClientIds: selectedBlockClientIds,
101
98
  isDefaultEditingMode: _isDefaultEditingMode,
102
- blockName: _blockName,
103
99
  blockType: selectedBlockClientId && (0, _blocks.getBlockType)(_blockName),
104
100
  shouldShowVisualToolbar: isValid && isVisual,
105
101
  rootClientId: blockRootClientId,
@@ -129,7 +125,8 @@ function PrivateBlockToolbar({
129
125
  'has-parent': showParentSelector
130
126
  });
131
127
  const innerClasses = (0, _clsx.default)('block-editor-block-toolbar', {
132
- 'is-synced': isSynced
128
+ 'is-synced': isSynced,
129
+ 'is-connected': isUsingBindings
133
130
  });
134
131
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_navigableToolbar.default, {
135
132
  focusEditorOnEscape: true,
@@ -148,16 +145,15 @@ function PrivateBlockToolbar({
148
145
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
149
146
  ref: toolbarWrapperRef,
150
147
  className: innerClasses,
151
- children: [!isMultiToolbar && isLargeViewport && isDefaultEditingMode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockParentSelector.default, {}), isUsingBindings && (0, _useBindingsAttributes.canBindBlock)(blockName) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockBindingsToolbarIndicator.default, {
152
- clientIds: blockClientIds
153
- }), (shouldShowVisualToolbar || isMultiToolbar) && (isDefaultEditingMode || isSynced) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
148
+ children: [!isMultiToolbar && isLargeViewport && isDefaultEditingMode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockParentSelector.default, {}), (shouldShowVisualToolbar || isMultiToolbar) && (isDefaultEditingMode || isSynced) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
154
149
  ref: nodeRef,
155
150
  ...showHoveredOrFocusedGestures,
156
151
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.ToolbarGroup, {
157
152
  className: "block-editor-block-toolbar__block-controls",
158
153
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockSwitcher.default, {
159
154
  clientIds: blockClientIds,
160
- disabled: !isDefaultEditingMode
155
+ disabled: !isDefaultEditingMode,
156
+ isUsingBindings: isUsingBindings
161
157
  }), isDefaultEditingMode && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
162
158
  children: [!isMultiToolbar && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockLock.BlockLockToolbar, {
163
159
  clientId: blockClientId
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_shuffle","_blockBindingsToolbarIndicator","_useHasBlockToolbar","_useBindingsAttributes","_jsxRuntime","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","blockName","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","getBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","metadata","bindings","rootClientId","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","hasBlockToolbar","useHasBlockToolbar","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","clsx","innerClasses","jsx","default","focusEditorOnEscape","className","__","undefined","children","jsxs","canBindBlock","clientIds","ToolbarGroup","disabled","Fragment","BlockLockToolbar","clientId","BlockGroupToolbar","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport Shuffle from './shuffle';\nimport BlockBindingsIndicator from '../block-bindings-toolbar-indicator';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\tblockName,\n\t\ttoolbarKey,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst _isDefaultEditingMode =\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = !! getBlockAttributes( selectedBlockClientId )\n\t\t\t?.metadata?.bindings;\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockName: _blockName,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\trootClientId: blockRootClientId,\n\t\t\ttoolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1 &&\n\t\t\t\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = clsx( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ toolbarKey }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ isUsingBindings && canBindBlock( blockName ) && (\n\t\t\t\t\t<BlockBindingsIndicator clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t( isDefaultEditingMode || isSynced ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isDefaultEditingMode }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t\t\t/>\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</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t<Shuffle clientId={ blockClientId } />\n\t\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t\t<BlockGroupToolbar />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_shuffle","_useHasBlockToolbar","_jsxRuntime","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","getBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","clientId","metadata","bindings","rootClientId","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","hasBlockToolbar","useHasBlockToolbar","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","clsx","innerClasses","jsx","default","focusEditorOnEscape","className","__","undefined","children","jsxs","ToolbarGroup","clientIds","disabled","Fragment","BlockLockToolbar","BlockGroupToolbar","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport Shuffle from './shuffle';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\ttoolbarKey,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst _isDefaultEditingMode =\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\t!! getBlockAttributes( clientId )?.metadata?.bindings\n\t\t);\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\trootClientId: blockRootClientId,\n\t\t\ttoolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1 &&\n\t\t\t\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = clsx( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t\t'is-connected': isUsingBindings,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ toolbarKey }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t( isDefaultEditingMode || isSynced ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isDefaultEditingMode }\n\t\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t\t\t/>\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</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t<Shuffle clientId={ blockClientId } />\n\t\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t\t<BlockGroupToolbar />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -65,7 +65,9 @@ function Shuffle({
65
65
  // otherwise we may shuffle to pattern that will not allow to continue shuffling.
66
66
  pattern.blocks.length === 1 && pattern.categories?.some(category => {
67
67
  return categories.includes(category);
68
- })
68
+ }) && (
69
+ // Check if the pattern is not a synced pattern.
70
+ pattern.syncStatus === 'unsynced' || !pattern.id)
69
71
  );
70
72
  });
71
73
  }, [categories, patterns]);
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_components","_i18n","_element","_data","_store","_jsxRuntime","EMPTY_ARRAY","Container","props","jsx","ToolbarGroup","children","ToolbarButton","Shuffle","clientId","as","categories","patterns","patternName","useSelect","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","blockEditorStore","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","useDispatch","sameCategoryPatternsWithSingleWrapper","useMemo","length","filter","pattern","blocks","some","category","includes","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","__","icon","shuffle","onClick","nextPattern"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns, patternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst _patternName = attributes?.metadata?.patternName;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t\tpatternName: _patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\tif ( sameCategoryPatternsWithSingleWrapper.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tfunction getNextPattern() {\n\t\tconst numberOfPatterns = sameCategoryPatternsWithSingleWrapper.length;\n\t\tconst patternIndex = sameCategoryPatternsWithSingleWrapper.findIndex(\n\t\t\t( { name } ) => name === patternName\n\t\t);\n\t\tconst nextPatternIndex =\n\t\t\tpatternIndex + 1 < numberOfPatterns ? patternIndex + 1 : 0;\n\t\treturn sameCategoryPatternsWithSingleWrapper[ nextPatternIndex ];\n\t}\n\n\tconst ComponentToUse = as;\n\treturn (\n\t\t<ComponentToUse\n\t\t\tlabel={ __( 'Shuffle' ) }\n\t\t\ticon={ shuffle }\n\t\t\tonClick={ () => {\n\t\t\t\tconst nextPattern = getNextPattern();\n\t\t\t\tnextPattern.blocks[ 0 ].attributes = {\n\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\tcategories,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treplaceBlocks( clientId, nextPattern.blocks );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_icons","require","_components","_i18n","_element","_data","_store","_jsxRuntime","EMPTY_ARRAY","Container","props","jsx","ToolbarGroup","children","ToolbarButton","Shuffle","clientId","as","categories","patterns","patternName","useSelect","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","blockEditorStore","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","useDispatch","sameCategoryPatternsWithSingleWrapper","useMemo","length","filter","pattern","blocks","some","category","includes","syncStatus","id","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","__","icon","shuffle","onClick","nextPattern"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns, patternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst _patternName = attributes?.metadata?.patternName;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t\tpatternName: _patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} ) &&\n\t\t\t\t// Check if the pattern is not a synced pattern.\n\t\t\t\t( pattern.syncStatus === 'unsynced' || ! pattern.id )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\tif ( sameCategoryPatternsWithSingleWrapper.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tfunction getNextPattern() {\n\t\tconst numberOfPatterns = sameCategoryPatternsWithSingleWrapper.length;\n\t\tconst patternIndex = sameCategoryPatternsWithSingleWrapper.findIndex(\n\t\t\t( { name } ) => name === patternName\n\t\t);\n\t\tconst nextPatternIndex =\n\t\t\tpatternIndex + 1 < numberOfPatterns ? patternIndex + 1 : 0;\n\t\treturn sameCategoryPatternsWithSingleWrapper[ nextPatternIndex ];\n\t}\n\n\tconst ComponentToUse = as;\n\treturn (\n\t\t<ComponentToUse\n\t\t\tlabel={ __( 'Shuffle' ) }\n\t\t\ticon={ shuffle }\n\t\t\tonClick={ () => {\n\t\t\t\tconst nextPattern = getNextPattern();\n\t\t\t\tnextPattern.blocks[ 0 ].attributes = {\n\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\tcategories,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treplaceBlocks( clientId, nextPattern.blocks );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -99,8 +99,8 @@ var _jsxRuntime = require("react/jsx-runtime");
99
99
  isBlockTemplatePart,
100
100
  isNextBlockTemplatePart,
101
101
  isPrevBlockTemplatePart,
102
- canRemove: canRemoveBlock(clientId, rootClientId),
103
- canMove: canMoveBlock(clientId, rootClientId)
102
+ canRemove: canRemoveBlock(clientId),
103
+ canMove: canMoveBlock(clientId)
104
104
  };
105
105
  }, [clientId, rootClientId]);
106
106
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_element","_keycodes","_blocks","_a11y","_dom","_i18n","_blockTitle","_blockIcon","_store","_blockDraggable","_useBlockRefs","_blockMover","_shuffle","_jsxRuntime","BlockSelectionButton","clientId","rootClientId","selected","useSelect","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","blockEditorStore","getActiveBlockVariation","getBlockType","blocksStore","index","name","attributes","blockType","orientation","match","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","editorMode","icon","label","getAccessibleBlockLabel","canRemove","canMove","setNavigationMode","removeBlock","useDispatch","ref","useRef","useEffect","current","focus","speak","blockElement","useBlockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","preventDefault","BACKSPACE","DELETE","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","clsx","dragHandleLabel","__","showBlockDraggable","jsx","className","children","jsxs","Flex","justify","FlexItem","default","showColors","clientIds","draggableProps","Button","dragHandle","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","ToolbarButton","trash","onClick","undefined","showTooltip","maximumLength","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash } from '@wordpress/icons';\nimport { Button, Flex, FlexItem, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation;\n\t\t\tconst match = getActiveBlockVariation( name, attributes );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t\ticon: match?.icon || blockType.icon,\n\t\t\t\tlabel: getAccessibleBlockLabel(\n\t\t\t\t\tblockType,\n\t\t\t\t\tattributes,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\torientation\n\t\t\t\t),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId, rootClientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst {\n\t\tlabel,\n\t\ticon,\n\t\tblockMovingMode,\n\t\teditorMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t} = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tif ( editorMode === 'navigation' ) {\n\t\t\tref.current.focus();\n\t\t\tspeak( label );\n\t\t}\n\t}, [ label, editorMode ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\t\tif ( isEscape && editorMode === 'navigation' ) {\n\t\t\tsetNavigationMode( false );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( selectedBlockClientId )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\t// Prevent the block from being moved into itself.\n\t\tif (\n\t\t\tstartingBlockClientId &&\n\t\t\tselectedBlockClientId === startingBlockClientId &&\n\t\t\tnavigateIn\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = clsx(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\tconst showBlockDraggable =\n\t\t( canMove && editorMode === 'navigation' ) ||\n\t\t( editorMode === 'zoom-out' && canMove && ! isBlockTemplatePart );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t{ showBlockDraggable && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ editorMode === 'zoom-out' && ! isBlockTemplatePart && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\thideDragHandle\n\t\t\t\t\t\t\tisBlockMoverUpButtonDisabled={\n\t\t\t\t\t\t\t\tisPrevBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlockMoverDownButtonDisabled={\n\t\t\t\t\t\t\t\tisNextBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ canMove && canRemove && editorMode === 'zoom-out' && (\n\t\t\t\t\t<Shuffle clientId={ clientId } as={ Button } />\n\t\t\t\t) }\n\t\t\t\t{ canRemove &&\n\t\t\t\t\teditorMode === 'zoom-out' &&\n\t\t\t\t\t! isBlockTemplatePart && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ trash }\n\t\t\t\t\t\t\t\tlabel=\"Delete\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_element","_keycodes","_blocks","_a11y","_dom","_i18n","_blockTitle","_blockIcon","_store","_blockDraggable","_useBlockRefs","_blockMover","_shuffle","_jsxRuntime","BlockSelectionButton","clientId","rootClientId","selected","useSelect","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","blockEditorStore","getActiveBlockVariation","getBlockType","blocksStore","index","name","attributes","blockType","orientation","match","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","editorMode","icon","label","getAccessibleBlockLabel","canRemove","canMove","setNavigationMode","removeBlock","useDispatch","ref","useRef","useEffect","current","focus","speak","blockElement","useBlockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","preventDefault","BACKSPACE","DELETE","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","clsx","dragHandleLabel","__","showBlockDraggable","jsx","className","children","jsxs","Flex","justify","FlexItem","default","showColors","clientIds","draggableProps","Button","dragHandle","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","ToolbarButton","trash","onClick","undefined","showTooltip","maximumLength","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash } from '@wordpress/icons';\nimport { Button, Flex, FlexItem, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation;\n\t\t\tconst match = getActiveBlockVariation( name, attributes );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t\ticon: match?.icon || blockType.icon,\n\t\t\t\tlabel: getAccessibleBlockLabel(\n\t\t\t\t\tblockType,\n\t\t\t\t\tattributes,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\torientation\n\t\t\t\t),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst {\n\t\tlabel,\n\t\ticon,\n\t\tblockMovingMode,\n\t\teditorMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t} = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tif ( editorMode === 'navigation' ) {\n\t\t\tref.current.focus();\n\t\t\tspeak( label );\n\t\t}\n\t}, [ label, editorMode ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\t\tif ( isEscape && editorMode === 'navigation' ) {\n\t\t\tsetNavigationMode( false );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( selectedBlockClientId )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\t// Prevent the block from being moved into itself.\n\t\tif (\n\t\t\tstartingBlockClientId &&\n\t\t\tselectedBlockClientId === startingBlockClientId &&\n\t\t\tnavigateIn\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = clsx(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\tconst showBlockDraggable =\n\t\t( canMove && editorMode === 'navigation' ) ||\n\t\t( editorMode === 'zoom-out' && canMove && ! isBlockTemplatePart );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t{ showBlockDraggable && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ editorMode === 'zoom-out' && ! isBlockTemplatePart && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\thideDragHandle\n\t\t\t\t\t\t\tisBlockMoverUpButtonDisabled={\n\t\t\t\t\t\t\t\tisPrevBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlockMoverDownButtonDisabled={\n\t\t\t\t\t\t\t\tisNextBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ canMove && canRemove && editorMode === 'zoom-out' && (\n\t\t\t\t\t<Shuffle clientId={ clientId } as={ Button } />\n\t\t\t\t) }\n\t\t\t\t{ canRemove &&\n\t\t\t\t\teditorMode === 'zoom-out' &&\n\t\t\t\t\t! isBlockTemplatePart && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ trash }\n\t\t\t\t\t\t\t\tlabel=\"Delete\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,7 @@ const useGlobalStylesReset = () => {
43
43
  setUserConfig
44
44
  } = (0, _element.useContext)(_context.GlobalStylesContext);
45
45
  const canReset = !!config && !(0, _es.default)(config, EMPTY_CONFIG);
46
- return [canReset, (0, _element.useCallback)(() => setUserConfig(() => EMPTY_CONFIG), [setUserConfig])];
46
+ return [canReset, (0, _element.useCallback)(() => setUserConfig(EMPTY_CONFIG), [setUserConfig])];
47
47
  };
48
48
  exports.useGlobalStylesReset = useGlobalStylesReset;
49
49
  function useGlobalSetting(propertyPath, blockName, source = 'all') {