@wordpress/block-editor 12.1.0 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/autocompleters/block.js +13 -5
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/components/block-breadcrumb/index.js +6 -3
  5. package/build/components/block-breadcrumb/index.js.map +1 -1
  6. package/build/components/block-editing-mode/index.js +84 -0
  7. package/build/components/block-editing-mode/index.js.map +1 -0
  8. package/build/components/block-list/block-list-block-context.js +15 -0
  9. package/build/components/block-list/block-list-block-context.js.map +1 -0
  10. package/build/components/block-list/block.js +29 -37
  11. package/build/components/block-list/block.js.map +1 -1
  12. package/build/components/block-list/block.native.js +14 -22
  13. package/build/components/block-list/block.native.js.map +1 -1
  14. package/build/components/block-list/index.native.js +107 -108
  15. package/build/components/block-list/index.native.js.map +1 -1
  16. package/build/components/block-list/use-block-props/index.js +2 -2
  17. package/build/components/block-list/use-block-props/index.js.map +1 -1
  18. package/build/components/block-list/use-in-between-inserter.js +7 -5
  19. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  20. package/build/components/block-list-appender/index.js +15 -1
  21. package/build/components/block-list-appender/index.js.map +1 -1
  22. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  23. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  24. package/build/components/block-styles/preview-panel.js +1 -2
  25. package/build/components/block-styles/preview-panel.js.map +1 -1
  26. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  27. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  28. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  29. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  30. package/build/components/block-switcher/index.js +34 -12
  31. package/build/components/block-switcher/index.js.map +1 -1
  32. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  33. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  34. package/build/components/block-toolbar/index.js +9 -7
  35. package/build/components/block-toolbar/index.js.map +1 -1
  36. package/build/components/block-tools/block-contextual-toolbar.js +5 -3
  37. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  38. package/build/components/block-tools/insertion-point.js +11 -5
  39. package/build/components/block-tools/insertion-point.js.map +1 -1
  40. package/build/components/convert-to-group-buttons/index.js +7 -2
  41. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  42. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  43. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  44. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  45. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  46. package/build/components/global-styles/dimensions-panel.js +3 -2
  47. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  48. package/build/components/iframe/index.js +14 -7
  49. package/build/components/iframe/index.js.map +1 -1
  50. package/build/components/inner-blocks/index.js +2 -1
  51. package/build/components/inner-blocks/index.js.map +1 -1
  52. package/build/components/inner-blocks/index.native.js +7 -7
  53. package/build/components/inner-blocks/index.native.js.map +1 -1
  54. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  55. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  56. package/build/components/inserter/index.js +3 -7
  57. package/build/components/inserter/index.js.map +1 -1
  58. package/build/components/inserter/quick-inserter.js +2 -4
  59. package/build/components/inserter/quick-inserter.js.map +1 -1
  60. package/build/components/inserter/search-results.js +19 -6
  61. package/build/components/inserter/search-results.js.map +1 -1
  62. package/build/components/list-view/appender.js +6 -1
  63. package/build/components/list-view/appender.js.map +1 -1
  64. package/build/components/list-view/block-contents.js +4 -2
  65. package/build/components/list-view/block-contents.js.map +1 -1
  66. package/build/components/list-view/block.js +21 -25
  67. package/build/components/list-view/block.js.map +1 -1
  68. package/build/components/list-view/branch.js +1 -3
  69. package/build/components/list-view/branch.js.map +1 -1
  70. package/build/components/list-view/index.js +14 -7
  71. package/build/components/list-view/index.js.map +1 -1
  72. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  73. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  74. package/build/components/publish-date-time-picker/index.js +0 -2
  75. package/build/components/publish-date-time-picker/index.js.map +1 -1
  76. package/build/components/url-input/index.js +3 -0
  77. package/build/components/url-input/index.js.map +1 -1
  78. package/build/components/use-block-drop-zone/index.js +25 -15
  79. package/build/components/use-block-drop-zone/index.js.map +1 -1
  80. package/build/components/use-resize-canvas/index.js +8 -1
  81. package/build/components/use-resize-canvas/index.js.map +1 -1
  82. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  83. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  84. package/build/hooks/align.js +3 -7
  85. package/build/hooks/align.js.map +1 -1
  86. package/build/hooks/behaviors.js +115 -0
  87. package/build/hooks/behaviors.js.map +1 -0
  88. package/build/hooks/dimensions.js +0 -30
  89. package/build/hooks/dimensions.js.map +1 -1
  90. package/build/hooks/duotone.js +4 -8
  91. package/build/hooks/duotone.js.map +1 -1
  92. package/build/hooks/index.js +2 -0
  93. package/build/hooks/index.js.map +1 -1
  94. package/build/hooks/layout.js +8 -9
  95. package/build/hooks/layout.js.map +1 -1
  96. package/build/private-apis.js +4 -7
  97. package/build/private-apis.js.map +1 -1
  98. package/build/store/private-actions.js +46 -0
  99. package/build/store/private-actions.js.map +1 -1
  100. package/build/store/private-selectors.js +88 -0
  101. package/build/store/private-selectors.js.map +1 -1
  102. package/build/store/reducer.js +36 -1
  103. package/build/store/reducer.js.map +1 -1
  104. package/build/store/selectors.js +28 -18
  105. package/build/store/selectors.js.map +1 -1
  106. package/build/utils/order-inserter-block-items.js +41 -0
  107. package/build/utils/order-inserter-block-items.js.map +1 -0
  108. package/build-module/autocompleters/block.js +12 -5
  109. package/build-module/autocompleters/block.js.map +1 -1
  110. package/build-module/components/block-breadcrumb/index.js +5 -3
  111. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  112. package/build-module/components/block-editing-mode/index.js +72 -0
  113. package/build-module/components/block-editing-mode/index.js.map +1 -0
  114. package/build-module/components/block-list/block-list-block-context.js +6 -0
  115. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  116. package/build-module/components/block-list/block.js +26 -34
  117. package/build-module/components/block-list/block.js.map +1 -1
  118. package/build-module/components/block-list/block.native.js +14 -22
  119. package/build-module/components/block-list/block.native.js.map +1 -1
  120. package/build-module/components/block-list/index.native.js +108 -110
  121. package/build-module/components/block-list/index.native.js.map +1 -1
  122. package/build-module/components/block-list/use-block-props/index.js +1 -1
  123. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  124. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  125. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  126. package/build-module/components/block-list-appender/index.js +15 -1
  127. package/build-module/components/block-list-appender/index.js.map +1 -1
  128. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  129. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  130. package/build-module/components/block-styles/preview-panel.js +1 -2
  131. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  132. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  133. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  134. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  135. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  136. package/build-module/components/block-switcher/index.js +33 -12
  137. package/build-module/components/block-switcher/index.js.map +1 -1
  138. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  139. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  140. package/build-module/components/block-toolbar/index.js +8 -7
  141. package/build-module/components/block-toolbar/index.js.map +1 -1
  142. package/build-module/components/block-tools/block-contextual-toolbar.js +4 -3
  143. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  144. package/build-module/components/block-tools/insertion-point.js +11 -5
  145. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  146. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  147. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  148. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  149. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  150. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  151. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  152. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  153. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  154. package/build-module/components/iframe/index.js +15 -8
  155. package/build-module/components/iframe/index.js.map +1 -1
  156. package/build-module/components/inner-blocks/index.js +2 -1
  157. package/build-module/components/inner-blocks/index.js.map +1 -1
  158. package/build-module/components/inner-blocks/index.native.js +7 -6
  159. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  160. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  161. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  162. package/build-module/components/inserter/index.js +3 -7
  163. package/build-module/components/inserter/index.js.map +1 -1
  164. package/build-module/components/inserter/quick-inserter.js +2 -4
  165. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  166. package/build-module/components/inserter/search-results.js +16 -6
  167. package/build-module/components/inserter/search-results.js.map +1 -1
  168. package/build-module/components/list-view/appender.js +6 -2
  169. package/build-module/components/list-view/appender.js.map +1 -1
  170. package/build-module/components/list-view/block-contents.js +4 -2
  171. package/build-module/components/list-view/block-contents.js.map +1 -1
  172. package/build-module/components/list-view/block.js +20 -25
  173. package/build-module/components/list-view/block.js.map +1 -1
  174. package/build-module/components/list-view/branch.js +1 -3
  175. package/build-module/components/list-view/branch.js.map +1 -1
  176. package/build-module/components/list-view/index.js +15 -8
  177. package/build-module/components/list-view/index.js.map +1 -1
  178. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  179. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  180. package/build-module/components/publish-date-time-picker/index.js +0 -2
  181. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  182. package/build-module/components/url-input/index.js +3 -0
  183. package/build-module/components/url-input/index.js.map +1 -1
  184. package/build-module/components/use-block-drop-zone/index.js +25 -16
  185. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  186. package/build-module/components/use-resize-canvas/index.js +8 -1
  187. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  188. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  189. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  190. package/build-module/hooks/align.js +3 -6
  191. package/build-module/hooks/align.js.map +1 -1
  192. package/build-module/hooks/behaviors.js +97 -0
  193. package/build-module/hooks/behaviors.js.map +1 -0
  194. package/build-module/hooks/dimensions.js +0 -28
  195. package/build-module/hooks/dimensions.js.map +1 -1
  196. package/build-module/hooks/duotone.js +3 -6
  197. package/build-module/hooks/duotone.js.map +1 -1
  198. package/build-module/hooks/index.js +1 -0
  199. package/build-module/hooks/index.js.map +1 -1
  200. package/build-module/hooks/layout.js +7 -9
  201. package/build-module/hooks/layout.js.map +1 -1
  202. package/build-module/private-apis.js +3 -5
  203. package/build-module/private-apis.js.map +1 -1
  204. package/build-module/store/private-actions.js +42 -0
  205. package/build-module/store/private-actions.js.map +1 -1
  206. package/build-module/store/private-selectors.js +79 -0
  207. package/build-module/store/private-selectors.js.map +1 -1
  208. package/build-module/store/reducer.js +34 -1
  209. package/build-module/store/reducer.js.map +1 -1
  210. package/build-module/store/selectors.js +26 -17
  211. package/build-module/store/selectors.js.map +1 -1
  212. package/build-module/utils/order-inserter-block-items.js +32 -0
  213. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  214. package/build-style/content-rtl.css +32 -13
  215. package/build-style/content.css +32 -13
  216. package/build-style/default-editor-styles-rtl.css +1 -1
  217. package/build-style/default-editor-styles.css +1 -1
  218. package/build-style/style-rtl.css +19 -64
  219. package/build-style/style.css +20 -64
  220. package/package.json +32 -31
  221. package/src/autocompleters/block.js +15 -7
  222. package/src/components/block-breadcrumb/index.js +11 -3
  223. package/src/components/block-editing-mode/index.js +71 -0
  224. package/src/components/block-list/block-list-block-context.js +6 -0
  225. package/src/components/block-list/block.js +38 -56
  226. package/src/components/block-list/block.native.js +30 -41
  227. package/src/components/block-list/content.scss +5 -5
  228. package/src/components/block-list/index.native.js +164 -153
  229. package/src/components/block-list/test/index.native.js +2 -2
  230. package/src/components/block-list/use-block-props/index.js +1 -1
  231. package/src/components/block-list/use-in-between-inserter.js +7 -3
  232. package/src/components/block-list-appender/index.js +22 -4
  233. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +23 -0
  234. package/src/components/block-mover/style.scss +1 -0
  235. package/src/components/block-styles/preview-panel.js +1 -3
  236. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  237. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  238. package/src/components/block-switcher/index.js +38 -5
  239. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  240. package/src/components/block-switcher/style.scss +6 -5
  241. package/src/components/block-toolbar/index.js +10 -11
  242. package/src/components/block-tools/block-contextual-toolbar.js +4 -5
  243. package/src/components/block-tools/insertion-point.js +23 -9
  244. package/src/components/button-block-appender/content.scss +22 -0
  245. package/src/components/convert-to-group-buttons/index.js +9 -2
  246. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  247. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  248. package/src/components/global-styles/dimensions-panel.js +3 -2
  249. package/src/components/global-styles/style.scss +3 -0
  250. package/src/components/iframe/index.js +22 -12
  251. package/src/components/inner-blocks/README.md +5 -0
  252. package/src/components/inner-blocks/index.js +2 -0
  253. package/src/components/inner-blocks/index.native.js +16 -6
  254. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  255. package/src/components/inserter/index.js +1 -9
  256. package/src/components/inserter/quick-inserter.js +0 -2
  257. package/src/components/inserter/search-results.js +32 -6
  258. package/src/components/list-view/appender.js +3 -2
  259. package/src/components/list-view/block-contents.js +8 -2
  260. package/src/components/list-view/block.js +29 -35
  261. package/src/components/list-view/branch.js +1 -7
  262. package/src/components/list-view/index.js +17 -4
  263. package/src/components/list-view/style.scss +2 -5
  264. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  265. package/src/components/publish-date-time-picker/index.js +0 -2
  266. package/src/components/url-input/README.md +6 -0
  267. package/src/components/url-input/index.js +1 -0
  268. package/src/components/use-block-drop-zone/index.js +31 -17
  269. package/src/components/use-resize-canvas/index.js +9 -1
  270. package/src/components/writing-flow/test/index.js +15 -0
  271. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  272. package/src/hooks/align.js +3 -11
  273. package/src/hooks/behaviors.js +104 -0
  274. package/src/hooks/dimensions.js +0 -40
  275. package/src/hooks/duotone.js +3 -11
  276. package/src/hooks/index.js +1 -0
  277. package/src/hooks/layout.js +10 -18
  278. package/src/private-apis.js +2 -4
  279. package/src/store/private-actions.js +39 -0
  280. package/src/store/private-selectors.js +95 -0
  281. package/src/store/reducer.js +27 -0
  282. package/src/store/selectors.js +25 -15
  283. package/src/store/test/private-actions.js +32 -1
  284. package/src/store/test/private-selectors.js +158 -0
  285. package/src/store/test/reducer.js +48 -0
  286. package/src/style.scss +0 -3
  287. package/src/utils/order-inserter-block-items.js +26 -0
  288. package/build/components/block-list/block-list-compact.native.js +0 -75
  289. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  290. package/build/components/off-canvas-editor/appender.js +0 -125
  291. package/build/components/off-canvas-editor/appender.js.map +0 -1
  292. package/build/components/off-canvas-editor/block-contents.js +0 -141
  293. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  294. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  295. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  296. package/build/components/off-canvas-editor/block.js +0 -297
  297. package/build/components/off-canvas-editor/block.js.map +0 -1
  298. package/build/components/off-canvas-editor/branch.js +0 -197
  299. package/build/components/off-canvas-editor/branch.js.map +0 -1
  300. package/build/components/off-canvas-editor/context.js +0 -19
  301. package/build/components/off-canvas-editor/context.js.map +0 -1
  302. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  303. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  304. package/build/components/off-canvas-editor/expander.js +0 -41
  305. package/build/components/off-canvas-editor/expander.js.map +0 -1
  306. package/build/components/off-canvas-editor/index.js +0 -236
  307. package/build/components/off-canvas-editor/index.js.map +0 -1
  308. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -148
  309. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  310. package/build/components/off-canvas-editor/leaf.js +0 -60
  311. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  312. package/build/components/off-canvas-editor/link-ui.js +0 -186
  313. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  314. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  315. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  316. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  317. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  318. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  319. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  320. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  321. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  322. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  323. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  324. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  325. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  326. package/build/components/off-canvas-editor/utils.js +0 -60
  327. package/build/components/off-canvas-editor/utils.js.map +0 -1
  328. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  329. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  330. package/build-module/components/off-canvas-editor/appender.js +0 -108
  331. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  332. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  333. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  334. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  335. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  336. package/build-module/components/off-canvas-editor/block.js +0 -273
  337. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  338. package/build-module/components/off-canvas-editor/branch.js +0 -179
  339. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  340. package/build-module/components/off-canvas-editor/context.js +0 -7
  341. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  342. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  343. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  344. package/build-module/components/off-canvas-editor/expander.js +0 -32
  345. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  346. package/build-module/components/off-canvas-editor/index.js +0 -213
  347. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  348. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -130
  349. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  350. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  351. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  352. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  353. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  354. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  355. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  356. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  357. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  358. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  359. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  360. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  361. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  362. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  363. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  364. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  365. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  366. package/build-module/components/off-canvas-editor/utils.js +0 -44
  367. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  368. package/src/components/block-list/block-list-compact.native.js +0 -63
  369. package/src/components/off-canvas-editor/README.md +0 -5
  370. package/src/components/off-canvas-editor/appender.js +0 -124
  371. package/src/components/off-canvas-editor/block-contents.js +0 -156
  372. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  373. package/src/components/off-canvas-editor/block.js +0 -347
  374. package/src/components/off-canvas-editor/branch.js +0 -238
  375. package/src/components/off-canvas-editor/context.js +0 -8
  376. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  377. package/src/components/off-canvas-editor/expander.js +0 -26
  378. package/src/components/off-canvas-editor/index.js +0 -271
  379. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -158
  380. package/src/components/off-canvas-editor/leaf.js +0 -52
  381. package/src/components/off-canvas-editor/link-ui.js +0 -167
  382. package/src/components/off-canvas-editor/style.scss +0 -34
  383. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  384. package/src/components/off-canvas-editor/test/utils.js +0 -50
  385. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  386. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  387. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  388. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  389. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  390. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  391. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -165,7 +165,6 @@ function BlockListBlock(_ref2) {
165
165
  blockType,
166
166
  draggingClientId,
167
167
  draggingEnabled,
168
- firstToSelectId,
169
168
  isDescendantOfParentSelected,
170
169
  isDescendentBlockSelected,
171
170
  isParentSelected,
@@ -178,7 +177,6 @@ function BlockListBlock(_ref2) {
178
177
  getBlockHierarchyRootClientId,
179
178
  getBlockIndex,
180
179
  getBlockParents,
181
- getLowestCommonAncestorWithSelectedBlock,
182
180
  getSelectedBlockClientId,
183
181
  getSettings,
184
182
  hasSelectedInnerBlock
@@ -192,10 +190,7 @@ function BlockListBlock(_ref2) {
192
190
  (selectedBlockClientId || false) && selectedBlockClientId === rootClientId;
193
191
  const selectedParents = clientId ? parents : [];
194
192
  const descendantOfParentSelected = selectedParents.includes(rootClientId);
195
- const hasInnerBlocks = getBlockCount(clientId) > 0;
196
- const commonAncestor = getLowestCommonAncestorWithSelectedBlock(clientId);
197
- const commonAncestorIndex = parents.indexOf(commonAncestor) - 1;
198
- const firstBlockToSelectId = commonAncestor ? parents[commonAncestorIndex] : parents[parents.length - 1]; // For blocks with inner blocks, we only enable the dragging in the nested
193
+ const hasInnerBlocks = getBlockCount(clientId) > 0; // For blocks with inner blocks, we only enable the dragging in the nested
199
194
  // blocks if any of them are selected. This way we prevent the long-press
200
195
  // gesture from being disabled for elements within the block UI.
201
196
 
@@ -209,7 +204,6 @@ function BlockListBlock(_ref2) {
209
204
  blockType: currentBlockType,
210
205
  draggingClientId: currentDraggingClientId,
211
206
  draggingEnabled: isDraggingEnabled,
212
- firstToSelectId: firstBlockToSelectId,
213
207
  isDescendantOfParentSelected: descendantOfParentSelected,
214
208
  isDescendentBlockSelected: descendentBlockSelected,
215
209
  isParentSelected: parentSelected,
@@ -228,12 +222,10 @@ function BlockListBlock(_ref2) {
228
222
  const fontSizes = (0, _useSetting.default)('typography.fontSizes') || emptyArray;
229
223
  const onRemove = (0, _element.useCallback)(() => removeBlock(clientId), [clientId, removeBlock]);
230
224
  const onFocus = (0, _element.useCallback)(() => {
231
- const blockId = firstToSelectId !== null && firstToSelectId !== void 0 ? firstToSelectId : clientId;
232
-
233
225
  if (!isSelected) {
234
- selectBlock(blockId);
226
+ selectBlock(clientId);
235
227
  }
236
- }, [selectBlock, clientId, firstToSelectId, isSelected]);
228
+ }, [selectBlock, clientId, isSelected]);
237
229
  const onLayout = (0, _element.useCallback)(_ref3 => {
238
230
  let {
239
231
  nativeEvent
@@ -448,22 +440,22 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, registry)
448
440
  if (blockOrder.length === 1 && (0, _blocks.isUnmodifiedBlock)(getBlock(firstClientId))) {
449
441
  removeBlock(_clientId);
450
442
  } else {
451
- if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) {
452
- moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId));
453
- } else {
454
- const replacement = (0, _blocks.switchToBlockType)(getBlock(firstClientId), (0, _blocks.getDefaultBlockName)());
443
+ registry.batch(() => {
444
+ if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) {
445
+ moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId));
446
+ } else {
447
+ const replacement = (0, _blocks.switchToBlockType)(getBlock(firstClientId), (0, _blocks.getDefaultBlockName)());
455
448
 
456
- if (replacement && replacement.length) {
457
- registry.batch(() => {
449
+ if (replacement && replacement.length) {
458
450
  insertBlocks(replacement, getBlockIndex(_clientId), targetRootClientId, changeSelection);
459
451
  removeBlock(firstClientId, false);
460
- });
452
+ }
461
453
  }
462
- }
463
454
 
464
- if (!getBlockOrder(_clientId).length && (0, _blocks.isUnmodifiedBlock)(getBlock(_clientId))) {
465
- removeBlock(_clientId, false);
466
- }
455
+ if (!getBlockOrder(_clientId).length && (0, _blocks.isUnmodifiedBlock)(getBlock(_clientId))) {
456
+ removeBlock(_clientId, false);
457
+ }
458
+ });
467
459
  }
468
460
  } // For `Delete` or forward merge, we should do the exact same thing
469
461
  // as `Backspace`, but from the other block.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","align","blockWidth","children","clientId","draggingClientId","draggingEnabled","isDescendentBlockSelected","isParentSelected","isSelected","isStackedHorizontally","isTouchable","marginHorizontal","marginVertical","onDeleteBlock","onFocus","width","screenWidth","anchorNodeRef","isFullWidth","alignmentHelpers","isScreenWidthEqual","isFullWidthToolbar","blockWrapperStyles","flex","blockWrapperStyle","accessible","styles","neutralToolbar","current","BlockListBlock","attributes","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isValid","name","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","firstToSelectId","isDescendantOfParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getLowestCommonAncestorWithSelectedBlock","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","blockEditorStore","currentBlockType","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","hasInnerBlocks","commonAncestor","commonAncestorIndex","indexOf","firstBlockToSelectId","length","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","blockId","onLayout","nativeEvent","layoutWidth","Math","floor","layout","getEditWrapperProps","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","undefined","keys","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","replacement","batch","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled","pure"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, useWindowDimensions, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useRef, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport BlockOutline from './block-outline';\nimport styles from './block.scss';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\talign,\n\tblockWidth,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\tisDescendentBlockSelected,\n\tisParentSelected,\n\tisSelected,\n\tisStackedHorizontally,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tonDeleteBlock,\n\tonFocus,\n} ) {\n\tconst { width: screenWidth } = useWindowDimensions();\n\tconst anchorNodeRef = useRef();\n\tconst { isFullWidth } = alignmentHelpers;\n\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisParentSelected={ isParentSelected }\n\t\t\t\tscreenWidth={ screenWidth }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t\t<View style={ styles.neutralToolbar } ref={ anchorNodeRef }>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\tanchorNodeRef={ anchorNodeRef.current }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\tfirstToSelectId,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\tconst commonAncestor =\n\t\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\t\tconst firstBlockToSelectId = commonAncestor\n\t\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t\t: parents[ parents.length - 1 ];\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! hasInnerBlocks || isSelected || ! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\tfirstToSelectId: firstBlockToSelectId,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tconst blockId = firstToSelectId ?? clientId;\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( blockId );\n\t\t}\n\t}, [ selectBlock, clientId, firstToSelectId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst { align } = attributes;\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\talign={ align }\n\t\t\tblockWidth={ blockWidth }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\tisFocused={ isFocused }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisParentSelected={ isParentSelected }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\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\tif (\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\tregistry.batch( () => {\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\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveBlock( _clientId, false );\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}\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\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\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\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","align","blockWidth","children","clientId","draggingClientId","draggingEnabled","isDescendentBlockSelected","isParentSelected","isSelected","isStackedHorizontally","isTouchable","marginHorizontal","marginVertical","onDeleteBlock","onFocus","width","screenWidth","anchorNodeRef","isFullWidth","alignmentHelpers","isScreenWidthEqual","isFullWidthToolbar","blockWrapperStyles","flex","blockWrapperStyle","accessible","styles","neutralToolbar","current","BlockListBlock","attributes","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isValid","name","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","blockEditorStore","currentBlockType","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","hasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","getEditWrapperProps","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","undefined","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled","pure"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, useWindowDimensions, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useRef, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport BlockOutline from './block-outline';\nimport styles from './block.scss';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\talign,\n\tblockWidth,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\tisDescendentBlockSelected,\n\tisParentSelected,\n\tisSelected,\n\tisStackedHorizontally,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tonDeleteBlock,\n\tonFocus,\n} ) {\n\tconst { width: screenWidth } = useWindowDimensions();\n\tconst anchorNodeRef = useRef();\n\tconst { isFullWidth } = alignmentHelpers;\n\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisParentSelected={ isParentSelected }\n\t\t\t\tscreenWidth={ screenWidth }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t\t<View style={ styles.neutralToolbar } ref={ anchorNodeRef }>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\tanchorNodeRef={ anchorNodeRef.current }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! hasInnerBlocks || isSelected || ! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst { align } = attributes;\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\talign={ align }\n\t\t\tblockWidth={ blockWidth }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\tisFocused={ isFocused }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisParentSelected={ isParentSelected }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\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}\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\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\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\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"]}
@@ -33,6 +33,8 @@ var _blockListContext = require("./block-list-context");
33
33
 
34
34
  var _blockDraggable = require("../block-draggable");
35
35
 
36
+ var _useEditorWrapperStyles = require("../../hooks/use-editor-wrapper-styles");
37
+
36
38
  var _store = require("../../store");
37
39
 
38
40
  /**
@@ -50,11 +52,7 @@ const identity = x => x;
50
52
 
51
53
  const stylesMemo = {};
52
54
 
53
- const getStyles = (isRootList, isStackedHorizontally, horizontalAlignment) => {
54
- if (isRootList) {
55
- return;
56
- }
57
-
55
+ const getStyles = (isStackedHorizontally, horizontalAlignment) => {
58
56
  const styleName = `${isStackedHorizontally}-${horizontalAlignment}`;
59
57
 
60
58
  if (stylesMemo[styleName]) {
@@ -85,7 +83,6 @@ function BlockList(_ref) {
85
83
  renderAppender,
86
84
  renderFooterAppender,
87
85
  rootClientId,
88
- title,
89
86
  withFooter = true
90
87
  } = _ref;
91
88
  const {
@@ -187,84 +184,6 @@ function BlockList(_ref) {
187
184
  }
188
185
  };
189
186
 
190
- const renderList = function () {
191
- let extraProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
192
- const {
193
- parentScrollRef,
194
- onScroll
195
- } = extraProps;
196
- const {
197
- blockToolbar,
198
- headerToolbar,
199
- floatingToolbar
200
- } = _style.default;
201
- const containerStyle = {
202
- flex: isRootList ? 1 : 0,
203
- // We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.
204
- marginVertical: isRootList ? 0 : -marginVertical,
205
- marginHorizontal: isRootList ? 0 : -marginHorizontal
206
- };
207
- const isContentStretch = contentResizeMode === 'stretch';
208
- const isMultiBlocks = blockClientIds.length > 1;
209
- const {
210
- isWider
211
- } = _components.alignmentHelpers;
212
- const extraScrollHeight = headerToolbar.height + blockToolbar.height + (isFloatingToolbarVisible ? floatingToolbar.height : 0);
213
- const scrollViewStyle = [{
214
- flex: isRootList ? 1 : 0
215
- }, !isRootList && _style.default.overflowVisible];
216
- return (0, _element.createElement)(_reactNative.View, {
217
- style: containerStyle,
218
- onAccessibilityEscape: clearSelectedBlock,
219
- onLayout: onLayout,
220
- testID: "block-list-wrapper"
221
- }, (0, _element.createElement)(_components.KeyboardAwareFlatList, (0, _extends2.default)({}, _reactNative.Platform.OS === 'android' ? {
222
- removeClippedSubviews: false
223
- } : {}, {
224
- // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541
225
- accessibilityLabel: "block-list",
226
- innerRef: ref => {
227
- scrollViewRef.current = parentScrollRef || ref;
228
- },
229
- extraScrollHeight: extraScrollHeight,
230
- keyboardShouldPersistTaps: "always",
231
- scrollViewStyle: scrollViewStyle,
232
- extraData: getExtraData(),
233
- scrollEnabled: isRootList,
234
- contentContainerStyle: [horizontal && _style.default.horizontalContentContainer, isWider(blockWidth, 'medium') && (isContentStretch && isMultiBlocks ? _style.default.horizontalContentContainerStretch : _style.default.horizontalContentContainerCenter)],
235
- style: getStyles(isRootList, isStackedHorizontally, horizontalAlignment),
236
- data: blockClientIds,
237
- keyExtractor: identity,
238
- listKey: rootClientId ? `list-${rootClientId}` : 'list-root',
239
- renderItem: renderItem,
240
- CellRendererComponent: _blockListItemCell.default,
241
- shouldPreventAutomaticScroll: shouldFlatListPreventAutomaticScroll,
242
- title: title,
243
- ListHeaderComponent: header,
244
- ListEmptyComponent: !isReadOnly && (0, _element.createElement)(EmptyList, {
245
- orientation: orientation,
246
- rootClientId: rootClientId,
247
- renderAppender: renderAppender,
248
- renderFooterAppender: renderFooterAppender
249
- }),
250
- ListFooterComponent: (0, _element.createElement)(Footer, {
251
- addBlockToEndOfPost: addBlockToEndOfPost,
252
- isReadOnly: isReadOnly,
253
- renderFooterAppender: renderFooterAppender,
254
- withFooter: withFooter
255
- }),
256
- onScroll: onScroll
257
- })), shouldShowInnerBlockAppender() && (0, _element.createElement)(_reactNative.View, {
258
- style: {
259
- marginHorizontal: marginHorizontal - _style.default.innerAppender.marginLeft
260
- }
261
- }, (0, _element.createElement)(_blockListAppender.default, {
262
- rootClientId: rootClientId,
263
- renderAppender: renderAppender,
264
- showSeparator: true
265
- })));
266
- };
267
-
268
187
  const renderItem = _ref3 => {
269
188
  let {
270
189
  item: clientId,
@@ -294,10 +213,31 @@ function BlockList(_ref) {
294
213
  blockWidth: blockWidth,
295
214
  isGridItem: isGridItem
296
215
  }, gridItemProps));
297
- }; // Use of Context to propagate the main scroll ref to its children e.g InnerBlocks.
298
-
216
+ };
299
217
 
300
- const blockList = isRootList ? (0, _element.createElement)(_blockListContext.BlockListProvider, {
218
+ const {
219
+ blockToolbar,
220
+ headerToolbar,
221
+ floatingToolbar
222
+ } = _style.default;
223
+ const containerStyle = {
224
+ flex: isRootList ? 1 : 0,
225
+ // We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.
226
+ marginVertical: isRootList ? 0 : -marginVertical,
227
+ marginHorizontal: isRootList ? 0 : -marginHorizontal
228
+ };
229
+ const isContentStretch = contentResizeMode === 'stretch';
230
+ const isMultiBlocks = blockClientIds.length > 1;
231
+ const {
232
+ isWider
233
+ } = _components.alignmentHelpers;
234
+ const extraScrollHeight = headerToolbar.height + blockToolbar.height + (isFloatingToolbarVisible ? floatingToolbar.height : 0);
235
+ return (0, _element.createElement)(_reactNative.View, {
236
+ style: containerStyle,
237
+ onAccessibilityEscape: clearSelectedBlock,
238
+ onLayout: onLayout,
239
+ testID: "block-list-wrapper"
240
+ }, isRootList ? (0, _element.createElement)(_blockListContext.BlockListProvider, {
301
241
  value: { ..._blockListContext.DEFAULT_BLOCK_LIST_CONTEXT,
302
242
  scrollRef: scrollViewRef.current
303
243
  }
@@ -307,27 +247,83 @@ function BlockList(_ref) {
307
247
  let {
308
248
  onScroll
309
249
  } = _ref4;
310
- return renderList({
311
- onScroll
312
- });
313
- })) : (0, _element.createElement)(_blockListContext.BlockListConsumer, null, _ref5 => {
314
- let {
315
- scrollRef
316
- } = _ref5;
317
- return renderList({
318
- parentScrollRef: scrollRef
319
- });
320
- });
321
- return blockList;
250
+ return (0, _element.createElement)(_components.KeyboardAwareFlatList, (0, _extends2.default)({}, _reactNative.Platform.OS === 'android' ? {
251
+ removeClippedSubviews: false
252
+ } : {}, {
253
+ // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541
254
+ accessibilityLabel: "block-list",
255
+ innerRef: ref => {
256
+ scrollViewRef.current = ref;
257
+ },
258
+ extraScrollHeight: extraScrollHeight,
259
+ keyboardShouldPersistTaps: "always",
260
+ scrollViewStyle: {
261
+ flex: 1
262
+ },
263
+ extraData: getExtraData(),
264
+ scrollEnabled: isRootList,
265
+ contentContainerStyle: [horizontal && _style.default.horizontalContentContainer, isWider(blockWidth, 'medium') && (isContentStretch && isMultiBlocks ? _style.default.horizontalContentContainerStretch : _style.default.horizontalContentContainerCenter)],
266
+ data: blockClientIds,
267
+ keyExtractor: identity,
268
+ renderItem: renderItem,
269
+ CellRendererComponent: _blockListItemCell.default,
270
+ shouldPreventAutomaticScroll: shouldFlatListPreventAutomaticScroll,
271
+ ListHeaderComponent: header,
272
+ ListEmptyComponent: !isReadOnly && (0, _element.createElement)(EmptyList, {
273
+ orientation: orientation,
274
+ rootClientId: rootClientId,
275
+ renderAppender: renderAppender,
276
+ renderFooterAppender: renderFooterAppender
277
+ }),
278
+ ListFooterComponent: (0, _element.createElement)(Footer, {
279
+ addBlockToEndOfPost: addBlockToEndOfPost,
280
+ isReadOnly: isReadOnly,
281
+ renderFooterAppender: renderFooterAppender,
282
+ withFooter: withFooter
283
+ }),
284
+ onScroll: onScroll
285
+ }));
286
+ })) : (0, _element.createElement)(_element.Fragment, null, blockClientIds.length > 0 ? (0, _element.createElement)(_reactNative.View, {
287
+ style: [{
288
+ flex: 0
289
+ }, _style.default.overflowVisible]
290
+ }, (0, _element.createElement)(_reactNative.View, {
291
+ style: [...getStyles(isStackedHorizontally, horizontalAlignment), horizontal && _style.default.horizontalContentContainer]
292
+ }, blockClientIds.map((currentClientId, index) => {
293
+ return (0, _element.createElement)(_reactNative.View, {
294
+ key: currentClientId
295
+ }, renderItem({
296
+ item: currentClientId,
297
+ index
298
+ }));
299
+ }), (0, _element.createElement)(Footer, {
300
+ addBlockToEndOfPost: addBlockToEndOfPost,
301
+ isReadOnly: isReadOnly,
302
+ renderFooterAppender: renderFooterAppender,
303
+ withFooter: withFooter
304
+ }))) : (0, _element.createElement)(EmptyList, {
305
+ orientation: orientation,
306
+ rootClientId: rootClientId,
307
+ renderAppender: renderAppender,
308
+ renderFooterAppender: renderFooterAppender
309
+ })), shouldShowInnerBlockAppender() && (0, _element.createElement)(_reactNative.View, {
310
+ style: {
311
+ marginHorizontal: marginHorizontal - _style.default.innerAppender.marginLeft
312
+ }
313
+ }, (0, _element.createElement)(_blockListAppender.default, {
314
+ rootClientId: rootClientId,
315
+ renderAppender: renderAppender,
316
+ showSeparator: true
317
+ })));
322
318
  }
323
319
 
324
- function Footer(_ref6) {
320
+ function Footer(_ref5) {
325
321
  let {
326
322
  addBlockToEndOfPost,
327
323
  isReadOnly,
328
324
  renderFooterAppender,
329
325
  withFooter
330
- } = _ref6;
326
+ } = _ref5;
331
327
 
332
328
  if (!isReadOnly && withFooter) {
333
329
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_reactNative.TouchableWithoutFeedback, {
@@ -341,19 +337,19 @@ function Footer(_ref6) {
341
337
  style: _style.default.blockListFooter
342
338
  })));
343
339
  } else if (renderFooterAppender) {
344
- return renderFooterAppender();
340
+ return (0, _element.createElement)(_reactNative.View, null, renderFooterAppender());
345
341
  }
346
342
 
347
343
  return null;
348
344
  }
349
345
 
350
- function EmptyList(_ref7) {
346
+ function EmptyList(_ref6) {
351
347
  let {
352
348
  orientation,
353
349
  renderAppender,
354
350
  renderFooterAppender,
355
351
  rootClientId
356
- } = _ref7;
352
+ } = _ref6;
357
353
  const {
358
354
  shouldShowInsertionPoint
359
355
  } = (0, _data.useSelect)(select => {
@@ -372,19 +368,22 @@ function EmptyList(_ref7) {
372
368
  !blockClientIds[insertionPoint.index])
373
369
  };
374
370
  });
371
+ const align = renderAppender ? _components.WIDE_ALIGNMENTS.alignments.full : undefined;
372
+ const [wrapperStyles] = (0, _useEditorWrapperStyles.useEditorWrapperStyles)({
373
+ align
374
+ });
375
375
 
376
376
  if (renderFooterAppender || renderAppender === false) {
377
377
  return null;
378
378
  }
379
379
 
380
+ const containerStyles = [_style.default.defaultAppender, wrapperStyles];
380
381
  return (0, _element.createElement)(_reactNative.View, {
381
- style: _style.default.defaultAppender
382
- }, (0, _element.createElement)(_components.ReadableContentView, {
383
- align: renderAppender ? _components.WIDE_ALIGNMENTS.alignments.full : undefined
382
+ style: containerStyles
384
383
  }, (0, _element.createElement)(_blockListAppender.default, {
385
384
  rootClientId: rootClientId,
386
385
  renderAppender: renderAppender,
387
386
  showSeparator: shouldShowInsertionPoint
388
- })));
387
+ }));
389
388
  }
390
389
  //# sourceMappingURL=index.native.js.map