@wordpress/block-editor 12.21.0 → 12.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +4 -0
  3. package/build/components/block-actions/index.js +2 -4
  4. package/build/components/block-actions/index.js.map +1 -1
  5. package/build/components/block-heading-level-dropdown/index.js +5 -5
  6. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  7. package/build/components/block-heading-level-dropdown/index.native.js +5 -4
  8. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  9. package/build/components/block-list/block-crash-boundary.native.js +49 -0
  10. package/build/components/block-list/block-crash-boundary.native.js.map +1 -0
  11. package/build/components/block-list/block-crash-warning.native.js +24 -0
  12. package/build/components/block-list/block-crash-warning.native.js.map +1 -0
  13. package/build/components/block-list/block.js +11 -3
  14. package/build/components/block-list/block.js.map +1 -1
  15. package/build/components/block-list/block.native.js +7 -2
  16. package/build/components/block-list/block.native.js.map +1 -1
  17. package/build/components/block-mover/button.js +4 -1
  18. package/build/components/block-mover/button.js.map +1 -1
  19. package/build/components/block-mover/index.js +5 -1
  20. package/build/components/block-mover/index.js.map +1 -1
  21. package/build/components/block-patterns-list/index.js +4 -1
  22. package/build/components/block-patterns-list/index.js.map +1 -1
  23. package/build/components/block-settings/container.native.js +2 -1
  24. package/build/components/block-settings/container.native.js.map +1 -1
  25. package/build/components/block-settings-menu/block-settings-dropdown.js +36 -32
  26. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  27. package/build/components/block-settings-menu-controls/index.js +1 -3
  28. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  29. package/build/components/block-switcher/index.js +4 -3
  30. package/build/components/block-switcher/index.js.map +1 -1
  31. package/build/components/block-toolbar/index.js +8 -5
  32. package/build/components/block-toolbar/index.js.map +1 -1
  33. package/build/components/block-toolbar/shuffle.js +19 -10
  34. package/build/components/block-toolbar/shuffle.js.map +1 -1
  35. package/build/components/block-tools/block-selection-button.js +48 -8
  36. package/build/components/block-tools/block-selection-button.js.map +1 -1
  37. package/build/components/block-tools/index.js +14 -2
  38. package/build/components/block-tools/index.js.map +1 -1
  39. package/build/components/child-layout-control/index.js +108 -11
  40. package/build/components/child-layout-control/index.js.map +1 -1
  41. package/build/components/convert-to-group-buttons/toolbar.js +11 -0
  42. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  43. package/build/components/global-styles/advanced-panel.js +9 -2
  44. package/build/components/global-styles/advanced-panel.js.map +1 -1
  45. package/build/components/global-styles/background-panel.js +444 -0
  46. package/build/components/global-styles/background-panel.js.map +1 -0
  47. package/build/components/global-styles/color-panel.js +2 -1
  48. package/build/components/global-styles/color-panel.js.map +1 -1
  49. package/build/components/global-styles/dimensions-panel.js +8 -33
  50. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  51. package/build/components/global-styles/get-global-styles-changes.js +3 -0
  52. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  53. package/build/components/global-styles/hooks.js +1 -1
  54. package/build/components/global-styles/hooks.js.map +1 -1
  55. package/build/components/global-styles/index.js +13 -0
  56. package/build/components/global-styles/index.js.map +1 -1
  57. package/build/components/global-styles/use-global-styles-output.js +16 -15
  58. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  59. package/build/components/global-styles/utils.js +2 -3
  60. package/build/components/global-styles/utils.js.map +1 -1
  61. package/build/components/iframe/index.js +43 -34
  62. package/build/components/iframe/index.js.map +1 -1
  63. package/build/components/inserter/block-patterns-explorer/index.js +3 -6
  64. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  65. package/build/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  66. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  67. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  68. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  69. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  70. package/build/components/inserter/library.js +2 -0
  71. package/build/components/inserter/library.js.map +1 -1
  72. package/build/components/inserter/menu.js +11 -11
  73. package/build/components/inserter/menu.js.map +1 -1
  74. package/build/components/inserter/mobile-tab-navigation.js +1 -1
  75. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  76. package/build/components/inserter/search-items.js +36 -15
  77. package/build/components/inserter/search-items.js.map +1 -1
  78. package/build/components/inserter/search-results.js +2 -3
  79. package/build/components/inserter/search-results.js.map +1 -1
  80. package/build/components/inserter/tabs.js +1 -2
  81. package/build/components/inserter/tabs.js.map +1 -1
  82. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js +36 -0
  83. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  84. package/build/components/keyboard-shortcuts/index.js +11 -0
  85. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  86. package/build/components/list-view/block-select-button.js +18 -12
  87. package/build/components/list-view/block-select-button.js.map +1 -1
  88. package/build/components/list-view/block.js +4 -11
  89. package/build/components/list-view/block.js.map +1 -1
  90. package/build/components/list-view/index.js +17 -2
  91. package/build/components/list-view/index.js.map +1 -1
  92. package/build/components/list-view/use-list-view-collapse-items.js +47 -0
  93. package/build/components/list-view/use-list-view-collapse-items.js.map +1 -0
  94. package/build/components/list-view/utils.js +5 -3
  95. package/build/components/list-view/utils.js.map +1 -1
  96. package/build/components/rich-text/index.js +14 -11
  97. package/build/components/rich-text/index.js.map +1 -1
  98. package/build/components/rich-text/index.native.js +17 -11
  99. package/build/components/rich-text/index.native.js.map +1 -1
  100. package/build/components/rich-text/native/get-format-colors.native.js +1 -1
  101. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  102. package/build/components/rich-text/native/index.native.js +2 -2
  103. package/build/components/rich-text/native/index.native.js.map +1 -1
  104. package/build/components/rich-text/with-deprecations.js +0 -3
  105. package/build/components/rich-text/with-deprecations.js.map +1 -1
  106. package/build/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  107. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  108. package/build/components/url-popover/image-url-input-ui.js +50 -36
  109. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  110. package/build/components/use-block-display-information/index.js +4 -6
  111. package/build/components/use-block-display-information/index.js.map +1 -1
  112. package/build/components/use-moving-animation/index.js +4 -0
  113. package/build/components/use-moving-animation/index.js.map +1 -1
  114. package/build/components/warning/index.native.js +9 -4
  115. package/build/components/warning/index.native.js.map +1 -1
  116. package/build/hooks/anchor.js +9 -10
  117. package/build/hooks/anchor.js.map +1 -1
  118. package/build/hooks/background.js +85 -402
  119. package/build/hooks/background.js.map +1 -1
  120. package/build/hooks/index.js +9 -1
  121. package/build/hooks/index.js.map +1 -1
  122. package/build/hooks/layout-child.js +28 -6
  123. package/build/hooks/layout-child.js.map +1 -1
  124. package/build/hooks/layout.js +21 -10
  125. package/build/hooks/layout.js.map +1 -1
  126. package/build/hooks/position.js +1 -1
  127. package/build/hooks/position.js.map +1 -1
  128. package/build/hooks/use-zoom-out.js +47 -0
  129. package/build/hooks/use-zoom-out.js.map +1 -0
  130. package/build/index.js +7 -0
  131. package/build/index.js.map +1 -1
  132. package/build/private-apis.js +6 -1
  133. package/build/private-apis.js.map +1 -1
  134. package/build/private-apis.native.js +5 -1
  135. package/build/private-apis.native.js.map +1 -1
  136. package/build/store/private-actions.js +13 -0
  137. package/build/store/private-actions.js.map +1 -1
  138. package/build/store/private-keys.js +2 -1
  139. package/build/store/private-keys.js.map +1 -1
  140. package/build/store/private-selectors.js +24 -3
  141. package/build/store/private-selectors.js.map +1 -1
  142. package/build/store/reducer.js +53 -26
  143. package/build/store/reducer.js.map +1 -1
  144. package/build/store/selectors.js +34 -32
  145. package/build/store/selectors.js.map +1 -1
  146. package/build/store/utils.js +7 -1
  147. package/build/store/utils.js.map +1 -1
  148. package/build/utils/transform-styles/index.js +2 -1
  149. package/build/utils/transform-styles/index.js.map +1 -1
  150. package/build-module/components/block-actions/index.js +2 -4
  151. package/build-module/components/block-actions/index.js.map +1 -1
  152. package/build-module/components/block-heading-level-dropdown/index.js +5 -5
  153. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  154. package/build-module/components/block-heading-level-dropdown/index.native.js +5 -4
  155. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  156. package/build-module/components/block-list/block-crash-boundary.native.js +42 -0
  157. package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -0
  158. package/build-module/components/block-list/block-crash-warning.native.js +15 -0
  159. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -0
  160. package/build-module/components/block-list/block.js +11 -3
  161. package/build-module/components/block-list/block.js.map +1 -1
  162. package/build-module/components/block-list/block.native.js +7 -2
  163. package/build-module/components/block-list/block.native.js.map +1 -1
  164. package/build-module/components/block-mover/button.js +4 -1
  165. package/build-module/components/block-mover/button.js.map +1 -1
  166. package/build-module/components/block-mover/index.js +5 -1
  167. package/build-module/components/block-mover/index.js.map +1 -1
  168. package/build-module/components/block-patterns-list/index.js +4 -1
  169. package/build-module/components/block-patterns-list/index.js.map +1 -1
  170. package/build-module/components/block-settings/container.native.js +3 -2
  171. package/build-module/components/block-settings/container.native.js.map +1 -1
  172. package/build-module/components/block-settings-menu/block-settings-dropdown.js +37 -33
  173. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  174. package/build-module/components/block-settings-menu-controls/index.js +1 -3
  175. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  176. package/build-module/components/block-switcher/index.js +4 -3
  177. package/build-module/components/block-switcher/index.js.map +1 -1
  178. package/build-module/components/block-toolbar/index.js +8 -5
  179. package/build-module/components/block-toolbar/index.js.map +1 -1
  180. package/build-module/components/block-toolbar/shuffle.js +19 -10
  181. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  182. package/build-module/components/block-tools/block-selection-button.js +50 -10
  183. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  184. package/build-module/components/block-tools/index.js +14 -2
  185. package/build-module/components/block-tools/index.js.map +1 -1
  186. package/build-module/components/child-layout-control/index.js +109 -12
  187. package/build-module/components/child-layout-control/index.js.map +1 -1
  188. package/build-module/components/convert-to-group-buttons/toolbar.js +12 -1
  189. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  190. package/build-module/components/global-styles/advanced-panel.js +9 -2
  191. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  192. package/build-module/components/global-styles/background-panel.js +430 -0
  193. package/build-module/components/global-styles/background-panel.js.map +1 -0
  194. package/build-module/components/global-styles/color-panel.js +2 -1
  195. package/build-module/components/global-styles/color-panel.js.map +1 -1
  196. package/build-module/components/global-styles/dimensions-panel.js +9 -34
  197. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  198. package/build-module/components/global-styles/get-global-styles-changes.js +3 -0
  199. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  200. package/build-module/components/global-styles/hooks.js +1 -1
  201. package/build-module/components/global-styles/hooks.js.map +1 -1
  202. package/build-module/components/global-styles/index.js +1 -0
  203. package/build-module/components/global-styles/index.js.map +1 -1
  204. package/build-module/components/global-styles/use-global-styles-output.js +17 -16
  205. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  206. package/build-module/components/global-styles/utils.js +1 -2
  207. package/build-module/components/global-styles/utils.js.map +1 -1
  208. package/build-module/components/iframe/index.js +43 -34
  209. package/build-module/components/iframe/index.js.map +1 -1
  210. package/build-module/components/inserter/block-patterns-explorer/index.js +3 -6
  211. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  212. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  213. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  214. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  215. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  216. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  217. package/build-module/components/inserter/library.js +2 -0
  218. package/build-module/components/inserter/library.js.map +1 -1
  219. package/build-module/components/inserter/menu.js +11 -11
  220. package/build-module/components/inserter/menu.js.map +1 -1
  221. package/build-module/components/inserter/mobile-tab-navigation.js +1 -1
  222. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  223. package/build-module/components/inserter/search-items.js +33 -15
  224. package/build-module/components/inserter/search-items.js.map +1 -1
  225. package/build-module/components/inserter/search-results.js +2 -3
  226. package/build-module/components/inserter/search-results.js.map +1 -1
  227. package/build-module/components/inserter/tabs.js +1 -2
  228. package/build-module/components/inserter/tabs.js.map +1 -1
  229. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js +28 -0
  230. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  231. package/build-module/components/keyboard-shortcuts/index.js +11 -0
  232. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  233. package/build-module/components/list-view/block-select-button.js +19 -13
  234. package/build-module/components/list-view/block-select-button.js.map +1 -1
  235. package/build-module/components/list-view/block.js +6 -13
  236. package/build-module/components/list-view/block.js.map +1 -1
  237. package/build-module/components/list-view/index.js +17 -2
  238. package/build-module/components/list-view/index.js.map +1 -1
  239. package/build-module/components/list-view/use-list-view-collapse-items.js +40 -0
  240. package/build-module/components/list-view/use-list-view-collapse-items.js.map +1 -0
  241. package/build-module/components/list-view/utils.js +2 -1
  242. package/build-module/components/list-view/utils.js.map +1 -1
  243. package/build-module/components/rich-text/index.js +15 -12
  244. package/build-module/components/rich-text/index.js.map +1 -1
  245. package/build-module/components/rich-text/index.native.js +16 -11
  246. package/build-module/components/rich-text/index.native.js.map +1 -1
  247. package/build-module/components/rich-text/native/get-format-colors.native.js +1 -1
  248. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  249. package/build-module/components/rich-text/native/index.native.js +2 -2
  250. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  251. package/build-module/components/rich-text/with-deprecations.js +0 -3
  252. package/build-module/components/rich-text/with-deprecations.js.map +1 -1
  253. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  254. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  255. package/build-module/components/url-popover/image-url-input-ui.js +50 -36
  256. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  257. package/build-module/components/use-block-display-information/index.js +5 -7
  258. package/build-module/components/use-block-display-information/index.js.map +1 -1
  259. package/build-module/components/use-moving-animation/index.js +4 -0
  260. package/build-module/components/use-moving-animation/index.js.map +1 -1
  261. package/build-module/components/warning/index.native.js +9 -4
  262. package/build-module/components/warning/index.native.js.map +1 -1
  263. package/build-module/hooks/anchor.js +10 -11
  264. package/build-module/hooks/anchor.js.map +1 -1
  265. package/build-module/hooks/background.js +82 -397
  266. package/build-module/hooks/background.js.map +1 -1
  267. package/build-module/hooks/index.js +3 -1
  268. package/build-module/hooks/index.js.map +1 -1
  269. package/build-module/hooks/layout-child.js +28 -6
  270. package/build-module/hooks/layout-child.js.map +1 -1
  271. package/build-module/hooks/layout.js +21 -10
  272. package/build-module/hooks/layout.js.map +1 -1
  273. package/build-module/hooks/position.js +1 -1
  274. package/build-module/hooks/position.js.map +1 -1
  275. package/build-module/hooks/use-zoom-out.js +41 -0
  276. package/build-module/hooks/use-zoom-out.js.map +1 -0
  277. package/build-module/index.js +1 -1
  278. package/build-module/index.js.map +1 -1
  279. package/build-module/private-apis.js +7 -2
  280. package/build-module/private-apis.js.map +1 -1
  281. package/build-module/private-apis.native.js +5 -1
  282. package/build-module/private-apis.native.js.map +1 -1
  283. package/build-module/store/private-actions.js +12 -0
  284. package/build-module/store/private-actions.js.map +1 -1
  285. package/build-module/store/private-keys.js +1 -0
  286. package/build-module/store/private-keys.js.map +1 -1
  287. package/build-module/store/private-selectors.js +22 -4
  288. package/build-module/store/private-selectors.js.map +1 -1
  289. package/build-module/store/reducer.js +52 -26
  290. package/build-module/store/reducer.js.map +1 -1
  291. package/build-module/store/selectors.js +35 -33
  292. package/build-module/store/selectors.js.map +1 -1
  293. package/build-module/store/utils.js +6 -1
  294. package/build-module/store/utils.js.map +1 -1
  295. package/build-module/utils/transform-styles/index.js +2 -1
  296. package/build-module/utils/transform-styles/index.js.map +1 -1
  297. package/build-style/content-rtl.css +18 -1
  298. package/build-style/content.css +18 -1
  299. package/build-style/style-rtl.css +92 -99
  300. package/build-style/style.css +92 -99
  301. package/package.json +31 -31
  302. package/src/components/block-actions/index.js +2 -8
  303. package/src/components/block-bindings-toolbar-indicator/style.scss +10 -8
  304. package/src/components/block-heading-level-dropdown/README.md +5 -5
  305. package/src/components/block-heading-level-dropdown/index.js +5 -5
  306. package/src/components/block-heading-level-dropdown/index.native.js +5 -4
  307. package/src/components/block-list/block-crash-boundary.native.js +43 -0
  308. package/src/components/block-list/block-crash-warning.native.js +19 -0
  309. package/src/components/block-list/block.js +19 -3
  310. package/src/components/block-list/block.native.js +14 -7
  311. package/src/components/block-list/content.scss +16 -0
  312. package/src/components/block-mover/button.js +4 -1
  313. package/src/components/block-mover/index.js +8 -1
  314. package/src/components/block-patterns-list/index.js +22 -17
  315. package/src/components/block-preview/style.scss +28 -0
  316. package/src/components/block-settings/container.native.js +5 -1
  317. package/src/components/block-settings-menu/block-settings-dropdown.js +49 -58
  318. package/src/components/block-settings-menu-controls/README.md +0 -9
  319. package/src/components/block-settings-menu-controls/index.js +1 -6
  320. package/src/components/block-switcher/index.js +5 -3
  321. package/src/components/block-switcher/style.scss +1 -1
  322. package/src/components/block-toolbar/index.js +25 -20
  323. package/src/components/block-toolbar/shuffle.js +20 -14
  324. package/src/components/block-toolbar/style.scss +1 -1
  325. package/src/components/block-toolbar/test/index.native.js +1 -7
  326. package/src/components/block-tools/block-selection-button.js +66 -9
  327. package/src/components/block-tools/index.js +18 -1
  328. package/src/components/button-block-appender/content.scss +5 -1
  329. package/src/components/child-layout-control/index.js +147 -35
  330. package/src/components/convert-to-group-buttons/toolbar.js +13 -1
  331. package/src/components/default-block-appender/content.scss +2 -2
  332. package/src/components/global-styles/advanced-panel.js +8 -2
  333. package/src/components/global-styles/background-panel.js +591 -0
  334. package/src/components/global-styles/color-panel.js +2 -1
  335. package/src/components/global-styles/dimensions-panel.js +9 -34
  336. package/src/components/global-styles/get-global-styles-changes.js +3 -0
  337. package/src/components/global-styles/hooks.js +1 -0
  338. package/src/components/global-styles/index.js +4 -0
  339. package/src/components/global-styles/style.scss +78 -1
  340. package/src/{hooks/test/background.js → components/global-styles/test/background-panel.js} +36 -1
  341. package/src/components/global-styles/test/get-global-styles-changes.js +22 -3
  342. package/src/components/global-styles/test/use-global-styles-output.js +40 -9
  343. package/src/components/global-styles/use-global-styles-output.js +30 -17
  344. package/src/components/global-styles/utils.js +1 -18
  345. package/src/components/iframe/index.js +79 -53
  346. package/src/components/inserter/block-patterns-explorer/index.js +2 -9
  347. package/src/components/inserter/block-patterns-explorer/pattern-list.js +7 -1
  348. package/src/components/inserter/block-patterns-tab/index.js +1 -0
  349. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  350. package/src/components/inserter/library.js +4 -0
  351. package/src/components/inserter/menu.js +12 -11
  352. package/src/components/inserter/mobile-tab-navigation.js +1 -1
  353. package/src/components/inserter/search-items.js +37 -15
  354. package/src/components/inserter/search-results.js +1 -2
  355. package/src/components/inserter/style.scss +6 -12
  356. package/src/components/inserter/tabs.js +1 -2
  357. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +31 -0
  358. package/src/components/keyboard-shortcuts/index.js +11 -0
  359. package/src/components/link-control/style.scss +0 -5
  360. package/src/components/list-view/block-select-button.js +15 -19
  361. package/src/components/list-view/block.js +12 -21
  362. package/src/components/list-view/index.js +18 -1
  363. package/src/components/list-view/style.scss +38 -28
  364. package/src/components/list-view/use-list-view-collapse-items.js +33 -0
  365. package/src/components/list-view/utils.js +4 -1
  366. package/src/components/rich-text/README.md +6 -0
  367. package/src/components/rich-text/index.js +30 -13
  368. package/src/components/rich-text/index.native.js +14 -11
  369. package/src/components/rich-text/native/get-format-colors.native.js +1 -1
  370. package/src/components/rich-text/native/index.native.js +2 -2
  371. package/src/components/rich-text/with-deprecations.js +0 -3
  372. package/src/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  373. package/src/components/url-popover/image-url-input-ui.js +68 -51
  374. package/src/components/use-block-display-information/index.js +8 -10
  375. package/src/components/use-moving-animation/index.js +1 -0
  376. package/src/components/warning/index.native.js +19 -15
  377. package/src/hooks/anchor.js +43 -61
  378. package/src/hooks/background.js +100 -516
  379. package/src/hooks/index.js +3 -0
  380. package/src/hooks/layout-child.js +44 -8
  381. package/src/hooks/layout.js +22 -18
  382. package/src/hooks/position.js +1 -1
  383. package/src/hooks/test/__snapshots__/anchor.native.js.snap +7 -0
  384. package/src/hooks/test/anchor.native.js +32 -0
  385. package/src/hooks/use-zoom-out.js +36 -0
  386. package/src/index.js +1 -0
  387. package/src/private-apis.js +13 -1
  388. package/src/private-apis.native.js +4 -0
  389. package/src/store/private-actions.js +12 -0
  390. package/src/store/private-keys.js +1 -0
  391. package/src/store/private-selectors.js +54 -27
  392. package/src/store/reducer.js +63 -41
  393. package/src/store/selectors.js +195 -180
  394. package/src/store/test/private-actions.js +10 -0
  395. package/src/store/test/private-selectors.js +13 -0
  396. package/src/store/test/reducer.js +26 -0
  397. package/src/store/test/selectors.js +90 -199
  398. package/src/store/utils.js +13 -0
  399. package/src/style.scss +0 -2
  400. package/src/utils/transform-styles/index.js +2 -1
  401. package/tsconfig.json +1 -0
  402. package/build/utils/calculate-scale.js +0 -17
  403. package/build/utils/calculate-scale.js.map +0 -1
  404. package/build-module/utils/calculate-scale.js +0 -11
  405. package/build-module/utils/calculate-scale.js.map +0 -1
  406. package/src/hooks/anchor.scss +0 -4
  407. package/src/hooks/background.scss +0 -75
  408. package/src/utils/calculate-scale.js +0 -20
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 12.23.0 (2024-04-03)
6
+
7
+ ## 12.22.0 (2024-03-21)
8
+
5
9
  ## 12.21.0 (2024-03-06)
6
10
 
7
11
  ## 12.20.0 (2024-02-21)
package/README.md CHANGED
@@ -1028,6 +1028,10 @@ _Returns_
1028
1028
 
1029
1029
  - `any[]`: Returns the values defined for the settings.
1030
1030
 
1031
+ ### useZoomOut
1032
+
1033
+ A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode.
1034
+
1031
1035
  ### Warning
1032
1036
 
1033
1037
  _Related_
@@ -89,12 +89,10 @@ function BlockActions({
89
89
  return removeBlocks(clientIds, updateSelection);
90
90
  },
91
91
  onInsertBefore() {
92
- const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId;
93
- insertBeforeBlock(clientId);
92
+ insertBeforeBlock(clientIds[0]);
94
93
  },
95
94
  onInsertAfter() {
96
- const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId;
97
- insertAfterBlock(clientId);
95
+ insertAfterBlock(clientIds[clientIds.length - 1]);
98
96
  },
99
97
  onMoveTo() {
100
98
  setNavigationMode(true);
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_blocks","_useNotifyCopy","_usePasteStyles","_interopRequireDefault","_store","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","getDefaultBlockName","getGroupingBlockName","useSelect","blocksStore","selected","select","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","getDirectInsertBlock","canMoveBlocks","canRemoveBlocks","blockEditorStore","blocks","rootClientId","canInsertDefaultBlock","directInsertBlock","canMove","canRemove","canInsertBlock","canCopyStyles","every","block","hasBlockSupport","name","canDuplicate","getBlocks","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","useDispatch","notifyCopy","useNotifyCopy","pasteStyles","usePasteStyles","onDuplicate","onRemove","onInsertBefore","clientId","Array","isArray","onInsertAfter","length","onMoveTo","onGroup","groupingBlockName","newBlocks","switchToBlockType","onUngroup","innerBlocks","onCopy","onPasteStyles"],"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\t\t\tgetDefaultBlockName(),\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\tconst directInsertBlock = rootClientId\n\t\t\t\t? getDirectInsertBlock( rootClientId )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t\tcanInsertBlock: canInsertDefaultBlock || !! directInsertBlock,\n\t\t\t\tcanCopyStyles: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t( hasBlockSupport( block.name, 'color' ) ||\n\t\t\t\t\t\t\thasBlockSupport( block.name, 'typography' ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\tcanDuplicate: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, getDefaultBlockName ]\n\t);\n\tconst { getBlocksByClientId, getBlocks } = useSelect( blockEditorStore );\n\n\tconst { canMove, canRemove, canInsertBlock, canCopyStyles, canDuplicate } =\n\t\tselected;\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanCopyStyles,\n\t\tcanDuplicate,\n\t\tcanInsertBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tinsertBeforeBlock( clientId );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t: clientId;\n\t\t\tinsertAfterBlock( clientId );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\tgetBlocksByClientId( clientIds ),\n\t\t\t\tgroupingBlockName\n\t\t\t);\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = getBlocks( clientIds[ 0 ] );\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tif ( clientIds.length === 1 ) {\n\t\t\t\tflashBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', clientIds );\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( getBlocksByClientId( clientIds ) );\n\t\t},\n\t} );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_blocks","_useNotifyCopy","_usePasteStyles","_interopRequireDefault","_store","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","getDefaultBlockName","getGroupingBlockName","useSelect","blocksStore","selected","select","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","getDirectInsertBlock","canMoveBlocks","canRemoveBlocks","blockEditorStore","blocks","rootClientId","canInsertDefaultBlock","directInsertBlock","canMove","canRemove","canInsertBlock","canCopyStyles","every","block","hasBlockSupport","name","canDuplicate","getBlocks","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","useDispatch","notifyCopy","useNotifyCopy","pasteStyles","usePasteStyles","onDuplicate","onRemove","onInsertBefore","onInsertAfter","length","onMoveTo","onGroup","groupingBlockName","newBlocks","switchToBlockType","onUngroup","innerBlocks","onCopy","onPasteStyles"],"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\t\t\tgetDefaultBlockName(),\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\tconst directInsertBlock = rootClientId\n\t\t\t\t? getDirectInsertBlock( rootClientId )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t\tcanInsertBlock: canInsertDefaultBlock || !! directInsertBlock,\n\t\t\t\tcanCopyStyles: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t( hasBlockSupport( block.name, 'color' ) ||\n\t\t\t\t\t\t\thasBlockSupport( block.name, 'typography' ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\tcanDuplicate: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, getDefaultBlockName ]\n\t);\n\tconst { getBlocksByClientId, getBlocks } = useSelect( blockEditorStore );\n\n\tconst { canMove, canRemove, canInsertBlock, canCopyStyles, canDuplicate } =\n\t\tselected;\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanCopyStyles,\n\t\tcanDuplicate,\n\t\tcanInsertBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\tgetBlocksByClientId( clientIds ),\n\t\t\t\tgroupingBlockName\n\t\t\t);\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = getBlocks( clientIds[ 0 ] );\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tif ( clientIds.length === 1 ) {\n\t\t\t\tflashBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', clientIds );\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( getBlocksByClientId( clientIds ) );\n\t\t},\n\t} );\n}\n"],"mappings":"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"}
@@ -29,10 +29,10 @@ const POPOVER_PROPS = {
29
29
  *
30
30
  * @typedef WPHeadingLevelDropdownProps
31
31
  *
32
- * @property {number} value The chosen heading level.
33
- * @property {number[]} options An array of supported heading levels.
34
- * @property {(newValue:number)=>any} onChange Callback to run when
35
- * toolbar value is changed.
32
+ * @property {number} value The chosen heading level.
33
+ * @property {number[]} options An array of supported heading levels.
34
+ * @property {()=>number} onChange Function called with
35
+ * the selected value changes.
36
36
  */
37
37
 
38
38
  /**
@@ -60,7 +60,7 @@ function HeadingLevelDropdown({
60
60
  level: targetLevel
61
61
  }),
62
62
  title: targetLevel === 0 ? (0, _i18n.__)('Paragraph') : (0, _i18n.sprintf)(
63
- // translators: %s: heading level e.g: "1", "2", "3"
63
+ // translators: %d: heading level e.g: "1", "2", "3"
64
64
  (0, _i18n.__)('Heading %d'), targetLevel),
65
65
  isActive,
66
66
  onClick() {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_headingLevelIcon","_interopRequireDefault","HEADING_LEVELS","POPOVER_PROPS","className","HeadingLevelDropdown","options","value","onChange","_react","createElement","ToolbarDropdownMenu","popoverProps","icon","default","level","label","__","controls","map","targetLevel","isActive","title","sprintf","onClick","role"],"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarDropdownMenu } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelIcon from './heading-level-icon';\n\nconst HEADING_LEVELS = [ 1, 2, 3, 4, 5, 6 ];\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-library-heading-level-dropdown',\n};\n\n/** @typedef {import('react').ComponentType} ComponentType */\n\n/**\n * HeadingLevelDropdown props.\n *\n * @typedef WPHeadingLevelDropdownProps\n *\n * @property {number} value The chosen heading level.\n * @property {number[]} options An array of supported heading levels.\n * @property {(newValue:number)=>any} onChange Callback to run when\n * toolbar value is changed.\n */\n\n/**\n * Dropdown for selecting a heading level (1 through 6) or paragraph (0).\n *\n * @param {WPHeadingLevelDropdownProps} props Component props.\n *\n * @return {ComponentType} The toolbar.\n */\nexport default function HeadingLevelDropdown( {\n\toptions = HEADING_LEVELS,\n\tvalue,\n\tonChange,\n} ) {\n\treturn (\n\t\t<ToolbarDropdownMenu\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ticon={ <HeadingLevelIcon level={ value } /> }\n\t\t\tlabel={ __( 'Change level' ) }\n\t\t\tcontrols={ options.map( ( targetLevel ) => {\n\t\t\t\tconst isActive = targetLevel === value;\n\t\t\t\treturn {\n\t\t\t\t\ticon: <HeadingLevelIcon level={ targetLevel } />,\n\t\t\t\t\ttitle:\n\t\t\t\t\t\ttargetLevel === 0\n\t\t\t\t\t\t\t? __( 'Paragraph' )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\t\t\t\t\ttargetLevel\n\t\t\t\t\t\t\t ),\n\t\t\t\t\tisActive,\n\t\t\t\t\tonClick() {\n\t\t\t\t\t\tonChange( targetLevel );\n\t\t\t\t\t},\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t};\n\t\t\t} ) }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMI,cAAc,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;AAE3C,MAAMC,aAAa,GAAG;EACrBC,SAAS,EAAE;AACZ,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,oBAAoBA,CAAE;EAC7CC,OAAO,GAAGJ,cAAc;EACxBK,KAAK;EACLC;AACD,CAAC,EAAG;EACH,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACb,WAAA,CAAAc,mBAAmB;IACnBC,YAAY,EAAGT,aAAe;IAC9BU,IAAI,EAAG,IAAAJ,MAAA,CAAAC,aAAA,EAACV,iBAAA,CAAAc,OAAgB;MAACC,KAAK,EAAGR;IAAO,CAAE,CAAG;IAC7CS,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9BC,QAAQ,EAAGZ,OAAO,CAACa,GAAG,CAAIC,WAAW,IAAM;MAC1C,MAAMC,QAAQ,GAAGD,WAAW,KAAKb,KAAK;MACtC,OAAO;QACNM,IAAI,EAAE,IAAAJ,MAAA,CAAAC,aAAA,EAACV,iBAAA,CAAAc,OAAgB;UAACC,KAAK,EAAGK;QAAa,CAAE,CAAC;QAChDE,KAAK,EACJF,WAAW,KAAK,CAAC,GACd,IAAAH,QAAE,EAAE,WAAY,CAAC,GACjB,IAAAM,aAAO;QACP;QACA,IAAAN,QAAE,EAAE,YAAa,CAAC,EAClBG,WACA,CAAC;QACLC,QAAQ;QACRG,OAAOA,CAAA,EAAG;UACThB,QAAQ,CAAEY,WAAY,CAAC;QACxB,CAAC;QACDK,IAAI,EAAE;MACP,CAAC;IACF,CAAE;EAAG,CACL,CAAC;AAEJ"}
1
+ {"version":3,"names":["_components","require","_i18n","_headingLevelIcon","_interopRequireDefault","HEADING_LEVELS","POPOVER_PROPS","className","HeadingLevelDropdown","options","value","onChange","_react","createElement","ToolbarDropdownMenu","popoverProps","icon","default","level","label","__","controls","map","targetLevel","isActive","title","sprintf","onClick","role"],"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarDropdownMenu } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelIcon from './heading-level-icon';\n\nconst HEADING_LEVELS = [ 1, 2, 3, 4, 5, 6 ];\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-library-heading-level-dropdown',\n};\n\n/** @typedef {import('react').ComponentType} ComponentType */\n\n/**\n * HeadingLevelDropdown props.\n *\n * @typedef WPHeadingLevelDropdownProps\n *\n * @property {number} value The chosen heading level.\n * @property {number[]} options An array of supported heading levels.\n * @property {()=>number} onChange Function called with\n * the selected value changes.\n */\n\n/**\n * Dropdown for selecting a heading level (1 through 6) or paragraph (0).\n *\n * @param {WPHeadingLevelDropdownProps} props Component props.\n *\n * @return {ComponentType} The toolbar.\n */\nexport default function HeadingLevelDropdown( {\n\toptions = HEADING_LEVELS,\n\tvalue,\n\tonChange,\n} ) {\n\treturn (\n\t\t<ToolbarDropdownMenu\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ticon={ <HeadingLevelIcon level={ value } /> }\n\t\t\tlabel={ __( 'Change level' ) }\n\t\t\tcontrols={ options.map( ( targetLevel ) => {\n\t\t\t\tconst isActive = targetLevel === value;\n\t\t\t\treturn {\n\t\t\t\t\ticon: <HeadingLevelIcon level={ targetLevel } />,\n\t\t\t\t\ttitle:\n\t\t\t\t\t\ttargetLevel === 0\n\t\t\t\t\t\t\t? __( 'Paragraph' )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\t\t\t\t\ttargetLevel\n\t\t\t\t\t\t\t ),\n\t\t\t\t\tisActive,\n\t\t\t\t\tonClick() {\n\t\t\t\t\t\tonChange( targetLevel );\n\t\t\t\t\t},\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t};\n\t\t\t} ) }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMI,cAAc,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;AAE3C,MAAMC,aAAa,GAAG;EACrBC,SAAS,EAAE;AACZ,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,oBAAoBA,CAAE;EAC7CC,OAAO,GAAGJ,cAAc;EACxBK,KAAK;EACLC;AACD,CAAC,EAAG;EACH,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACb,WAAA,CAAAc,mBAAmB;IACnBC,YAAY,EAAGT,aAAe;IAC9BU,IAAI,EAAG,IAAAJ,MAAA,CAAAC,aAAA,EAACV,iBAAA,CAAAc,OAAgB;MAACC,KAAK,EAAGR;IAAO,CAAE,CAAG;IAC7CS,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9BC,QAAQ,EAAGZ,OAAO,CAACa,GAAG,CAAIC,WAAW,IAAM;MAC1C,MAAMC,QAAQ,GAAGD,WAAW,KAAKb,KAAK;MACtC,OAAO;QACNM,IAAI,EAAE,IAAAJ,MAAA,CAAAC,aAAA,EAACV,iBAAA,CAAAc,OAAgB;UAACC,KAAK,EAAGK;QAAa,CAAE,CAAC;QAChDE,KAAK,EACJF,WAAW,KAAK,CAAC,GACd,IAAAH,QAAE,EAAE,WAAY,CAAC,GACjB,IAAAM,aAAO;QACP;QACA,IAAAN,QAAE,EAAE,YAAa,CAAC,EAClBG,WACA,CAAC;QACLC,QAAQ;QACRG,OAAOA,CAAA,EAAG;UACThB,QAAQ,CAAEY,WAAY,CAAC;QACxB,CAAC;QACDK,IAAI,EAAE;MACP,CAAC;IACF,CAAE;EAAG,CACL,CAAC;AAEJ"}
@@ -26,9 +26,10 @@ const HEADING_LEVELS = [1, 2, 3, 4, 5, 6];
26
26
  *
27
27
  * @typedef WPHeadingLevelDropdownProps
28
28
  *
29
- * @property {number} selectedLevel The chosen heading level.
30
- * @property {(newValue:number)=>any} onChange Callback to run when
31
- * toolbar value is changed.
29
+ * @property {number} value The chosen heading level.
30
+ * @property {number[]} options An array of supported heading levels.
31
+ * @property {()=>number} onChange Function called with
32
+ * the selected value changes.
32
33
  */
33
34
 
34
35
  /**
@@ -50,7 +51,7 @@ function HeadingLevelDropdown({
50
51
  level: targetLevel,
51
52
  isPressed: isActive
52
53
  }),
53
- // translators: %s: heading level e.g: "1", "2", "3"
54
+ // translators: %d: heading level e.g: "1", "2", "3"
54
55
  title: (0, _i18n.sprintf)((0, _i18n.__)('Heading %d'), targetLevel),
55
56
  isActive,
56
57
  onClick: () => onChangeCallback(targetLevel)
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_headingLevelIcon","_interopRequireDefault","HEADING_LEVELS","HeadingLevelDropdown","options","value","onChange","createLevelControl","targetLevel","currentLevel","onChangeCallback","isActive","icon","_react","createElement","default","level","isPressed","title","sprintf","__","onClick","DropdownMenu","controls","map","index","label"],"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { DropdownMenu } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelIcon from './heading-level-icon';\n\nconst HEADING_LEVELS = [ 1, 2, 3, 4, 5, 6 ];\n\n/** @typedef {import('react').ComponentType} ComponentType */\n\n/**\n * HeadingLevelDropdown props.\n *\n * @typedef WPHeadingLevelDropdownProps\n *\n * @property {number} selectedLevel The chosen heading level.\n * @property {(newValue:number)=>any} onChange Callback to run when\n * toolbar value is changed.\n */\n\n/**\n * Dropdown for selecting a heading level (1 through 6).\n *\n * @param {WPHeadingLevelDropdownProps} props Component props.\n *\n * @return {ComponentType} The toolbar.\n */\nexport default function HeadingLevelDropdown( {\n\toptions = HEADING_LEVELS,\n\tvalue,\n\tonChange,\n} ) {\n\tconst createLevelControl = (\n\t\ttargetLevel,\n\t\tcurrentLevel,\n\t\tonChangeCallback\n\t) => {\n\t\tconst isActive = targetLevel === currentLevel;\n\t\treturn {\n\t\t\ticon: (\n\t\t\t\t<HeadingLevelIcon\n\t\t\t\t\tlevel={ targetLevel }\n\t\t\t\t\tisPressed={ isActive }\n\t\t\t\t/>\n\t\t\t),\n\t\t\t// translators: %s: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\ttitle: sprintf( __( 'Heading %d' ), targetLevel ),\n\t\t\tisActive,\n\t\t\tonClick: () => onChangeCallback( targetLevel ),\n\t\t};\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ <HeadingLevelIcon level={ value } /> }\n\t\t\tcontrols={ options.map( ( index ) =>\n\t\t\t\tcreateLevelControl( index, value, onChange )\n\t\t\t) }\n\t\t\tlabel={ __( 'Change level' ) }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMI,cAAc,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,oBAAoBA,CAAE;EAC7CC,OAAO,GAAGF,cAAc;EACxBG,KAAK;EACLC;AACD,CAAC,EAAG;EACH,MAAMC,kBAAkB,GAAGA,CAC1BC,WAAW,EACXC,YAAY,EACZC,gBAAgB,KACZ;IACJ,MAAMC,QAAQ,GAAGH,WAAW,KAAKC,YAAY;IAC7C,OAAO;MACNG,IAAI,EACH,IAAAC,MAAA,CAAAC,aAAA,EAACd,iBAAA,CAAAe,OAAgB;QAChBC,KAAK,EAAGR,WAAa;QACrBS,SAAS,EAAGN;MAAU,CACtB,CACD;MACD;MACAO,KAAK,EAAE,IAAAC,aAAO,EAAE,IAAAC,QAAE,EAAE,YAAa,CAAC,EAAEZ,WAAY,CAAC;MACjDG,QAAQ;MACRU,OAAO,EAAEA,CAAA,KAAMX,gBAAgB,CAAEF,WAAY;IAC9C,CAAC;EACF,CAAC;EAED,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAuB,YAAY;IACZV,IAAI,EAAG,IAAAC,MAAA,CAAAC,aAAA,EAACd,iBAAA,CAAAe,OAAgB;MAACC,KAAK,EAAGX;IAAO,CAAE,CAAG;IAC7CkB,QAAQ,EAAGnB,OAAO,CAACoB,GAAG,CAAIC,KAAK,IAC9BlB,kBAAkB,CAAEkB,KAAK,EAAEpB,KAAK,EAAEC,QAAS,CAC5C,CAAG;IACHoB,KAAK,EAAG,IAAAN,QAAE,EAAE,cAAe;EAAG,CAC9B,CAAC;AAEJ"}
1
+ {"version":3,"names":["_i18n","require","_components","_headingLevelIcon","_interopRequireDefault","HEADING_LEVELS","HeadingLevelDropdown","options","value","onChange","createLevelControl","targetLevel","currentLevel","onChangeCallback","isActive","icon","_react","createElement","default","level","isPressed","title","sprintf","__","onClick","DropdownMenu","controls","map","index","label"],"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { DropdownMenu } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelIcon from './heading-level-icon';\n\nconst HEADING_LEVELS = [ 1, 2, 3, 4, 5, 6 ];\n\n/** @typedef {import('react').ComponentType} ComponentType */\n\n/**\n * HeadingLevelDropdown props.\n *\n * @typedef WPHeadingLevelDropdownProps\n *\n * @property {number} value The chosen heading level.\n * @property {number[]} options An array of supported heading levels.\n * @property {()=>number} onChange Function called with\n * the selected value changes.\n */\n\n/**\n * Dropdown for selecting a heading level (1 through 6).\n *\n * @param {WPHeadingLevelDropdownProps} props Component props.\n *\n * @return {ComponentType} The toolbar.\n */\nexport default function HeadingLevelDropdown( {\n\toptions = HEADING_LEVELS,\n\tvalue,\n\tonChange,\n} ) {\n\tconst createLevelControl = (\n\t\ttargetLevel,\n\t\tcurrentLevel,\n\t\tonChangeCallback\n\t) => {\n\t\tconst isActive = targetLevel === currentLevel;\n\t\treturn {\n\t\t\ticon: (\n\t\t\t\t<HeadingLevelIcon\n\t\t\t\t\tlevel={ targetLevel }\n\t\t\t\t\tisPressed={ isActive }\n\t\t\t\t/>\n\t\t\t),\n\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\ttitle: sprintf( __( 'Heading %d' ), targetLevel ),\n\t\t\tisActive,\n\t\t\tonClick: () => onChangeCallback( targetLevel ),\n\t\t};\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ <HeadingLevelIcon level={ value } /> }\n\t\t\tcontrols={ options.map( ( index ) =>\n\t\t\t\tcreateLevelControl( index, value, onChange )\n\t\t\t) }\n\t\t\tlabel={ __( 'Change level' ) }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMI,cAAc,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,oBAAoBA,CAAE;EAC7CC,OAAO,GAAGF,cAAc;EACxBG,KAAK;EACLC;AACD,CAAC,EAAG;EACH,MAAMC,kBAAkB,GAAGA,CAC1BC,WAAW,EACXC,YAAY,EACZC,gBAAgB,KACZ;IACJ,MAAMC,QAAQ,GAAGH,WAAW,KAAKC,YAAY;IAC7C,OAAO;MACNG,IAAI,EACH,IAAAC,MAAA,CAAAC,aAAA,EAACd,iBAAA,CAAAe,OAAgB;QAChBC,KAAK,EAAGR,WAAa;QACrBS,SAAS,EAAGN;MAAU,CACtB,CACD;MACD;MACAO,KAAK,EAAE,IAAAC,aAAO,EAAE,IAAAC,QAAE,EAAE,YAAa,CAAC,EAAEZ,WAAY,CAAC;MACjDG,QAAQ;MACRU,OAAO,EAAEA,CAAA,KAAMX,gBAAgB,CAAEF,WAAY;IAC9C,CAAC;EACF,CAAC;EAED,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAuB,YAAY;IACZV,IAAI,EAAG,IAAAC,MAAA,CAAAC,aAAA,EAACd,iBAAA,CAAAe,OAAgB;MAACC,KAAK,EAAGX;IAAO,CAAE,CAAG;IAC7CkB,QAAQ,EAAGnB,OAAO,CAACoB,GAAG,CAAIC,KAAK,IAC9BlB,kBAAkB,CAAEkB,KAAK,EAAEpB,KAAK,EAAEC,QAAS,CAC5C,CAAG;IACHoB,KAAK,EAAG,IAAAN,QAAE,EAAE,cAAe;EAAG,CAC9B,CAAC;AAEJ"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _element = require("@wordpress/element");
8
+ var _reactNativeBridge = require("@wordpress/react-native-bridge");
9
+ /**
10
+ * WordPress dependencies
11
+ */
12
+
13
+ class BlockCrashBoundary extends _element.Component {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.state = {
17
+ error: null
18
+ };
19
+ }
20
+ static getDerivedStateFromError(error) {
21
+ return {
22
+ error
23
+ };
24
+ }
25
+ componentDidCatch(error) {
26
+ const {
27
+ blockName
28
+ } = this.props;
29
+ (0, _reactNativeBridge.logException)(error, {
30
+ context: {
31
+ component_stack: error.componentStack,
32
+ block_name: blockName
33
+ },
34
+ isHandled: true,
35
+ handledBy: 'Block-level Error Boundary'
36
+ });
37
+ }
38
+ render() {
39
+ const {
40
+ error
41
+ } = this.state;
42
+ if (!error) {
43
+ return this.props.children;
44
+ }
45
+ return this.props.fallback;
46
+ }
47
+ }
48
+ var _default = exports.default = BlockCrashBoundary;
49
+ //# sourceMappingURL=block-crash-boundary.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_reactNativeBridge","BlockCrashBoundary","Component","constructor","arguments","state","error","getDerivedStateFromError","componentDidCatch","blockName","props","logException","context","component_stack","componentStack","block_name","isHandled","handledBy","render","children","fallback","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-list/block-crash-boundary.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { logException } from '@wordpress/react-native-bridge';\n\nclass BlockCrashBoundary extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = {\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromError( error ) {\n\t\treturn { error };\n\t}\n\n\tcomponentDidCatch( error ) {\n\t\tconst { blockName } = this.props;\n\n\t\tlogException( error, {\n\t\t\tcontext: {\n\t\t\t\tcomponent_stack: error.componentStack,\n\t\t\t\tblock_name: blockName,\n\t\t\t},\n\t\t\tisHandled: true,\n\t\t\thandledBy: 'Block-level Error Boundary',\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { error } = this.state;\n\t\tif ( ! error ) {\n\t\t\treturn this.props.children;\n\t\t}\n\n\t\treturn this.props.fallback;\n\t}\n}\n\nexport default BlockCrashBoundary;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,kBAAkB,SAASC,kBAAS,CAAC;EAC1CC,WAAWA,CAAA,EAAG;IACb,KAAK,CAAE,GAAGC,SAAU,CAAC;IAErB,IAAI,CAACC,KAAK,GAAG;MACZC,KAAK,EAAE;IACR,CAAC;EACF;EAEA,OAAOC,wBAAwBA,CAAED,KAAK,EAAG;IACxC,OAAO;MAAEA;IAAM,CAAC;EACjB;EAEAE,iBAAiBA,CAAEF,KAAK,EAAG;IAC1B,MAAM;MAAEG;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAEhC,IAAAC,+BAAY,EAAEL,KAAK,EAAE;MACpBM,OAAO,EAAE;QACRC,eAAe,EAAEP,KAAK,CAACQ,cAAc;QACrCC,UAAU,EAAEN;MACb,CAAC;MACDO,SAAS,EAAE,IAAI;MACfC,SAAS,EAAE;IACZ,CAAE,CAAC;EACJ;EAEAC,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEZ;IAAM,CAAC,GAAG,IAAI,CAACD,KAAK;IAC5B,IAAK,CAAEC,KAAK,EAAG;MACd,OAAO,IAAI,CAACI,KAAK,CAACS,QAAQ;IAC3B;IAEA,OAAO,IAAI,CAACT,KAAK,CAACU,QAAQ;EAC3B;AACD;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEctB,kBAAkB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = require("react");
9
+ var _i18n = require("@wordpress/i18n");
10
+ var _warning = _interopRequireDefault(require("../warning"));
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+
19
+ const warning = (0, _react.createElement)(_warning.default, {
20
+ message: (0, _i18n.__)('This block has encountered an error and cannot be previewed.')
21
+ });
22
+ var _default = () => warning;
23
+ exports.default = _default;
24
+ //# sourceMappingURL=block-crash-warning.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_warning","_interopRequireDefault","warning","_react","createElement","default","message","__","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block-crash-warning.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\n\nconst warning = (\n\t<Warning\n\t\tmessage={ __(\n\t\t\t'This block has encountered an error and cannot be previewed.'\n\t\t) }\n\t/>\n);\n\nexport default () => warning;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMG,OAAO,GACZ,IAAAC,MAAA,CAAAC,aAAA,EAACJ,QAAA,CAAAK,OAAO;EACPC,OAAO,EAAG,IAAAC,QAAE,EACX,8DACD;AAAG,CACH,CACD;AAAC,IAAAC,QAAA,GAEaA,CAAA,KAAMN,OAAO;AAAAO,OAAA,CAAAJ,OAAA,GAAAG,QAAA"}
@@ -104,7 +104,7 @@ function BlockListBlock({
104
104
  const {
105
105
  removeBlock
106
106
  } = (0, _data.useDispatch)(_store.store);
107
- const onRemove = (0, _element.useCallback)(() => removeBlock(clientId), [clientId]);
107
+ const onRemove = (0, _element.useCallback)(() => removeBlock(clientId), [clientId, removeBlock]);
108
108
  const parentLayout = (0, _layout.useLayout)() || {};
109
109
 
110
110
  // We wrap the BlockEdit component in a div that hides it when editing in
@@ -189,6 +189,11 @@ function BlockListBlock({
189
189
  // We set a new context with the adjusted and filtered wrapperProps (through
190
190
  // `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have
191
191
  // access to.
192
+ // Note that the context value doesn't have to be memoized in this case
193
+ // because when it changes, this component will be re-rendered anyway, and
194
+ // none of the consumers (BlockListBlock and useBlockProps) are memoized or
195
+ // "pure". This is different from the public BlockEditContext, where
196
+ // consumers might be memoized or "pure".
192
197
  return (0, _react.createElement)(_privateBlockContext.PrivateBlockContext.Provider, {
193
198
  value: {
194
199
  wrapperProps: restWrapperProps,
@@ -349,8 +354,11 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, registry)
349
354
  }
350
355
  }
351
356
  moveFirstItemUp(rootClientId);
352
- } else {
353
- removeBlock(clientId);
357
+ } else if (getBlockName(clientId) !== (0, _blocks.getDefaultBlockName)()) {
358
+ const replacement = (0, _blocks.switchToBlockType)(getBlock(clientId), (0, _blocks.getDefaultBlockName)());
359
+ if (replacement && replacement.length) {
360
+ replaceBlocks(clientId, replacement);
361
+ }
354
362
  }
355
363
  }
356
364
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_privateBlockContext","_lockUnlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","Block","children","isHtml","props","_react","createElement","useBlockProps","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","useContext","PrivateBlockContext","removeBlock","useDispatch","blockEditorStore","onRemove","useCallback","parentLayout","useLayout","blockEdit","default","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","blockType","getBlockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","replacementBlocks","Array","isArray","selectionEnabled","compose","withFilters","BlockListBlockProvider","selectedProps","useSelect","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","unlock","blockWithoutAttributes","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","blocksStore","_isSelected","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","templateLock","isTemporarilyEditingAsBlocks","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","isReusableBlock","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","defaultClassName","getBlockDefaultClassName","useMemo","privateContext","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\n\t);\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\n\t\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\n\t\t\t\tisBlockMovingMode: !! movingClientId,\n\t\t\t\tcanInsertMovingBlock:\n\t\t\t\t\tmovingClientId &&\n\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\tgetBlockName( movingClientId ),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_privateBlockContext","_lockUnlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","Block","children","isHtml","props","_react","createElement","useBlockProps","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","useContext","PrivateBlockContext","removeBlock","useDispatch","blockEditorStore","onRemove","useCallback","parentLayout","useLayout","blockEdit","default","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","blockType","getBlockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","replacementBlocks","Array","isArray","selectionEnabled","compose","withFilters","BlockListBlockProvider","selectedProps","useSelect","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","unlock","blockWithoutAttributes","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","blocksStore","_isSelected","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","templateLock","isTemporarilyEditingAsBlocks","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","isReusableBlock","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","defaultClassName","getBlockDefaultClassName","useMemo","privateContext","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\n\t);\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else if (\n\t\t\t\t\tgetBlockName( clientId ) !== getDefaultBlockName()\n\t\t\t\t) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\n\t\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\n\t\t\t\tisBlockMovingMode: !! movingClientId,\n\t\t\t\tcanInsertMovingBlock:\n\t\t\t\t\tmovingClientId &&\n\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\tgetBlockName( movingClientId ),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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"}
@@ -22,6 +22,8 @@ var _layout = require("./layout");
22
22
  var _useScrollUponInsertion = _interopRequireDefault(require("./use-scroll-upon-insertion"));
23
23
  var _useSettings = require("../use-settings");
24
24
  var _lockUnlock = require("../../lock-unlock");
25
+ var _blockCrashBoundary = _interopRequireDefault(require("./block-crash-boundary"));
26
+ var _blockCrashWarning = _interopRequireDefault(require("./block-crash-warning"));
25
27
  /**
26
28
  * External dependencies
27
29
  */
@@ -111,12 +113,15 @@ function BlockWrapper({
111
113
  hasInnerBlocks: hasInnerBlocks,
112
114
  isSelected: isSelected,
113
115
  name: name
114
- }), (0, _react.createElement)(_blockDraggable.default, {
116
+ }), (0, _react.createElement)(_blockCrashBoundary.default, {
117
+ blockName: name,
118
+ fallback: (0, _react.createElement)(_blockCrashWarning.default, null)
119
+ }, (0, _react.createElement)(_blockDraggable.default, {
115
120
  clientId: clientId,
116
121
  draggingClientId: draggingClientId,
117
122
  enabled: draggingEnabled,
118
123
  testID: "draggable-trigger-content"
119
- }, children));
124
+ }, children)));
120
125
  }
121
126
  function BlockListBlock({
122
127
  attributes,