@wordpress/block-editor 12.22.0 → 12.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/build/components/block-list/block.js +11 -3
  4. package/build/components/block-list/block.js.map +1 -1
  5. package/build/components/block-mover/button.js +4 -1
  6. package/build/components/block-mover/button.js.map +1 -1
  7. package/build/components/block-mover/index.js +5 -1
  8. package/build/components/block-mover/index.js.map +1 -1
  9. package/build/components/block-patterns-list/index.js +4 -1
  10. package/build/components/block-patterns-list/index.js.map +1 -1
  11. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -3
  12. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  13. package/build/components/block-switcher/index.js +4 -3
  14. package/build/components/block-switcher/index.js.map +1 -1
  15. package/build/components/block-toolbar/index.js +5 -4
  16. package/build/components/block-toolbar/index.js.map +1 -1
  17. package/build/components/block-toolbar/shuffle.js +18 -9
  18. package/build/components/block-toolbar/shuffle.js.map +1 -1
  19. package/build/components/block-tools/block-selection-button.js +48 -8
  20. package/build/components/block-tools/block-selection-button.js.map +1 -1
  21. package/build/components/block-tools/index.js +14 -2
  22. package/build/components/block-tools/index.js.map +1 -1
  23. package/build/components/global-styles/advanced-panel.js +9 -2
  24. package/build/components/global-styles/advanced-panel.js.map +1 -1
  25. package/build/components/global-styles/background-panel.js +444 -0
  26. package/build/components/global-styles/background-panel.js.map +1 -0
  27. package/build/components/global-styles/color-panel.js +2 -1
  28. package/build/components/global-styles/color-panel.js.map +1 -1
  29. package/build/components/global-styles/get-global-styles-changes.js +3 -0
  30. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  31. package/build/components/global-styles/hooks.js +1 -1
  32. package/build/components/global-styles/hooks.js.map +1 -1
  33. package/build/components/global-styles/index.js +13 -0
  34. package/build/components/global-styles/index.js.map +1 -1
  35. package/build/components/global-styles/use-global-styles-output.js +15 -14
  36. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  37. package/build/components/global-styles/utils.js +2 -1
  38. package/build/components/global-styles/utils.js.map +1 -1
  39. package/build/components/iframe/index.js +9 -4
  40. package/build/components/iframe/index.js.map +1 -1
  41. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  42. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  43. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  44. package/build/components/inserter/library.js +2 -0
  45. package/build/components/inserter/library.js.map +1 -1
  46. package/build/components/inserter/menu.js +8 -2
  47. package/build/components/inserter/menu.js.map +1 -1
  48. package/build/components/inserter/search-items.js +36 -15
  49. package/build/components/inserter/search-items.js.map +1 -1
  50. package/build/components/keyboard-shortcuts/index.js +11 -0
  51. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  52. package/build/components/list-view/block-select-button.js +16 -0
  53. package/build/components/list-view/block-select-button.js.map +1 -1
  54. package/build/components/list-view/block.js +1 -1
  55. package/build/components/list-view/block.js.map +1 -1
  56. package/build/components/list-view/index.js +17 -2
  57. package/build/components/list-view/index.js.map +1 -1
  58. package/build/components/list-view/use-list-view-collapse-items.js +47 -0
  59. package/build/components/list-view/use-list-view-collapse-items.js.map +1 -0
  60. package/build/components/rich-text/index.js +14 -11
  61. package/build/components/rich-text/index.js.map +1 -1
  62. package/build/components/rich-text/index.native.js +17 -11
  63. package/build/components/rich-text/index.native.js.map +1 -1
  64. package/build/components/rich-text/native/get-format-colors.native.js +1 -1
  65. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  66. package/build/components/rich-text/native/index.native.js +2 -2
  67. package/build/components/rich-text/native/index.native.js.map +1 -1
  68. package/build/components/rich-text/with-deprecations.js +0 -3
  69. package/build/components/rich-text/with-deprecations.js.map +1 -1
  70. package/build/components/url-popover/image-url-input-ui.js +50 -36
  71. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  72. package/build/components/use-block-display-information/index.js +4 -6
  73. package/build/components/use-block-display-information/index.js.map +1 -1
  74. package/build/hooks/anchor.js +2 -2
  75. package/build/hooks/anchor.js.map +1 -1
  76. package/build/hooks/background.js +70 -424
  77. package/build/hooks/background.js.map +1 -1
  78. package/build/hooks/index.js +7 -0
  79. package/build/hooks/index.js.map +1 -1
  80. package/build/hooks/use-zoom-out.js +47 -0
  81. package/build/hooks/use-zoom-out.js.map +1 -0
  82. package/build/index.js +7 -0
  83. package/build/index.js.map +1 -1
  84. package/build/private-apis.js +6 -1
  85. package/build/private-apis.js.map +1 -1
  86. package/build/private-apis.native.js +3 -1
  87. package/build/private-apis.native.js.map +1 -1
  88. package/build/store/private-actions.js +13 -0
  89. package/build/store/private-actions.js.map +1 -1
  90. package/build/store/private-keys.js +2 -1
  91. package/build/store/private-keys.js.map +1 -1
  92. package/build/store/private-selectors.js +24 -3
  93. package/build/store/private-selectors.js.map +1 -1
  94. package/build/store/reducer.js +22 -0
  95. package/build/store/reducer.js.map +1 -1
  96. package/build/store/selectors.js +34 -32
  97. package/build/store/selectors.js.map +1 -1
  98. package/build/store/utils.js +7 -1
  99. package/build/store/utils.js.map +1 -1
  100. package/build/utils/transform-styles/index.js +2 -1
  101. package/build/utils/transform-styles/index.js.map +1 -1
  102. package/build-module/components/block-list/block.js +11 -3
  103. package/build-module/components/block-list/block.js.map +1 -1
  104. package/build-module/components/block-mover/button.js +4 -1
  105. package/build-module/components/block-mover/button.js.map +1 -1
  106. package/build-module/components/block-mover/index.js +5 -1
  107. package/build-module/components/block-mover/index.js.map +1 -1
  108. package/build-module/components/block-patterns-list/index.js +4 -1
  109. package/build-module/components/block-patterns-list/index.js.map +1 -1
  110. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -3
  111. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  112. package/build-module/components/block-switcher/index.js +4 -3
  113. package/build-module/components/block-switcher/index.js.map +1 -1
  114. package/build-module/components/block-toolbar/index.js +5 -4
  115. package/build-module/components/block-toolbar/index.js.map +1 -1
  116. package/build-module/components/block-toolbar/shuffle.js +18 -9
  117. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  118. package/build-module/components/block-tools/block-selection-button.js +50 -10
  119. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  120. package/build-module/components/block-tools/index.js +14 -2
  121. package/build-module/components/block-tools/index.js.map +1 -1
  122. package/build-module/components/global-styles/advanced-panel.js +9 -2
  123. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  124. package/build-module/components/global-styles/background-panel.js +430 -0
  125. package/build-module/components/global-styles/background-panel.js.map +1 -0
  126. package/build-module/components/global-styles/color-panel.js +2 -1
  127. package/build-module/components/global-styles/color-panel.js.map +1 -1
  128. package/build-module/components/global-styles/get-global-styles-changes.js +3 -0
  129. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  130. package/build-module/components/global-styles/hooks.js +1 -1
  131. package/build-module/components/global-styles/hooks.js.map +1 -1
  132. package/build-module/components/global-styles/index.js +1 -0
  133. package/build-module/components/global-styles/index.js.map +1 -1
  134. package/build-module/components/global-styles/use-global-styles-output.js +16 -15
  135. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  136. package/build-module/components/global-styles/utils.js +1 -0
  137. package/build-module/components/global-styles/utils.js.map +1 -1
  138. package/build-module/components/iframe/index.js +9 -4
  139. package/build-module/components/iframe/index.js.map +1 -1
  140. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  141. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  142. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  143. package/build-module/components/inserter/library.js +2 -0
  144. package/build-module/components/inserter/library.js.map +1 -1
  145. package/build-module/components/inserter/menu.js +8 -2
  146. package/build-module/components/inserter/menu.js.map +1 -1
  147. package/build-module/components/inserter/search-items.js +33 -15
  148. package/build-module/components/inserter/search-items.js.map +1 -1
  149. package/build-module/components/keyboard-shortcuts/index.js +11 -0
  150. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  151. package/build-module/components/list-view/block-select-button.js +16 -0
  152. package/build-module/components/list-view/block-select-button.js.map +1 -1
  153. package/build-module/components/list-view/block.js +1 -1
  154. package/build-module/components/list-view/block.js.map +1 -1
  155. package/build-module/components/list-view/index.js +17 -2
  156. package/build-module/components/list-view/index.js.map +1 -1
  157. package/build-module/components/list-view/use-list-view-collapse-items.js +40 -0
  158. package/build-module/components/list-view/use-list-view-collapse-items.js.map +1 -0
  159. package/build-module/components/rich-text/index.js +15 -12
  160. package/build-module/components/rich-text/index.js.map +1 -1
  161. package/build-module/components/rich-text/index.native.js +16 -11
  162. package/build-module/components/rich-text/index.native.js.map +1 -1
  163. package/build-module/components/rich-text/native/get-format-colors.native.js +1 -1
  164. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  165. package/build-module/components/rich-text/native/index.native.js +2 -2
  166. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  167. package/build-module/components/rich-text/with-deprecations.js +0 -3
  168. package/build-module/components/rich-text/with-deprecations.js.map +1 -1
  169. package/build-module/components/url-popover/image-url-input-ui.js +50 -36
  170. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  171. package/build-module/components/use-block-display-information/index.js +5 -7
  172. package/build-module/components/use-block-display-information/index.js.map +1 -1
  173. package/build-module/hooks/anchor.js +2 -2
  174. package/build-module/hooks/anchor.js.map +1 -1
  175. package/build-module/hooks/background.js +67 -419
  176. package/build-module/hooks/background.js.map +1 -1
  177. package/build-module/hooks/index.js +1 -0
  178. package/build-module/hooks/index.js.map +1 -1
  179. package/build-module/hooks/use-zoom-out.js +41 -0
  180. package/build-module/hooks/use-zoom-out.js.map +1 -0
  181. package/build-module/index.js +1 -1
  182. package/build-module/index.js.map +1 -1
  183. package/build-module/private-apis.js +7 -2
  184. package/build-module/private-apis.js.map +1 -1
  185. package/build-module/private-apis.native.js +3 -1
  186. package/build-module/private-apis.native.js.map +1 -1
  187. package/build-module/store/private-actions.js +12 -0
  188. package/build-module/store/private-actions.js.map +1 -1
  189. package/build-module/store/private-keys.js +1 -0
  190. package/build-module/store/private-keys.js.map +1 -1
  191. package/build-module/store/private-selectors.js +22 -4
  192. package/build-module/store/private-selectors.js.map +1 -1
  193. package/build-module/store/reducer.js +21 -0
  194. package/build-module/store/reducer.js.map +1 -1
  195. package/build-module/store/selectors.js +35 -33
  196. package/build-module/store/selectors.js.map +1 -1
  197. package/build-module/store/utils.js +6 -1
  198. package/build-module/store/utils.js.map +1 -1
  199. package/build-module/utils/transform-styles/index.js +2 -1
  200. package/build-module/utils/transform-styles/index.js.map +1 -1
  201. package/build-style/content-rtl.css +4 -1
  202. package/build-style/content.css +4 -1
  203. package/build-style/style-rtl.css +84 -79
  204. package/build-style/style.css +84 -79
  205. package/package.json +31 -31
  206. package/src/components/block-list/block.js +19 -3
  207. package/src/components/block-mover/button.js +4 -1
  208. package/src/components/block-mover/index.js +8 -1
  209. package/src/components/block-patterns-list/index.js +22 -17
  210. package/src/components/block-preview/style.scss +28 -0
  211. package/src/components/block-settings-menu/block-settings-dropdown.js +8 -2
  212. package/src/components/block-switcher/index.js +5 -3
  213. package/src/components/block-switcher/style.scss +1 -1
  214. package/src/components/block-toolbar/index.js +22 -19
  215. package/src/components/block-toolbar/shuffle.js +19 -13
  216. package/src/components/block-toolbar/style.scss +1 -1
  217. package/src/components/block-tools/block-selection-button.js +66 -9
  218. package/src/components/block-tools/index.js +18 -1
  219. package/src/components/button-block-appender/content.scss +5 -1
  220. package/src/components/default-block-appender/content.scss +2 -2
  221. package/src/components/global-styles/advanced-panel.js +8 -2
  222. package/src/components/global-styles/background-panel.js +591 -0
  223. package/src/components/global-styles/color-panel.js +2 -1
  224. package/src/components/global-styles/get-global-styles-changes.js +3 -0
  225. package/src/components/global-styles/hooks.js +1 -0
  226. package/src/components/global-styles/index.js +4 -0
  227. package/src/components/global-styles/style.scss +78 -1
  228. package/src/{hooks/test/background.js → components/global-styles/test/background-panel.js} +36 -1
  229. package/src/components/global-styles/test/get-global-styles-changes.js +22 -3
  230. package/src/components/global-styles/test/use-global-styles-output.js +9 -9
  231. package/src/components/global-styles/use-global-styles-output.js +27 -16
  232. package/src/components/global-styles/utils.js +1 -0
  233. package/src/components/iframe/index.js +19 -9
  234. package/src/components/inserter/block-patterns-tab/index.js +1 -0
  235. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  236. package/src/components/inserter/library.js +4 -0
  237. package/src/components/inserter/menu.js +8 -1
  238. package/src/components/inserter/search-items.js +37 -15
  239. package/src/components/inserter/style.scss +6 -12
  240. package/src/components/keyboard-shortcuts/index.js +11 -0
  241. package/src/components/list-view/block-select-button.js +13 -1
  242. package/src/components/list-view/block.js +1 -1
  243. package/src/components/list-view/index.js +18 -1
  244. package/src/components/list-view/style.scss +4 -4
  245. package/src/components/list-view/use-list-view-collapse-items.js +33 -0
  246. package/src/components/rich-text/index.js +30 -13
  247. package/src/components/rich-text/index.native.js +14 -11
  248. package/src/components/rich-text/native/get-format-colors.native.js +1 -1
  249. package/src/components/rich-text/native/index.native.js +2 -2
  250. package/src/components/rich-text/with-deprecations.js +0 -3
  251. package/src/components/url-popover/image-url-input-ui.js +68 -51
  252. package/src/components/use-block-display-information/index.js +8 -10
  253. package/src/hooks/anchor.js +11 -9
  254. package/src/hooks/background.js +77 -538
  255. package/src/hooks/index.js +1 -0
  256. package/src/hooks/use-zoom-out.js +36 -0
  257. package/src/index.js +1 -0
  258. package/src/private-apis.js +13 -1
  259. package/src/private-apis.native.js +2 -0
  260. package/src/store/private-actions.js +12 -0
  261. package/src/store/private-keys.js +1 -0
  262. package/src/store/private-selectors.js +54 -27
  263. package/src/store/reducer.js +22 -0
  264. package/src/store/selectors.js +195 -180
  265. package/src/store/test/private-actions.js +10 -0
  266. package/src/store/test/private-selectors.js +13 -0
  267. package/src/store/test/reducer.js +26 -0
  268. package/src/store/test/selectors.js +90 -199
  269. package/src/store/utils.js +13 -0
  270. package/src/style.scss +0 -2
  271. package/src/utils/transform-styles/index.js +2 -1
  272. package/src/hooks/anchor.scss +0 -4
  273. package/src/hooks/background.scss +0 -75
@@ -4,7 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getAllPatternsDependants = exports.checkAllowListRecursive = exports.checkAllowList = void 0;
7
+ exports.getInsertBlockTypeDependants = getInsertBlockTypeDependants;
7
8
  var _privateKeys = require("./private-keys");
9
+ var _lockUnlock = require("../lock-unlock");
10
+ var _constants = require("./constants");
8
11
  /**
9
12
  * Internal dependencies
10
13
  */
@@ -44,7 +47,10 @@ const checkAllowListRecursive = (blocks, allowedBlockTypes) => {
44
47
  };
45
48
  exports.checkAllowListRecursive = checkAllowListRecursive;
46
49
  const getAllPatternsDependants = select => state => {
47
- return [state.settings.__experimentalBlockPatterns, state.settings.__experimentalUserPatternCategories, state.settings.__experimentalReusableBlocks, state.settings[_privateKeys.selectBlockPatternsKey]?.(select), state.blockPatterns];
50
+ return [state.settings.__experimentalBlockPatterns, state.settings.__experimentalUserPatternCategories, state.settings.__experimentalReusableBlocks, state.settings[_privateKeys.selectBlockPatternsKey]?.(select), state.blockPatterns, (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks()];
48
51
  };
49
52
  exports.getAllPatternsDependants = getAllPatternsDependants;
53
+ function getInsertBlockTypeDependants(state, rootClientId) {
54
+ return [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes];
55
+ }
50
56
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_privateKeys","require","checkAllowList","list","item","defaultResult","Array","isArray","includes","exports","checkAllowListRecursive","blocks","allowedBlockTypes","blocksQueue","length","block","shift","isAllowed","name","blockName","innerBlocks","forEach","innerBlock","push","getAllPatternsDependants","select","state","settings","__experimentalBlockPatterns","__experimentalUserPatternCategories","__experimentalReusableBlocks","selectBlockPatternsKey","blockPatterns"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { selectBlockPatternsKey } from './private-keys';\n\nexport const checkAllowList = ( list, item, defaultResult = null ) => {\n\tif ( typeof list === 'boolean' ) {\n\t\treturn list;\n\t}\n\tif ( Array.isArray( list ) ) {\n\t\t// TODO: when there is a canonical way to detect that we are editing a post\n\t\t// the following check should be changed to something like:\n\t\t// if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n\t\tif ( list.includes( 'core/post-content' ) && item === null ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn list.includes( item );\n\t}\n\treturn defaultResult;\n};\n\nexport const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {\n\tif ( typeof allowedBlockTypes === 'boolean' ) {\n\t\treturn allowedBlockTypes;\n\t}\n\n\tconst blocksQueue = [ ...blocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\n\t\tconst isAllowed = checkAllowList(\n\t\t\tallowedBlockTypes,\n\t\t\tblock.name || block.blockName,\n\t\t\ttrue\n\t\t);\n\t\tif ( ! isAllowed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\n\treturn true;\n};\n\nexport const getAllPatternsDependants = ( select ) => ( state ) => {\n\treturn [\n\t\tstate.settings.__experimentalBlockPatterns,\n\t\tstate.settings.__experimentalUserPatternCategories,\n\t\tstate.settings.__experimentalReusableBlocks,\n\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\tstate.blockPatterns,\n\t];\n};\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,cAAc,GAAGA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,aAAa,GAAG,IAAI,KAAM;EACrE,IAAK,OAAOF,IAAI,KAAK,SAAS,EAAG;IAChC,OAAOA,IAAI;EACZ;EACA,IAAKG,KAAK,CAACC,OAAO,CAAEJ,IAAK,CAAC,EAAG;IAC5B;IACA;IACA;IACA,IAAKA,IAAI,CAACK,QAAQ,CAAE,mBAAoB,CAAC,IAAIJ,IAAI,KAAK,IAAI,EAAG;MAC5D,OAAO,IAAI;IACZ;IACA,OAAOD,IAAI,CAACK,QAAQ,CAAEJ,IAAK,CAAC;EAC7B;EACA,OAAOC,aAAa;AACrB,CAAC;AAACI,OAAA,CAAAP,cAAA,GAAAA,cAAA;AAEK,MAAMQ,uBAAuB,GAAGA,CAAEC,MAAM,EAAEC,iBAAiB,KAAM;EACvE,IAAK,OAAOA,iBAAiB,KAAK,SAAS,EAAG;IAC7C,OAAOA,iBAAiB;EACzB;EAEA,MAAMC,WAAW,GAAG,CAAE,GAAGF,MAAM,CAAE;EACjC,OAAQE,WAAW,CAACC,MAAM,GAAG,CAAC,EAAG;IAChC,MAAMC,KAAK,GAAGF,WAAW,CAACG,KAAK,CAAC,CAAC;IAEjC,MAAMC,SAAS,GAAGf,cAAc,CAC/BU,iBAAiB,EACjBG,KAAK,CAACG,IAAI,IAAIH,KAAK,CAACI,SAAS,EAC7B,IACD,CAAC;IACD,IAAK,CAAEF,SAAS,EAAG;MAClB,OAAO,KAAK;IACb;IAEAF,KAAK,CAACK,WAAW,EAAEC,OAAO,CAAIC,UAAU,IAAM;MAC7CT,WAAW,CAACU,IAAI,CAAED,UAAW,CAAC;IAC/B,CAAE,CAAC;EACJ;EAEA,OAAO,IAAI;AACZ,CAAC;AAACb,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAEK,MAAMc,wBAAwB,GAAKC,MAAM,IAAQC,KAAK,IAAM;EAClE,OAAO,CACNA,KAAK,CAACC,QAAQ,CAACC,2BAA2B,EAC1CF,KAAK,CAACC,QAAQ,CAACE,mCAAmC,EAClDH,KAAK,CAACC,QAAQ,CAACG,4BAA4B,EAC3CJ,KAAK,CAACC,QAAQ,CAAEI,mCAAsB,CAAE,GAAIN,MAAO,CAAC,EACpDC,KAAK,CAACM,aAAa,CACnB;AACF,CAAC;AAACvB,OAAA,CAAAe,wBAAA,GAAAA,wBAAA"}
1
+ {"version":3,"names":["_privateKeys","require","_lockUnlock","_constants","checkAllowList","list","item","defaultResult","Array","isArray","includes","exports","checkAllowListRecursive","blocks","allowedBlockTypes","blocksQueue","length","block","shift","isAllowed","name","blockName","innerBlocks","forEach","innerBlock","push","getAllPatternsDependants","select","state","settings","__experimentalBlockPatterns","__experimentalUserPatternCategories","__experimentalReusableBlocks","selectBlockPatternsKey","blockPatterns","unlock","STORE_NAME","getReusableBlocks","getInsertBlockTypeDependants","rootClientId","blockListSettings","byClientId","get","templateLock","blockEditingModes"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { selectBlockPatternsKey } from './private-keys';\nimport { unlock } from '../lock-unlock';\nimport { STORE_NAME } from './constants';\n\nexport const checkAllowList = ( list, item, defaultResult = null ) => {\n\tif ( typeof list === 'boolean' ) {\n\t\treturn list;\n\t}\n\tif ( Array.isArray( list ) ) {\n\t\t// TODO: when there is a canonical way to detect that we are editing a post\n\t\t// the following check should be changed to something like:\n\t\t// if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n\t\tif ( list.includes( 'core/post-content' ) && item === null ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn list.includes( item );\n\t}\n\treturn defaultResult;\n};\n\nexport const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {\n\tif ( typeof allowedBlockTypes === 'boolean' ) {\n\t\treturn allowedBlockTypes;\n\t}\n\n\tconst blocksQueue = [ ...blocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\n\t\tconst isAllowed = checkAllowList(\n\t\t\tallowedBlockTypes,\n\t\t\tblock.name || block.blockName,\n\t\t\ttrue\n\t\t);\n\t\tif ( ! isAllowed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\n\treturn true;\n};\n\nexport const getAllPatternsDependants = ( select ) => ( state ) => {\n\treturn [\n\t\tstate.settings.__experimentalBlockPatterns,\n\t\tstate.settings.__experimentalUserPatternCategories,\n\t\tstate.settings.__experimentalReusableBlocks,\n\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\tstate.blockPatterns,\n\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t];\n};\n\nexport function getInsertBlockTypeDependants( state, rootClientId ) {\n\treturn [\n\t\tstate.blockListSettings[ rootClientId ],\n\t\tstate.blocks.byClientId.get( rootClientId ),\n\t\tstate.settings.allowedBlockTypes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockEditingModes,\n\t];\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKO,MAAMG,cAAc,GAAGA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,aAAa,GAAG,IAAI,KAAM;EACrE,IAAK,OAAOF,IAAI,KAAK,SAAS,EAAG;IAChC,OAAOA,IAAI;EACZ;EACA,IAAKG,KAAK,CAACC,OAAO,CAAEJ,IAAK,CAAC,EAAG;IAC5B;IACA;IACA;IACA,IAAKA,IAAI,CAACK,QAAQ,CAAE,mBAAoB,CAAC,IAAIJ,IAAI,KAAK,IAAI,EAAG;MAC5D,OAAO,IAAI;IACZ;IACA,OAAOD,IAAI,CAACK,QAAQ,CAAEJ,IAAK,CAAC;EAC7B;EACA,OAAOC,aAAa;AACrB,CAAC;AAACI,OAAA,CAAAP,cAAA,GAAAA,cAAA;AAEK,MAAMQ,uBAAuB,GAAGA,CAAEC,MAAM,EAAEC,iBAAiB,KAAM;EACvE,IAAK,OAAOA,iBAAiB,KAAK,SAAS,EAAG;IAC7C,OAAOA,iBAAiB;EACzB;EAEA,MAAMC,WAAW,GAAG,CAAE,GAAGF,MAAM,CAAE;EACjC,OAAQE,WAAW,CAACC,MAAM,GAAG,CAAC,EAAG;IAChC,MAAMC,KAAK,GAAGF,WAAW,CAACG,KAAK,CAAC,CAAC;IAEjC,MAAMC,SAAS,GAAGf,cAAc,CAC/BU,iBAAiB,EACjBG,KAAK,CAACG,IAAI,IAAIH,KAAK,CAACI,SAAS,EAC7B,IACD,CAAC;IACD,IAAK,CAAEF,SAAS,EAAG;MAClB,OAAO,KAAK;IACb;IAEAF,KAAK,CAACK,WAAW,EAAEC,OAAO,CAAIC,UAAU,IAAM;MAC7CT,WAAW,CAACU,IAAI,CAAED,UAAW,CAAC;IAC/B,CAAE,CAAC;EACJ;EAEA,OAAO,IAAI;AACZ,CAAC;AAACb,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAEK,MAAMc,wBAAwB,GAAKC,MAAM,IAAQC,KAAK,IAAM;EAClE,OAAO,CACNA,KAAK,CAACC,QAAQ,CAACC,2BAA2B,EAC1CF,KAAK,CAACC,QAAQ,CAACE,mCAAmC,EAClDH,KAAK,CAACC,QAAQ,CAACG,4BAA4B,EAC3CJ,KAAK,CAACC,QAAQ,CAAEI,mCAAsB,CAAE,GAAIN,MAAO,CAAC,EACpDC,KAAK,CAACM,aAAa,EACnB,IAAAC,kBAAM,EAAER,MAAM,CAAES,qBAAW,CAAE,CAAC,CAACC,iBAAiB,CAAC,CAAC,CAClD;AACF,CAAC;AAAC1B,OAAA,CAAAe,wBAAA,GAAAA,wBAAA;AAEK,SAASY,4BAA4BA,CAAEV,KAAK,EAAEW,YAAY,EAAG;EACnE,OAAO,CACNX,KAAK,CAACY,iBAAiB,CAAED,YAAY,CAAE,EACvCX,KAAK,CAACf,MAAM,CAAC4B,UAAU,CAACC,GAAG,CAAEH,YAAa,CAAC,EAC3CX,KAAK,CAACC,QAAQ,CAACf,iBAAiB,EAChCc,KAAK,CAACC,QAAQ,CAACc,YAAY,EAC3Bf,KAAK,CAACgB,iBAAiB,CACvB;AACF"}
@@ -27,12 +27,13 @@ function transformStyle({
27
27
  if (!wrapperSelector && !baseURL) {
28
28
  return css;
29
29
  }
30
+ const postcssFriendlyCSS = css.replace(':where(body)', 'body');
30
31
  try {
31
32
  return (0, _postcss.default)([wrapperSelector && (0, _postcssPrefixwrap.default)(wrapperSelector, {
32
33
  ignoredSelectors: [...ignoredSelectors, wrapperSelector]
33
34
  }), baseURL && (0, _postcssUrlrebase.default)({
34
35
  rootUrl: baseURL
35
- })].filter(Boolean)).process(css, {}).css; // use sync PostCSS API
36
+ })].filter(Boolean)).process(postcssFriendlyCSS, {}).css; // use sync PostCSS API
36
37
  } catch (error) {
37
38
  if (error instanceof _postcss.CssSyntaxError) {
38
39
  // eslint-disable-next-line no-console
@@ -1 +1 @@
1
- {"version":3,"names":["_postcss","_interopRequireWildcard","require","_postcssPrefixwrap","_interopRequireDefault","_postcssUrlrebase","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","transformStylesCache","transformStyle","css","ignoredSelectors","baseURL","wrapperSelector","postcss","wrap","rebaseUrl","rootUrl","filter","Boolean","process","error","CssSyntaxError","console","warn","message","showSourceCode","transformStyles","styles","map","style","transformedStyle","_default","exports"],"sources":["@wordpress/block-editor/src/utils/transform-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport postcss, { CssSyntaxError } from 'postcss';\nimport wrap from 'postcss-prefixwrap';\nimport rebaseUrl from 'postcss-urlrebase';\n\nconst transformStylesCache = new WeakMap();\n\nfunction transformStyle(\n\t{ css, ignoredSelectors = [], baseURL },\n\twrapperSelector = ''\n) {\n\t// When there is no wrapper selector or base URL, there is no need\n\t// to transform the CSS. This is most cases because in the default\n\t// iframed editor, no wrapping is needed, and not many styles\n\t// provide a base URL.\n\tif ( ! wrapperSelector && ! baseURL ) {\n\t\treturn css;\n\t}\n\n\ttry {\n\t\treturn postcss(\n\t\t\t[\n\t\t\t\twrapperSelector &&\n\t\t\t\t\twrap( wrapperSelector, {\n\t\t\t\t\t\tignoredSelectors: [\n\t\t\t\t\t\t\t...ignoredSelectors,\n\t\t\t\t\t\t\twrapperSelector,\n\t\t\t\t\t\t],\n\t\t\t\t\t} ),\n\t\t\t\tbaseURL && rebaseUrl( { rootUrl: baseURL } ),\n\t\t\t].filter( Boolean )\n\t\t).process( css, {} ).css; // use sync PostCSS API\n\t} catch ( error ) {\n\t\tif ( error instanceof CssSyntaxError ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t'wp.blockEditor.transformStyles Failed to transform CSS.',\n\t\t\t\terror.message + '\\n' + error.showSourceCode( false )\n\t\t\t);\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t'wp.blockEditor.transformStyles Failed to transform CSS.',\n\t\t\t\terror\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @typedef {Object} EditorStyle\n * @property {string} css the CSS block(s), as a single string.\n * @property {?string} baseURL the base URL to be used as the reference when rewritting urls.\n * @property {?string[]} ignoredSelectors the selectors not to wrap.\n *\n * @param {EditorStyle[]} styles CSS rules.\n * @param {string} wrapperSelector Wrapper selector.\n * @return {Array} converted rules.\n */\nconst transformStyles = ( styles, wrapperSelector = '' ) => {\n\treturn styles.map( ( style ) => {\n\t\tif ( transformStylesCache.has( style ) ) {\n\t\t\treturn transformStylesCache.get( style );\n\t\t}\n\n\t\tconst transformedStyle = transformStyle( style, wrapperSelector );\n\t\ttransformStylesCache.set( style, transformedStyle );\n\t\treturn transformedStyle;\n\t} );\n};\n\nexport default transformStyles;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA0C,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAL1C;AACA;AACA;;AAKA,MAAMY,oBAAoB,GAAG,IAAInB,OAAO,CAAC,CAAC;AAE1C,SAASoB,cAAcA,CACtB;EAAEC,GAAG;EAAEC,gBAAgB,GAAG,EAAE;EAAEC;AAAQ,CAAC,EACvCC,eAAe,GAAG,EAAE,EACnB;EACD;EACA;EACA;EACA;EACA,IAAK,CAAEA,eAAe,IAAI,CAAED,OAAO,EAAG;IACrC,OAAOF,GAAG;EACX;EAEA,IAAI;IACH,OAAO,IAAAI,gBAAO,EACb,CACCD,eAAe,IACd,IAAAE,0BAAI,EAAEF,eAAe,EAAE;MACtBF,gBAAgB,EAAE,CACjB,GAAGA,gBAAgB,EACnBE,eAAe;IAEjB,CAAE,CAAC,EACJD,OAAO,IAAI,IAAAI,yBAAS,EAAE;MAAEC,OAAO,EAAEL;IAAQ,CAAE,CAAC,CAC5C,CAACM,MAAM,CAAEC,OAAQ,CACnB,CAAC,CAACC,OAAO,CAAEV,GAAG,EAAE,CAAC,CAAE,CAAC,CAACA,GAAG,CAAC,CAAC;EAC3B,CAAC,CAAC,OAAQW,KAAK,EAAG;IACjB,IAAKA,KAAK,YAAYC,uBAAc,EAAG;MACtC;MACAC,OAAO,CAACC,IAAI,CACX,yDAAyD,EACzDH,KAAK,CAACI,OAAO,GAAG,IAAI,GAAGJ,KAAK,CAACK,cAAc,CAAE,KAAM,CACpD,CAAC;IACF,CAAC,MAAM;MACN;MACAH,OAAO,CAACC,IAAI,CACX,yDAAyD,EACzDH,KACD,CAAC;IACF;IAEA,OAAO,IAAI;EACZ;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,eAAe,GAAGA,CAAEC,MAAM,EAAEf,eAAe,GAAG,EAAE,KAAM;EAC3D,OAAOe,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAC/B,IAAKtB,oBAAoB,CAACd,GAAG,CAAEoC,KAAM,CAAC,EAAG;MACxC,OAAOtB,oBAAoB,CAACb,GAAG,CAAEmC,KAAM,CAAC;IACzC;IAEA,MAAMC,gBAAgB,GAAGtB,cAAc,CAAEqB,KAAK,EAAEjB,eAAgB,CAAC;IACjEL,oBAAoB,CAACD,GAAG,CAAEuB,KAAK,EAAEC,gBAAiB,CAAC;IACnD,OAAOA,gBAAgB;EACxB,CAAE,CAAC;AACJ,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAxC,OAAA,GAEakC,eAAe"}
1
+ {"version":3,"names":["_postcss","_interopRequireWildcard","require","_postcssPrefixwrap","_interopRequireDefault","_postcssUrlrebase","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","transformStylesCache","transformStyle","css","ignoredSelectors","baseURL","wrapperSelector","postcssFriendlyCSS","replace","postcss","wrap","rebaseUrl","rootUrl","filter","Boolean","process","error","CssSyntaxError","console","warn","message","showSourceCode","transformStyles","styles","map","style","transformedStyle","_default","exports"],"sources":["@wordpress/block-editor/src/utils/transform-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport postcss, { CssSyntaxError } from 'postcss';\nimport wrap from 'postcss-prefixwrap';\nimport rebaseUrl from 'postcss-urlrebase';\n\nconst transformStylesCache = new WeakMap();\n\nfunction transformStyle(\n\t{ css, ignoredSelectors = [], baseURL },\n\twrapperSelector = ''\n) {\n\t// When there is no wrapper selector or base URL, there is no need\n\t// to transform the CSS. This is most cases because in the default\n\t// iframed editor, no wrapping is needed, and not many styles\n\t// provide a base URL.\n\tif ( ! wrapperSelector && ! baseURL ) {\n\t\treturn css;\n\t}\n\n\tconst postcssFriendlyCSS = css.replace( ':where(body)', 'body' );\n\ttry {\n\t\treturn postcss(\n\t\t\t[\n\t\t\t\twrapperSelector &&\n\t\t\t\t\twrap( wrapperSelector, {\n\t\t\t\t\t\tignoredSelectors: [\n\t\t\t\t\t\t\t...ignoredSelectors,\n\t\t\t\t\t\t\twrapperSelector,\n\t\t\t\t\t\t],\n\t\t\t\t\t} ),\n\t\t\t\tbaseURL && rebaseUrl( { rootUrl: baseURL } ),\n\t\t\t].filter( Boolean )\n\t\t).process( postcssFriendlyCSS, {} ).css; // use sync PostCSS API\n\t} catch ( error ) {\n\t\tif ( error instanceof CssSyntaxError ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t'wp.blockEditor.transformStyles Failed to transform CSS.',\n\t\t\t\terror.message + '\\n' + error.showSourceCode( false )\n\t\t\t);\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t'wp.blockEditor.transformStyles Failed to transform CSS.',\n\t\t\t\terror\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @typedef {Object} EditorStyle\n * @property {string} css the CSS block(s), as a single string.\n * @property {?string} baseURL the base URL to be used as the reference when rewritting urls.\n * @property {?string[]} ignoredSelectors the selectors not to wrap.\n *\n * @param {EditorStyle[]} styles CSS rules.\n * @param {string} wrapperSelector Wrapper selector.\n * @return {Array} converted rules.\n */\nconst transformStyles = ( styles, wrapperSelector = '' ) => {\n\treturn styles.map( ( style ) => {\n\t\tif ( transformStylesCache.has( style ) ) {\n\t\t\treturn transformStylesCache.get( style );\n\t\t}\n\n\t\tconst transformedStyle = transformStyle( style, wrapperSelector );\n\t\ttransformStylesCache.set( style, transformedStyle );\n\t\treturn transformedStyle;\n\t} );\n};\n\nexport default transformStyles;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA0C,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAL1C;AACA;AACA;;AAKA,MAAMY,oBAAoB,GAAG,IAAInB,OAAO,CAAC,CAAC;AAE1C,SAASoB,cAAcA,CACtB;EAAEC,GAAG;EAAEC,gBAAgB,GAAG,EAAE;EAAEC;AAAQ,CAAC,EACvCC,eAAe,GAAG,EAAE,EACnB;EACD;EACA;EACA;EACA;EACA,IAAK,CAAEA,eAAe,IAAI,CAAED,OAAO,EAAG;IACrC,OAAOF,GAAG;EACX;EAEA,MAAMI,kBAAkB,GAAGJ,GAAG,CAACK,OAAO,CAAE,cAAc,EAAE,MAAO,CAAC;EAChE,IAAI;IACH,OAAO,IAAAC,gBAAO,EACb,CACCH,eAAe,IACd,IAAAI,0BAAI,EAAEJ,eAAe,EAAE;MACtBF,gBAAgB,EAAE,CACjB,GAAGA,gBAAgB,EACnBE,eAAe;IAEjB,CAAE,CAAC,EACJD,OAAO,IAAI,IAAAM,yBAAS,EAAE;MAAEC,OAAO,EAAEP;IAAQ,CAAE,CAAC,CAC5C,CAACQ,MAAM,CAAEC,OAAQ,CACnB,CAAC,CAACC,OAAO,CAAER,kBAAkB,EAAE,CAAC,CAAE,CAAC,CAACJ,GAAG,CAAC,CAAC;EAC1C,CAAC,CAAC,OAAQa,KAAK,EAAG;IACjB,IAAKA,KAAK,YAAYC,uBAAc,EAAG;MACtC;MACAC,OAAO,CAACC,IAAI,CACX,yDAAyD,EACzDH,KAAK,CAACI,OAAO,GAAG,IAAI,GAAGJ,KAAK,CAACK,cAAc,CAAE,KAAM,CACpD,CAAC;IACF,CAAC,MAAM;MACN;MACAH,OAAO,CAACC,IAAI,CACX,yDAAyD,EACzDH,KACD,CAAC;IACF;IAEA,OAAO,IAAI;EACZ;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,eAAe,GAAGA,CAAEC,MAAM,EAAEjB,eAAe,GAAG,EAAE,KAAM;EAC3D,OAAOiB,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAC/B,IAAKxB,oBAAoB,CAACd,GAAG,CAAEsC,KAAM,CAAC,EAAG;MACxC,OAAOxB,oBAAoB,CAACb,GAAG,CAAEqC,KAAM,CAAC;IACzC;IAEA,MAAMC,gBAAgB,GAAGxB,cAAc,CAAEuB,KAAK,EAAEnB,eAAgB,CAAC;IACjEL,oBAAoB,CAACD,GAAG,CAAEyB,KAAK,EAAEC,gBAAiB,CAAC;IACnD,OAAOA,gBAAgB;EACxB,CAAE,CAAC;AACJ,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA1C,OAAA,GAEaoC,eAAe"}
@@ -97,7 +97,7 @@ function BlockListBlock({
97
97
  const {
98
98
  removeBlock
99
99
  } = useDispatch(blockEditorStore);
100
- const onRemove = useCallback(() => removeBlock(clientId), [clientId]);
100
+ const onRemove = useCallback(() => removeBlock(clientId), [clientId, removeBlock]);
101
101
  const parentLayout = useLayout() || {};
102
102
 
103
103
  // We wrap the BlockEdit component in a div that hides it when editing in
@@ -182,6 +182,11 @@ function BlockListBlock({
182
182
  // We set a new context with the adjusted and filtered wrapperProps (through
183
183
  // `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have
184
184
  // access to.
185
+ // Note that the context value doesn't have to be memoized in this case
186
+ // because when it changes, this component will be re-rendered anyway, and
187
+ // none of the consumers (BlockListBlock and useBlockProps) are memoized or
188
+ // "pure". This is different from the public BlockEditContext, where
189
+ // consumers might be memoized or "pure".
185
190
  return createElement(PrivateBlockContext.Provider, {
186
191
  value: {
187
192
  wrapperProps: restWrapperProps,
@@ -342,8 +347,11 @@ const applyWithDispatch = withDispatch((dispatch, ownProps, registry) => {
342
347
  }
343
348
  }
344
349
  moveFirstItemUp(rootClientId);
345
- } else {
346
- removeBlock(clientId);
350
+ } else if (getBlockName(clientId) !== getDefaultBlockName()) {
351
+ const replacement = switchToBlockType(getBlock(clientId), getDefaultBlockName());
352
+ if (replacement && replacement.length) {
353
+ replaceBlocks(clientId, replacement);
354
+ }
347
355
  }
348
356
  }
349
357
  },
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","memo","useCallback","RawHTML","useContext","useMemo","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","store","blocksStore","withFilters","withDispatch","useDispatch","useSelect","compose","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","createElement","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","_isSelected","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","templateLock","isTemporarilyEditingAsBlocks","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","defaultClassName","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\n\t);\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\n\t\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\n\t\t\t\tisBlockMovingMode: !! movingClientId,\n\t\t\t\tcanInsertMovingBlock:\n\t\t\t\t\tmovingClientId &&\n\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\tgetBlockName( movingClientId ),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","memo","useCallback","RawHTML","useContext","useMemo","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","store","blocksStore","withFilters","withDispatch","useDispatch","useSelect","compose","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","createElement","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","_isSelected","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","templateLock","isTemporarilyEditingAsBlocks","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","defaultClassName","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\n\t);\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else if (\n\t\t\t\t\tgetBlockName( clientId ) !== getDefaultBlockName()\n\t\t\t\t) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\n\t\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\n\t\t\t\tisBlockMovingMode: !! movingClientId,\n\t\t\t\tcanInsertMovingBlock:\n\t\t\t\t\tmovingClientId &&\n\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\tgetBlockName( movingClientId ),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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"}
@@ -57,6 +57,9 @@ const BlockMoverButton = forwardRef(({
57
57
  const instanceId = useInstanceId(BlockMoverButton);
58
58
  const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
59
59
  const blocksCount = normalizedClientIds.length;
60
+ const {
61
+ disabled
62
+ } = props;
60
63
  const {
61
64
  blockType,
62
65
  isDisabled,
@@ -86,7 +89,7 @@ const BlockMoverButton = forwardRef(({
86
89
  } = getBlockListSettings(blockRootClientId) || {};
87
90
  return {
88
91
  blockType: block ? getBlockType(block.name) : null,
89
- isDisabled: direction === 'up' ? isFirstBlock : isLastBlock,
92
+ isDisabled: disabled || (direction === 'up' ? isFirstBlock : isLastBlock),
90
93
  rootClientId: blockRootClientId,
91
94
  firstIndex: firstBlockIndex,
92
95
  isFirst: isFirstBlock,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","clientIds","moverOrientation","props","ref","instanceId","normalizedClientIds","Array","isArray","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","createElement","Fragment","className","icon","label","disabled","__experimentalIsFocusable","id","title","BlockMoverUpButton","BlockMoverDownButton"],"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst blocksCount = normalizedClientIds.length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } =\n\t\t\tuseDispatch( blockEditorStore );\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","clientIds","moverOrientation","props","ref","instanceId","normalizedClientIds","Array","isArray","blocksCount","length","disabled","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","createElement","Fragment","className","icon","label","__experimentalIsFocusable","id","title","BlockMoverUpButton","BlockMoverDownButton"],"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst blocksCount = normalizedClientIds.length;\n\t\tconst { disabled } = props;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled:\n\t\t\t\t\t\tdisabled ||\n\t\t\t\t\t\t( direction === 'up' ? isFirstBlock : isLastBlock ),\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } =\n\t\t\tuseDispatch( blockEditorStore );\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"],"mappings":"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"}
@@ -21,7 +21,9 @@ import { BlockMoverUpButton, BlockMoverDownButton } from './button';
21
21
  import { store as blockEditorStore } from '../../store';
22
22
  function BlockMover({
23
23
  clientIds,
24
- hideDragHandle
24
+ hideDragHandle,
25
+ isBlockMoverUpButtonDisabled,
26
+ isBlockMoverDownButtonDisabled
25
27
  }) {
26
28
  const {
27
29
  canMove,
@@ -75,9 +77,11 @@ function BlockMover({
75
77
  })), createElement("div", {
76
78
  className: "block-editor-block-mover__move-button-container"
77
79
  }, createElement(ToolbarItem, null, itemProps => createElement(BlockMoverUpButton, {
80
+ disabled: isBlockMoverUpButtonDisabled,
78
81
  clientIds: clientIds,
79
82
  ...itemProps
80
83
  })), createElement(ToolbarItem, null, itemProps => createElement(BlockMoverDownButton, {
84
+ disabled: isBlockMoverDownButtonDisabled,
81
85
  clientIds: clientIds,
82
86
  ...itemProps
83
87
  }))));
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","clientIds","hideDragHandle","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","createElement","className","fadeWhenDisabled","draggableProps","icon","label","tabIndex","itemProps"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( { clientIds, hideDragHandle } ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, _rootClientId ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\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// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;;AAEA,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,EAAEC,WAAW,EAAEC,MAAM,QAAQ,uBAAuB;AACzE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,SAASC,kBAAkB,EAAEC,oBAAoB,QAAQ,UAAU;AACnE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAEvD,SAASC,UAAUA,CAAE;EAAEC,SAAS;EAAEC;AAAe,CAAC,EAAG;EACpD,MAAM;IAAEC,OAAO;IAAEC,YAAY;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAGd,SAAS,CACtEe,MAAM,IAAM;IACb,MAAM;MACLC,aAAa;MACbC,oBAAoB;MACpBC,aAAa;MACbC,aAAa;MACbC;IACD,CAAC,GAAGL,MAAM,CAAET,gBAAiB,CAAC;IAC9B,MAAMe,mBAAmB,GAAGC,KAAK,CAACC,OAAO,CAAEf,SAAU,CAAC,GACnDA,SAAS,GACT,CAAEA,SAAS,CAAE;IAChB,MAAMgB,aAAa,GAAGH,mBAAmB,CAAE,CAAC,CAAE;IAC9C,MAAMI,aAAa,GAAGL,oBAAoB,CAAEI,aAAc,CAAC;IAC3D,MAAME,UAAU,GAAGV,aAAa,CAAEQ,aAAc,CAAC;IACjD,MAAMG,SAAS,GAAGX,aAAa,CAC9BK,mBAAmB,CAAEA,mBAAmB,CAACO,MAAM,GAAG,CAAC,CACpD,CAAC;IACD,MAAMC,UAAU,GAAGV,aAAa,CAAEM,aAAc,CAAC;IAEjD,OAAO;MACNf,OAAO,EAAEQ,aAAa,CAAEV,SAAS,EAAEiB,aAAc,CAAC;MAClDd,YAAY,EAAEc,aAAa;MAC3Bb,OAAO,EAAEc,UAAU,KAAK,CAAC;MACzBb,MAAM,EAAEc,SAAS,KAAKE,UAAU,CAACD,MAAM,GAAG,CAAC;MAC3Cd,WAAW,EAAEG,oBAAoB,CAAEQ,aAAc,CAAC,EAAEX;IACrD,CAAC;EACF,CAAC,EACD,CAAEN,SAAS,CACZ,CAAC;EAED,IAAK,CAAEE,OAAO,IAAME,OAAO,IAAIC,MAAM,IAAI,CAAEF,YAAc,EAAG;IAC3D,OAAO,IAAI;EACZ;EAEA,MAAMmB,eAAe,GAAG7B,EAAE,CAAE,MAAO,CAAC;EAEpC,OACC8B,aAAA,CAAClC,YAAY;IACZmC,SAAS,EAAGrC,UAAU,CAAE,0BAA0B,EAAE;MACnD,eAAe,EAAEmB,WAAW,KAAK;IAClC,CAAE;EAAG,GAEH,CAAEL,cAAc,IACjBsB,aAAA,CAAC7B,cAAc;IAACM,SAAS,EAAGA,SAAW;IAACyB,gBAAgB;EAAA,GACnDC,cAAc,IACjBH,aAAA,CAAChC,MAAM;IACNoC,IAAI,EAAGvC,UAAY;IACnBoC,SAAS,EAAC,uCAAuC;IACjD,eAAY,MAAM;IAClBI,KAAK,EAAGN;IACR;IACA;IAAA;IACAO,QAAQ,EAAC,IAAI;IAAA,GACRH;EAAc,CACnB,CAEa,CAChB,EACDH,aAAA;IAAKC,SAAS,EAAC;EAAiD,GAC/DD,aAAA,CAACjC,WAAW,QACPwC,SAAS,IACZP,aAAA,CAAC5B,kBAAkB;IAClBK,SAAS,EAAGA,SAAW;IAAA,GAClB8B;EAAS,CACd,CAEU,CAAC,EACdP,aAAA,CAACjC,WAAW,QACPwC,SAAS,IACZP,aAAA,CAAC3B,oBAAoB;IACpBI,SAAS,EAAGA,SAAW;IAAA,GAClB8B;EAAS,CACd,CAEU,CACT,CACQ,CAAC;AAEjB;;AAEA;AACA;AACA;AACA,eAAe/B,UAAU"}
1
+ {"version":3,"names":["classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","createElement","className","fadeWhenDisabled","draggableProps","icon","label","tabIndex","itemProps","disabled"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, _rootClientId ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\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// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tdisabled={ isBlockMoverUpButtonDisabled }\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tdisabled={ isBlockMoverDownButtonDisabled }\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":"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"}
@@ -44,6 +44,7 @@ function BlockPattern({
44
44
  pattern,
45
45
  onClick,
46
46
  onHover,
47
+ showTitle = true,
47
48
  showTooltip
48
49
  }) {
49
50
  const [isDragging, setIsDragging] = useState(false);
@@ -104,7 +105,7 @@ function BlockPattern({
104
105
  }, createElement(BlockPreview, {
105
106
  blocks: blocks,
106
107
  viewportWidth: viewportWidth
107
- }), createElement(HStack, {
108
+ }), showTitle && createElement(HStack, {
108
109
  className: "block-editor-patterns__pattern-details"
109
110
  }, pattern.type === INSERTER_PATTERN_TYPES.user && !pattern.syncStatus && createElement("div", {
110
111
  className: "block-editor-patterns__pattern-icon-wrapper"
@@ -130,6 +131,7 @@ function BlockPatternsList({
130
131
  onClickPattern,
131
132
  orientation,
132
133
  label = __('Block patterns'),
134
+ showTitle = true,
133
135
  showTitlesAsTooltip,
134
136
  pagingProps
135
137
  }, ref) {
@@ -160,6 +162,7 @@ function BlockPatternsList({
160
162
  onClick: onClickPattern,
161
163
  onHover: onHover,
162
164
  isDraggable: isDraggable,
165
+ showTitle: showTitle,
163
166
  showTooltip: showTitlesAsTooltip
164
167
  }) : createElement(BlockPatternPlaceholder, {
165
168
  key: pattern.name
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useEffect","useState","forwardRef","VisuallyHidden","Tooltip","privateApis","componentsPrivateApis","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","unlock","BlockPreview","InserterDraggableBlocks","BlockPatternsPaging","INSERTER_PATTERN_TYPES","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","WithToolTip","showTooltip","title","children","createElement","text","Fragment","BlockPattern","id","isDraggable","pattern","onClick","onHover","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isEnabled","draggable","onDragStart","onDragEnd","className","event","type","user","render","role","description","undefined","syncStatus","onMouseEnter","onMouseLeave","icon","BlockPatternPlaceholder","BlockPatternsList","blockPatterns","shownPatterns","onClickPattern","orientation","label","showTitlesAsTooltip","pagingProps","ref","compositeStore","setActiveId","store","map","isShown","includes","key","name"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, forwardRef } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\tTooltip,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\nimport BlockPatternsPaging from '../block-patterns-paging';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\nconst WithToolTip = ( { showTooltip, title, children } ) => {\n\tif ( showTooltip ) {\n\t\treturn <Tooltip text={ title }>{ children }</Tooltip>;\n\t}\n\treturn <>{ children }</>;\n};\n\nfunction BlockPattern( {\n\tid,\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tpattern={ pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={\n\t\t\t\t\t\t\tshowTooltip &&\n\t\t\t\t\t\t\t! pattern.type !== INSERTER_PATTERN_TYPES.user\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\tpattern.description\n\t\t\t\t\t\t\t\t\t\t\t? descriptionId\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__list-item-synced':\n\t\t\t\t\t\t\t\t\t\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t\t\t\t! pattern.syncStatus,\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}\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClick( pattern, blocks );\n\t\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\t\tif ( isDragging ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonHover?.( pattern );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseLeave={ () => onHover?.( null ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack className=\"block-editor-patterns__pattern-details\">\n\t\t\t\t\t\t\t\t{ pattern.type ===\n\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t! pattern.syncStatus && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-patterns__pattern-icon-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ( ! showTooltip ||\n\t\t\t\t\t\t\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user ) && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternsList(\n\t{\n\t\tisDraggable,\n\t\tblockPatterns,\n\t\tshownPatterns,\n\t\tonHover,\n\t\tonClickPattern,\n\t\torientation,\n\t\tlabel = __( 'Block patterns' ),\n\t\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\n) {\n\tconst compositeStore = useCompositeStore( { orientation } );\n\tconst { setActiveId } = compositeStore;\n\n\tuseEffect( () => {\n\t\t// We reset the active composite item whenever the\n\t\t// available patterns change, to make sure that\n\t\t// focus is put back to the start.\n\t\tsetActiveId( undefined );\n\t}, [ setActiveId, shownPatterns, blockPatterns ] );\n\n\treturn (\n\t\t<Composite\n\t\t\tstore={ compositeStore }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tid={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternsList );\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useEffect","useState","forwardRef","VisuallyHidden","Tooltip","privateApis","componentsPrivateApis","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","unlock","BlockPreview","InserterDraggableBlocks","BlockPatternsPaging","INSERTER_PATTERN_TYPES","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","WithToolTip","showTooltip","title","children","createElement","text","Fragment","BlockPattern","id","isDraggable","pattern","onClick","onHover","showTitle","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isEnabled","draggable","onDragStart","onDragEnd","className","event","type","user","render","role","description","undefined","syncStatus","onMouseEnter","onMouseLeave","icon","BlockPatternPlaceholder","BlockPatternsList","blockPatterns","shownPatterns","onClickPattern","orientation","label","showTitlesAsTooltip","pagingProps","ref","compositeStore","setActiveId","store","map","isShown","includes","key","name"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, forwardRef } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\tTooltip,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\nimport BlockPatternsPaging from '../block-patterns-paging';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\nconst WithToolTip = ( { showTooltip, title, children } ) => {\n\tif ( showTooltip ) {\n\t\treturn <Tooltip text={ title }>{ children }</Tooltip>;\n\t}\n\treturn <>{ children }</>;\n};\n\nfunction BlockPattern( {\n\tid,\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tshowTitle = true,\n\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tpattern={ pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={\n\t\t\t\t\t\t\tshowTooltip &&\n\t\t\t\t\t\t\t! pattern.type !== INSERTER_PATTERN_TYPES.user\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\tpattern.description\n\t\t\t\t\t\t\t\t\t\t\t? descriptionId\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__list-item-synced':\n\t\t\t\t\t\t\t\t\t\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t\t\t\t! pattern.syncStatus,\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}\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClick( pattern, blocks );\n\t\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\t\tif ( isDragging ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonHover?.( pattern );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseLeave={ () => onHover?.( null ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t\t\t<HStack className=\"block-editor-patterns__pattern-details\">\n\t\t\t\t\t\t\t\t\t{ pattern.type ===\n\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t\t! pattern.syncStatus && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-patterns__pattern-icon-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( ! showTooltip ||\n\t\t\t\t\t\t\t\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user ) && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternsList(\n\t{\n\t\tisDraggable,\n\t\tblockPatterns,\n\t\tshownPatterns,\n\t\tonHover,\n\t\tonClickPattern,\n\t\torientation,\n\t\tlabel = __( 'Block patterns' ),\n\t\tshowTitle = true,\n\t\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\n) {\n\tconst compositeStore = useCompositeStore( { orientation } );\n\tconst { setActiveId } = compositeStore;\n\n\tuseEffect( () => {\n\t\t// We reset the active composite item whenever the\n\t\t// available patterns change, to make sure that\n\t\t// focus is put back to the start.\n\t\tsetActiveId( undefined );\n\t}, [ setActiveId, shownPatterns, blockPatterns ] );\n\n\treturn (\n\t\t<Composite\n\t\t\tstore={ compositeStore }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tid={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tshowTitle={ showTitle }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternsList );\n"],"mappings":"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"}