@wordpress/block-editor 12.0.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 (627) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +6 -3
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-controls/slot.js +12 -4
  8. package/build/components/block-controls/slot.js.map +1 -1
  9. package/build/components/block-controls/slot.native.js +10 -1
  10. package/build/components/block-controls/slot.native.js.map +1 -1
  11. package/build/components/block-draggable/index.js +11 -7
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-editing-mode/index.js +84 -0
  16. package/build/components/block-editing-mode/index.js.map +1 -0
  17. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  18. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  19. package/build/components/block-list/block-list-block-context.js +15 -0
  20. package/build/components/block-list/block-list-block-context.js.map +1 -0
  21. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  22. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +158 -195
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-outline.native.js +57 -0
  26. package/build/components/block-list/block-outline.native.js.map +1 -0
  27. package/build/components/block-list/block.js +29 -37
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +347 -311
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +260 -357
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/insertion-point.native.js +4 -2
  34. package/build/components/block-list/insertion-point.native.js.map +1 -1
  35. package/build/components/block-list/use-block-props/index.js +2 -2
  36. package/build/components/block-list/use-block-props/index.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +7 -5
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-list-appender/index.js +15 -1
  40. package/build/components/block-list-appender/index.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +15 -4
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/preview-panel.js +1 -2
  48. package/build/components/block-styles/preview-panel.js.map +1 -1
  49. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  50. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  51. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  52. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  53. package/build/components/block-switcher/index.js +34 -12
  54. package/build/components/block-switcher/index.js.map +1 -1
  55. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  56. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  57. package/build/components/block-toolbar/index.js +9 -7
  58. package/build/components/block-toolbar/index.js.map +1 -1
  59. package/build/components/block-tools/block-contextual-toolbar.js +22 -65
  60. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +11 -5
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/selected-block-popover.js +3 -8
  64. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  65. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  66. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  67. package/build/components/convert-to-group-buttons/index.js +7 -2
  68. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  69. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  70. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  71. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  72. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  73. package/build/components/global-styles/advanced-panel.js +86 -0
  74. package/build/components/global-styles/advanced-panel.js.map +1 -0
  75. package/build/components/global-styles/color-panel.js +4 -1
  76. package/build/components/global-styles/color-panel.js.map +1 -1
  77. package/build/components/global-styles/dimensions-panel.js +9 -8
  78. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  79. package/build/components/global-styles/hooks.js +1 -2
  80. package/build/components/global-styles/hooks.js.map +1 -1
  81. package/build/components/global-styles/index.js +24 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/typography-panel.js +1 -1
  84. package/build/components/global-styles/typography-panel.js.map +1 -1
  85. package/build/components/global-styles/use-global-styles-output.js +27 -4
  86. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  87. package/build/components/global-styles/utils.js +30 -0
  88. package/build/components/global-styles/utils.js.map +1 -1
  89. package/build/components/iframe/index.js +14 -7
  90. package/build/components/iframe/index.js.map +1 -1
  91. package/build/components/image-editor/use-save-image.js +24 -8
  92. package/build/components/image-editor/use-save-image.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +2 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/index.native.js +7 -7
  96. package/build/components/inner-blocks/index.native.js.map +1 -1
  97. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  98. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  99. package/build/components/inserter/index.js +3 -7
  100. package/build/components/inserter/index.js.map +1 -1
  101. package/build/components/inserter/quick-inserter.js +2 -4
  102. package/build/components/inserter/quick-inserter.js.map +1 -1
  103. package/build/components/inserter/search-results.js +19 -6
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter-draggable-blocks/index.js +5 -0
  106. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  107. package/build/components/inspector-controls/fill.js +1 -1
  108. package/build/components/inspector-controls/fill.js.map +1 -1
  109. package/build/components/inspector-controls/fill.native.js +1 -1
  110. package/build/components/inspector-controls/fill.native.js.map +1 -1
  111. package/build/components/inspector-controls/slot.js +3 -6
  112. package/build/components/inspector-controls/slot.js.map +1 -1
  113. package/build/components/inspector-controls/slot.native.js +1 -1
  114. package/build/components/inspector-controls/slot.native.js.map +1 -1
  115. package/build/components/line-height-control/index.js +7 -2
  116. package/build/components/line-height-control/index.js.map +1 -1
  117. package/build/components/link-control/use-internal-input-value.js +9 -8
  118. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  119. package/build/components/list-view/appender.js +6 -1
  120. package/build/components/list-view/appender.js.map +1 -1
  121. package/build/components/list-view/block-contents.js +9 -2
  122. package/build/components/list-view/block-contents.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +2 -1
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +25 -29
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js +1 -3
  128. package/build/components/list-view/branch.js.map +1 -1
  129. package/build/components/list-view/index.js +43 -22
  130. package/build/components/list-view/index.js.map +1 -1
  131. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  132. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  133. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  134. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +68 -7
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/multi-selection-inspector/index.js +2 -2
  138. package/build/components/multi-selection-inspector/index.js.map +1 -1
  139. package/build/components/preview-options/index.js +6 -1
  140. package/build/components/preview-options/index.js.map +1 -1
  141. package/build/components/publish-date-time-picker/index.js +0 -2
  142. package/build/components/publish-date-time-picker/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  144. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  145. package/build/components/url-input/index.js +4 -2
  146. package/build/components/url-input/index.js.map +1 -1
  147. package/build/components/use-block-drop-zone/index.js +25 -15
  148. package/build/components/use-block-drop-zone/index.js.map +1 -1
  149. package/build/components/use-resize-canvas/index.js +8 -1
  150. package/build/components/use-resize-canvas/index.js.map +1 -1
  151. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  152. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  153. package/build/hooks/align.js +4 -8
  154. package/build/hooks/align.js.map +1 -1
  155. package/build/hooks/behaviors.js +115 -0
  156. package/build/hooks/behaviors.js.map +1 -0
  157. package/build/hooks/border.js +1 -1
  158. package/build/hooks/border.js.map +1 -1
  159. package/build/hooks/color.js +1 -1
  160. package/build/hooks/color.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +8 -12
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/dimensions.js +0 -30
  164. package/build/hooks/dimensions.js.map +1 -1
  165. package/build/hooks/duotone.js +5 -9
  166. package/build/hooks/duotone.js.map +1 -1
  167. package/build/hooks/index.js +2 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/index.native.js +8 -0
  170. package/build/hooks/index.native.js.map +1 -1
  171. package/build/hooks/layout.js +10 -11
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +1 -1
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +1 -1
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  178. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  179. package/build/hooks/use-typography-props.js +14 -10
  180. package/build/hooks/use-typography-props.js.map +1 -1
  181. package/build/index.native.js +31 -0
  182. package/build/index.native.js.map +1 -0
  183. package/build/private-apis.js +4 -7
  184. package/build/private-apis.js.map +1 -1
  185. package/build/store/private-actions.js +46 -0
  186. package/build/store/private-actions.js.map +1 -1
  187. package/build/store/private-selectors.js +88 -0
  188. package/build/store/private-selectors.js.map +1 -1
  189. package/build/store/reducer.js +36 -1
  190. package/build/store/reducer.js.map +1 -1
  191. package/build/store/selectors.js +28 -18
  192. package/build/store/selectors.js.map +1 -1
  193. package/build/utils/order-inserter-block-items.js +41 -0
  194. package/build/utils/order-inserter-block-items.js.map +1 -0
  195. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  196. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  197. package/build-module/autocompleters/block.js +12 -5
  198. package/build-module/autocompleters/block.js.map +1 -1
  199. package/build-module/components/block-breadcrumb/index.js +5 -3
  200. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  201. package/build-module/components/block-controls/slot.js +11 -4
  202. package/build-module/components/block-controls/slot.js.map +1 -1
  203. package/build-module/components/block-controls/slot.native.js +9 -1
  204. package/build-module/components/block-controls/slot.native.js.map +1 -1
  205. package/build-module/components/block-draggable/index.js +10 -6
  206. package/build-module/components/block-draggable/index.js.map +1 -1
  207. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  208. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  209. package/build-module/components/block-editing-mode/index.js +72 -0
  210. package/build-module/components/block-editing-mode/index.js.map +1 -0
  211. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  212. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  213. package/build-module/components/block-list/block-list-block-context.js +6 -0
  214. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  215. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  216. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  217. package/build-module/components/block-list/block-list-item.native.js +160 -190
  218. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  219. package/build-module/components/block-list/block-outline.native.js +44 -0
  220. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  221. package/build-module/components/block-list/block.js +26 -34
  222. package/build-module/components/block-list/block.js.map +1 -1
  223. package/build-module/components/block-list/block.native.js +345 -310
  224. package/build-module/components/block-list/block.native.js.map +1 -1
  225. package/build-module/components/block-list/index.native.js +263 -355
  226. package/build-module/components/block-list/index.native.js.map +1 -1
  227. package/build-module/components/block-list/insertion-point.native.js +4 -2
  228. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/index.js +1 -1
  230. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +15 -1
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  236. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  237. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  238. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  239. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  240. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  241. package/build-module/components/block-styles/preview-panel.js +1 -2
  242. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  243. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  244. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  245. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  246. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  247. package/build-module/components/block-switcher/index.js +33 -12
  248. package/build-module/components/block-switcher/index.js.map +1 -1
  249. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  250. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  251. package/build-module/components/block-toolbar/index.js +8 -7
  252. package/build-module/components/block-toolbar/index.js.map +1 -1
  253. package/build-module/components/block-tools/block-contextual-toolbar.js +22 -65
  254. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  255. package/build-module/components/block-tools/insertion-point.js +11 -5
  256. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  257. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  258. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  259. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  260. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  261. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  262. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  263. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  264. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  265. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  266. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  267. package/build-module/components/global-styles/advanced-panel.js +74 -0
  268. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  269. package/build-module/components/global-styles/color-panel.js +5 -2
  270. package/build-module/components/global-styles/color-panel.js.map +1 -1
  271. package/build-module/components/global-styles/dimensions-panel.js +9 -8
  272. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  273. package/build-module/components/global-styles/hooks.js +1 -2
  274. package/build-module/components/global-styles/hooks.js.map +1 -1
  275. package/build-module/components/global-styles/index.js +3 -1
  276. package/build-module/components/global-styles/index.js.map +1 -1
  277. package/build-module/components/global-styles/typography-panel.js +1 -1
  278. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  279. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  280. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  281. package/build-module/components/global-styles/utils.js +25 -0
  282. package/build-module/components/global-styles/utils.js.map +1 -1
  283. package/build-module/components/iframe/index.js +15 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +24 -8
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -1
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +7 -6
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  292. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  293. package/build-module/components/inserter/index.js +3 -7
  294. package/build-module/components/inserter/index.js.map +1 -1
  295. package/build-module/components/inserter/quick-inserter.js +2 -4
  296. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  297. package/build-module/components/inserter/search-results.js +16 -6
  298. package/build-module/components/inserter/search-results.js.map +1 -1
  299. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  300. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  301. package/build-module/components/inspector-controls/fill.js +1 -1
  302. package/build-module/components/inspector-controls/fill.js.map +1 -1
  303. package/build-module/components/inspector-controls/fill.native.js +1 -1
  304. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  305. package/build-module/components/inspector-controls/slot.js +4 -7
  306. package/build-module/components/inspector-controls/slot.js.map +1 -1
  307. package/build-module/components/inspector-controls/slot.native.js +1 -1
  308. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  309. package/build-module/components/line-height-control/index.js +7 -2
  310. package/build-module/components/line-height-control/index.js.map +1 -1
  311. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  312. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  313. package/build-module/components/list-view/appender.js +6 -2
  314. package/build-module/components/list-view/appender.js.map +1 -1
  315. package/build-module/components/list-view/block-contents.js +9 -3
  316. package/build-module/components/list-view/block-contents.js.map +1 -1
  317. package/build-module/components/list-view/block-select-button.js +2 -1
  318. package/build-module/components/list-view/block-select-button.js.map +1 -1
  319. package/build-module/components/list-view/block.js +24 -29
  320. package/build-module/components/list-view/block.js.map +1 -1
  321. package/build-module/components/list-view/branch.js +1 -3
  322. package/build-module/components/list-view/branch.js.map +1 -1
  323. package/build-module/components/list-view/index.js +44 -23
  324. package/build-module/components/list-view/index.js.map +1 -1
  325. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  326. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  327. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  328. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  329. package/build-module/components/media-placeholder/index.js +66 -7
  330. package/build-module/components/media-placeholder/index.js.map +1 -1
  331. package/build-module/components/multi-selection-inspector/index.js +2 -2
  332. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  333. package/build-module/components/preview-options/index.js +7 -2
  334. package/build-module/components/preview-options/index.js.map +1 -1
  335. package/build-module/components/publish-date-time-picker/index.js +0 -2
  336. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  337. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  338. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  339. package/build-module/components/url-input/index.js +4 -2
  340. package/build-module/components/url-input/index.js.map +1 -1
  341. package/build-module/components/use-block-drop-zone/index.js +25 -16
  342. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  343. package/build-module/components/use-resize-canvas/index.js +8 -1
  344. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  346. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  347. package/build-module/hooks/align.js +4 -7
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/behaviors.js +97 -0
  350. package/build-module/hooks/behaviors.js.map +1 -0
  351. package/build-module/hooks/border.js +1 -1
  352. package/build-module/hooks/border.js.map +1 -1
  353. package/build-module/hooks/color.js +1 -1
  354. package/build-module/hooks/color.js.map +1 -1
  355. package/build-module/hooks/content-lock-ui.js +8 -11
  356. package/build-module/hooks/content-lock-ui.js.map +1 -1
  357. package/build-module/hooks/dimensions.js +0 -28
  358. package/build-module/hooks/dimensions.js.map +1 -1
  359. package/build-module/hooks/duotone.js +4 -7
  360. package/build-module/hooks/duotone.js.map +1 -1
  361. package/build-module/hooks/index.js +1 -0
  362. package/build-module/hooks/index.js.map +1 -1
  363. package/build-module/hooks/index.native.js +1 -0
  364. package/build-module/hooks/index.native.js.map +1 -1
  365. package/build-module/hooks/layout.js +9 -11
  366. package/build-module/hooks/layout.js.map +1 -1
  367. package/build-module/hooks/position.js +1 -1
  368. package/build-module/hooks/position.js.map +1 -1
  369. package/build-module/hooks/style.js +1 -1
  370. package/build-module/hooks/style.js.map +1 -1
  371. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  372. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  373. package/build-module/hooks/use-typography-props.js +14 -10
  374. package/build-module/hooks/use-typography-props.js.map +1 -1
  375. package/build-module/index.native.js +6 -0
  376. package/build-module/index.native.js.map +1 -0
  377. package/build-module/private-apis.js +3 -5
  378. package/build-module/private-apis.js.map +1 -1
  379. package/build-module/store/private-actions.js +42 -0
  380. package/build-module/store/private-actions.js.map +1 -1
  381. package/build-module/store/private-selectors.js +79 -0
  382. package/build-module/store/private-selectors.js.map +1 -1
  383. package/build-module/store/reducer.js +34 -1
  384. package/build-module/store/reducer.js.map +1 -1
  385. package/build-module/store/selectors.js +26 -17
  386. package/build-module/store/selectors.js.map +1 -1
  387. package/build-module/utils/order-inserter-block-items.js +32 -0
  388. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  389. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  390. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  391. package/build-style/content-rtl.css +32 -14
  392. package/build-style/content.css +32 -14
  393. package/build-style/default-editor-styles-rtl.css +1 -1
  394. package/build-style/default-editor-styles.css +1 -1
  395. package/build-style/style-rtl.css +56 -77
  396. package/build-style/style.css +57 -77
  397. package/package.json +32 -31
  398. package/src/autocompleters/block.js +15 -7
  399. package/src/components/block-breadcrumb/index.js +11 -3
  400. package/src/components/block-breadcrumb/style.scss +2 -1
  401. package/src/components/block-controls/slot.js +8 -4
  402. package/src/components/block-controls/slot.native.js +6 -1
  403. package/src/components/block-draggable/index.js +10 -6
  404. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  405. package/src/components/block-editing-mode/index.js +71 -0
  406. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  407. package/src/components/block-list/block-list-block-context.js +6 -0
  408. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  409. package/src/components/block-list/block-list-item.native.js +180 -208
  410. package/src/components/block-list/block-outline.native.js +58 -0
  411. package/src/components/block-list/block.js +38 -56
  412. package/src/components/block-list/block.native.js +531 -501
  413. package/src/components/block-list/content.scss +5 -6
  414. package/src/components/block-list/index.native.js +324 -382
  415. package/src/components/block-list/insertion-point.native.js +2 -2
  416. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  417. package/src/components/block-list/test/index.native.js +205 -0
  418. package/src/components/block-list/use-block-props/index.js +1 -1
  419. package/src/components/block-list/use-in-between-inserter.js +7 -3
  420. package/src/components/block-list-appender/index.js +22 -4
  421. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +26 -1
  422. package/src/components/block-mover/style.scss +1 -0
  423. package/src/components/block-pattern-setup/style.scss +1 -4
  424. package/src/components/block-patterns-list/style.scss +1 -4
  425. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  426. package/src/components/block-settings-menu-controls/index.js +24 -4
  427. package/src/components/block-styles/preview-panel.js +1 -3
  428. package/src/components/block-styles/style.scss +4 -4
  429. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  430. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  431. package/src/components/block-switcher/index.js +38 -5
  432. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  433. package/src/components/block-switcher/style.scss +6 -5
  434. package/src/components/block-toolbar/index.js +10 -11
  435. package/src/components/block-tools/block-contextual-toolbar.js +32 -67
  436. package/src/components/block-tools/insertion-point.js +23 -9
  437. package/src/components/block-tools/selected-block-popover.js +3 -5
  438. package/src/components/block-tools/style.scss +8 -0
  439. package/src/components/button-block-appender/content.scss +22 -0
  440. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  441. package/src/components/convert-to-group-buttons/index.js +9 -2
  442. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  443. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  444. package/src/components/global-styles/advanced-panel.js +82 -0
  445. package/src/components/global-styles/color-panel.js +6 -1
  446. package/src/components/global-styles/dimensions-panel.js +9 -8
  447. package/src/components/global-styles/hooks.js +1 -5
  448. package/src/components/global-styles/index.js +6 -1
  449. package/src/components/global-styles/style.scss +17 -0
  450. package/src/components/global-styles/test/utils.js +57 -1
  451. package/src/components/global-styles/typography-panel.js +1 -1
  452. package/src/components/global-styles/use-global-styles-output.js +21 -3
  453. package/src/components/global-styles/utils.js +27 -0
  454. package/src/components/iframe/index.js +22 -12
  455. package/src/components/image-editor/use-save-image.js +20 -9
  456. package/src/components/inner-blocks/README.md +5 -0
  457. package/src/components/inner-blocks/index.js +2 -0
  458. package/src/components/inner-blocks/index.native.js +16 -6
  459. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  460. package/src/components/inserter/index.js +1 -9
  461. package/src/components/inserter/quick-inserter.js +0 -2
  462. package/src/components/inserter/search-results.js +32 -6
  463. package/src/components/inserter-draggable-blocks/index.js +4 -0
  464. package/src/components/inspector-controls/fill.js +1 -1
  465. package/src/components/inspector-controls/fill.native.js +1 -1
  466. package/src/components/inspector-controls/slot.js +4 -9
  467. package/src/components/inspector-controls/slot.native.js +1 -1
  468. package/src/components/line-height-control/index.js +7 -2
  469. package/src/components/line-height-control/stories/index.js +1 -1
  470. package/src/components/link-control/test/index.js +42 -0
  471. package/src/components/link-control/use-internal-input-value.js +8 -7
  472. package/src/components/list-view/appender.js +3 -2
  473. package/src/components/list-view/block-contents.js +32 -20
  474. package/src/components/list-view/block-select-button.js +5 -1
  475. package/src/components/list-view/block.js +34 -37
  476. package/src/components/list-view/branch.js +1 -7
  477. package/src/components/list-view/index.js +42 -17
  478. package/src/components/list-view/style.scss +7 -7
  479. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  480. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  481. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  482. package/src/components/media-placeholder/index.js +74 -1
  483. package/src/components/multi-selection-inspector/index.js +2 -2
  484. package/src/components/preview-options/index.js +9 -2
  485. package/src/components/publish-date-time-picker/index.js +0 -2
  486. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  487. package/src/components/url-input/README.md +6 -0
  488. package/src/components/url-input/index.js +2 -2
  489. package/src/components/use-block-drop-zone/index.js +31 -17
  490. package/src/components/use-resize-canvas/index.js +9 -1
  491. package/src/components/writing-flow/test/index.js +15 -0
  492. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  493. package/src/hooks/align.js +5 -12
  494. package/src/hooks/behaviors.js +104 -0
  495. package/src/hooks/border.js +2 -1
  496. package/src/hooks/color.js +2 -1
  497. package/src/hooks/content-lock-ui.js +3 -15
  498. package/src/hooks/dimensions.js +0 -40
  499. package/src/hooks/duotone.js +4 -11
  500. package/src/hooks/index.js +1 -0
  501. package/src/hooks/index.native.js +1 -0
  502. package/src/hooks/layout.js +14 -20
  503. package/src/hooks/position.js +2 -1
  504. package/src/hooks/style.js +2 -1
  505. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  506. package/src/hooks/test/use-typography-props.js +47 -2
  507. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  508. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  509. package/src/hooks/use-typography-props.js +10 -11
  510. package/src/index.native.js +6 -0
  511. package/src/private-apis.js +2 -4
  512. package/src/store/private-actions.js +39 -0
  513. package/src/store/private-selectors.js +95 -0
  514. package/src/store/reducer.js +27 -0
  515. package/src/store/selectors.js +25 -15
  516. package/src/store/test/private-actions.js +32 -1
  517. package/src/store/test/private-selectors.js +158 -0
  518. package/src/store/test/reducer.js +48 -0
  519. package/src/style.scss +0 -3
  520. package/src/utils/order-inserter-block-items.js +26 -0
  521. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  522. package/tsconfig.json +1 -0
  523. package/tsconfig.tsbuildinfo +1 -1
  524. package/build/components/block-list/block-list-compact.native.js +0 -75
  525. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  526. package/build/components/off-canvas-editor/appender.js +0 -125
  527. package/build/components/off-canvas-editor/appender.js.map +0 -1
  528. package/build/components/off-canvas-editor/block-contents.js +0 -141
  529. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  530. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  531. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  532. package/build/components/off-canvas-editor/block.js +0 -297
  533. package/build/components/off-canvas-editor/block.js.map +0 -1
  534. package/build/components/off-canvas-editor/branch.js +0 -197
  535. package/build/components/off-canvas-editor/branch.js.map +0 -1
  536. package/build/components/off-canvas-editor/context.js +0 -19
  537. package/build/components/off-canvas-editor/context.js.map +0 -1
  538. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  539. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  540. package/build/components/off-canvas-editor/expander.js +0 -41
  541. package/build/components/off-canvas-editor/expander.js.map +0 -1
  542. package/build/components/off-canvas-editor/index.js +0 -236
  543. package/build/components/off-canvas-editor/index.js.map +0 -1
  544. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -146
  545. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  546. package/build/components/off-canvas-editor/leaf.js +0 -60
  547. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  548. package/build/components/off-canvas-editor/link-ui.js +0 -186
  549. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  550. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  551. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  552. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  553. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  554. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  555. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  556. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  557. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  558. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  559. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  560. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  561. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  562. package/build/components/off-canvas-editor/utils.js +0 -60
  563. package/build/components/off-canvas-editor/utils.js.map +0 -1
  564. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  565. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  566. package/build-module/components/off-canvas-editor/appender.js +0 -108
  567. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  568. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  569. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  570. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  571. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  572. package/build-module/components/off-canvas-editor/block.js +0 -273
  573. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  574. package/build-module/components/off-canvas-editor/branch.js +0 -179
  575. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  576. package/build-module/components/off-canvas-editor/context.js +0 -7
  577. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  578. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  579. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  580. package/build-module/components/off-canvas-editor/expander.js +0 -32
  581. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  582. package/build-module/components/off-canvas-editor/index.js +0 -213
  583. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  584. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -128
  585. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  586. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  587. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  588. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  589. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  590. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  591. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  592. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  593. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  594. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  595. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  596. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  597. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  598. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  599. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  600. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  601. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  602. package/build-module/components/off-canvas-editor/utils.js +0 -44
  603. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  604. package/src/components/block-list/block-list-compact.native.js +0 -63
  605. package/src/components/off-canvas-editor/README.md +0 -5
  606. package/src/components/off-canvas-editor/appender.js +0 -124
  607. package/src/components/off-canvas-editor/block-contents.js +0 -156
  608. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  609. package/src/components/off-canvas-editor/block.js +0 -347
  610. package/src/components/off-canvas-editor/branch.js +0 -238
  611. package/src/components/off-canvas-editor/context.js +0 -8
  612. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  613. package/src/components/off-canvas-editor/expander.js +0 -26
  614. package/src/components/off-canvas-editor/index.js +0 -271
  615. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -157
  616. package/src/components/off-canvas-editor/leaf.js +0 -52
  617. package/src/components/off-canvas-editor/link-ui.js +0 -167
  618. package/src/components/off-canvas-editor/style.scss +0 -34
  619. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  620. package/src/components/off-canvas-editor/test/utils.js +0 -50
  621. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  622. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  623. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  624. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  625. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  626. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  627. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["View","Text","TouchableWithoutFeedback","Dimensions","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","BlockDraggable","useLayout","emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","onMerge","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","includes","parentLayout","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","registry","insertBlocks","mergeBlocks","replaceBlocks","selectBlock","updateBlockAttributes","moveBlocksToPosition","removeBlock","forward","rootClientId","getPreviousBlockClientId","getNextBlockClientId","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","replacement","batch","nextRootClientId","rootAttributes","previousRootAttributes","keys","every","nextBlockClientId","previousBlockClientId","previousRootClientId","index","initialPosition","indexToSelect"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { useLayout } from './layout';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tonMerge,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\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}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\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 parentLayout = useLayout();\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ onMerge }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t__unstableParentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\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\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor =\n\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\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( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected =\n\t\t\tselectedParents.includes( parentId );\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, registry ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t\tmoveBlocksToPosition,\n\t\t\tremoveBlock,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonMerge( forward ) {\n\t\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t\t/**\n\t\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t\t * convert to the default block type.\n\t\t\t\t *\n\t\t\t\t * @param {string} _clientId The block to move.\n\t\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t\t * to the moved block.\n\t\t\t\t */\n\t\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\t\tconst targetRootClientId =\n\t\t\t\t\t\tgetBlockRootClientId( _clientId );\n\t\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t\t} else {\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\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\n\t\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t\t// as `Backspace`, but from the other block.\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\t\treturn;\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\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\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( previousRootClientId );\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( rootClientId ),\n\t\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( rootClientId, 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}\n\n\t\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["Pressable","useWindowDimensions","View","useCallback","useMemo","useRef","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockMobileToolbar","BlockOutline","styles","store","blockEditorStore","useLayout","useSetting","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","isScreenWidthEqual","isFullWidthToolbar","blockWrapperStyles","flex","blockWrapperStyle","accessible","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","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","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"],"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"]}