@wordpress/block-editor 10.4.0 → 11.0.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 (638) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +0 -1
  3. package/build/autocompleters/block.js +2 -6
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/autocompleters/link.js +2 -0
  6. package/build/autocompleters/link.js.map +1 -1
  7. package/build/components/block-card/index.js +51 -3
  8. package/build/components/block-card/index.js.map +1 -1
  9. package/build/components/block-draggable/index.native.js +46 -39
  10. package/build/components/block-draggable/index.native.js.map +1 -1
  11. package/build/components/block-edit/edit.js +4 -3
  12. package/build/components/block-edit/edit.js.map +1 -1
  13. package/build/components/block-edit/edit.native.js +4 -7
  14. package/build/components/block-edit/edit.native.js.map +1 -1
  15. package/build/components/block-inspector/index.js +35 -33
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block-list-context.native.js +5 -8
  18. package/build/components/block-list/block-list-context.native.js.map +1 -1
  19. package/build/components/block-list/block.js +55 -24
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/block.native.js +61 -28
  22. package/build/components/block-list/block.native.js.map +1 -1
  23. package/build/components/block-lock/menu-item.js +1 -1
  24. package/build/components/block-lock/menu-item.js.map +1 -1
  25. package/build/components/block-lock/modal.js +16 -9
  26. package/build/components/block-lock/modal.js.map +1 -1
  27. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +12 -4
  28. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +3 -2
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-patterns-list/index.js +33 -11
  32. package/build/components/block-patterns-list/index.js.map +1 -1
  33. package/build/components/block-preview/auto.js +9 -3
  34. package/build/components/block-preview/auto.js.map +1 -1
  35. package/build/components/block-preview/index.js +5 -9
  36. package/build/components/block-preview/index.js.map +1 -1
  37. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
  38. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  39. package/build/components/block-styles/utils.js +3 -3
  40. package/build/components/block-styles/utils.js.map +1 -1
  41. package/build/components/block-switcher/index.js +19 -4
  42. package/build/components/block-switcher/index.js.map +1 -1
  43. package/build/components/block-toolbar/index.js +5 -1
  44. package/build/components/block-toolbar/index.js.map +1 -1
  45. package/build/components/block-tools/insertion-point.js +8 -49
  46. package/build/components/block-tools/insertion-point.js.map +1 -1
  47. package/build/components/block-tools/selected-block-popover.js +27 -4
  48. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  49. package/build/components/block-variation-picker/index.js +1 -2
  50. package/build/components/block-variation-picker/index.js.map +1 -1
  51. package/build/components/colors/with-colors.js +4 -3
  52. package/build/components/colors/with-colors.js.map +1 -1
  53. package/build/components/font-sizes/fluid-utils.js +24 -40
  54. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  55. package/build/components/font-sizes/with-font-sizes.js +7 -5
  56. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  57. package/build/components/height-control/index.js +115 -0
  58. package/build/components/height-control/index.js.map +1 -0
  59. package/build/components/iframe/index.js +11 -8
  60. package/build/components/iframe/index.js.map +1 -1
  61. package/build/components/image-editor/use-save-image.js +2 -0
  62. package/build/components/image-editor/use-save-image.js.map +1 -1
  63. package/build/components/image-editor/zoom-dropdown.js +1 -0
  64. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  65. package/build/components/index.js +18 -0
  66. package/build/components/index.js.map +1 -1
  67. package/build/components/inner-blocks/index.js +25 -9
  68. package/build/components/inner-blocks/index.js.map +1 -1
  69. package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
  70. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  71. package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  72. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  73. package/build/components/inserter/block-patterns-tab.js +25 -46
  74. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  75. package/build/components/inserter/block-types-tab.js +3 -1
  76. package/build/components/inserter/block-types-tab.js.map +1 -1
  77. package/build/components/inserter/hooks/use-debounced-input.js +27 -0
  78. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
  79. package/build/components/inserter/index.js +8 -3
  80. package/build/components/inserter/index.js.map +1 -1
  81. package/build/components/inserter/index.native.js +3 -4
  82. package/build/components/inserter/index.native.js.map +1 -1
  83. package/build/components/inserter/media-tab/hooks.js +103 -0
  84. package/build/components/inserter/media-tab/hooks.js.map +1 -0
  85. package/build/components/inserter/media-tab/index.js +32 -0
  86. package/build/components/inserter/media-tab/index.js.map +1 -0
  87. package/build/components/inserter/media-tab/media-list.js +100 -0
  88. package/build/components/inserter/media-tab/media-list.js.map +1 -0
  89. package/build/components/inserter/media-tab/media-panel.js +96 -0
  90. package/build/components/inserter/media-tab/media-panel.js.map +1 -0
  91. package/build/components/inserter/media-tab/media-tab.js +120 -0
  92. package/build/components/inserter/media-tab/media-tab.js.map +1 -0
  93. package/build/components/inserter/media-tab/utils.js +54 -0
  94. package/build/components/inserter/media-tab/utils.js.map +1 -0
  95. package/build/components/inserter/menu.js +35 -12
  96. package/build/components/inserter/menu.js.map +1 -1
  97. package/build/components/inserter/mobile-tab-navigation.js +70 -0
  98. package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
  99. package/build/components/inserter/quick-inserter.js +1 -0
  100. package/build/components/inserter/quick-inserter.js.map +1 -1
  101. package/build/components/inserter/reusable-blocks-tab.js +4 -1
  102. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  103. package/build/components/inserter/search-results.js +3 -1
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter/tabs.js +16 -2
  106. package/build/components/inserter/tabs.js.map +1 -1
  107. package/build/components/inserter-list-item/index.js +4 -1
  108. package/build/components/inserter-list-item/index.js.map +1 -1
  109. package/build/components/inspector-controls/groups.js +2 -0
  110. package/build/components/inspector-controls/groups.js.map +1 -1
  111. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
  112. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  113. package/build/components/inspector-controls-tabs/index.js +71 -0
  114. package/build/components/inspector-controls-tabs/index.js.map +1 -0
  115. package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
  116. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  117. package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
  118. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  119. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
  120. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  121. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
  122. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  123. package/build/components/inspector-controls-tabs/utils.js +37 -0
  124. package/build/components/inspector-controls-tabs/utils.js.map +1 -0
  125. package/build/components/link-control/index.js +19 -34
  126. package/build/components/link-control/index.js.map +1 -1
  127. package/build/components/link-control/search-input.js +1 -2
  128. package/build/components/link-control/search-input.js.map +1 -1
  129. package/build/components/link-control/use-internal-input-value.js +26 -0
  130. package/build/components/link-control/use-internal-input-value.js.map +1 -0
  131. package/build/components/list-view/block.js +10 -5
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/branch.js +22 -15
  134. package/build/components/list-view/branch.js.map +1 -1
  135. package/build/components/media-upload/index.native.js +2 -3
  136. package/build/components/media-upload/index.native.js.map +1 -1
  137. package/build/components/off-canvas-editor/appender.js +104 -0
  138. package/build/components/off-canvas-editor/appender.js.map +1 -0
  139. package/build/components/off-canvas-editor/block-contents.js +100 -0
  140. package/build/components/off-canvas-editor/block-contents.js.map +1 -0
  141. package/build/components/off-canvas-editor/block-edit-button.js +50 -0
  142. package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
  143. package/build/components/off-canvas-editor/block-select-button.js +119 -0
  144. package/build/components/off-canvas-editor/block-select-button.js.map +1 -0
  145. package/build/components/off-canvas-editor/block.js +324 -0
  146. package/build/components/off-canvas-editor/block.js.map +1 -0
  147. package/build/components/off-canvas-editor/branch.js +179 -0
  148. package/build/components/off-canvas-editor/branch.js.map +1 -0
  149. package/build/components/off-canvas-editor/context.js +19 -0
  150. package/build/components/off-canvas-editor/context.js.map +1 -0
  151. package/build/components/off-canvas-editor/drop-indicator.js +118 -0
  152. package/build/components/off-canvas-editor/drop-indicator.js.map +1 -0
  153. package/build/components/off-canvas-editor/expander.js +41 -0
  154. package/build/components/off-canvas-editor/expander.js.map +1 -0
  155. package/build/components/off-canvas-editor/index.js +213 -0
  156. package/build/components/off-canvas-editor/index.js.map +1 -0
  157. package/build/components/off-canvas-editor/leaf.js +60 -0
  158. package/build/components/off-canvas-editor/leaf.js.map +1 -0
  159. package/build/components/off-canvas-editor/link-ui.js +185 -0
  160. package/build/components/off-canvas-editor/link-ui.js.map +1 -0
  161. package/build/components/off-canvas-editor/update-attributes.js +108 -0
  162. package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
  163. package/build/components/off-canvas-editor/use-block-selection.js +139 -0
  164. package/build/components/off-canvas-editor/use-block-selection.js.map +1 -0
  165. package/build/components/off-canvas-editor/use-list-view-client-ids.js +33 -0
  166. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
  167. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +235 -0
  168. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
  169. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +60 -0
  170. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
  171. package/build/components/off-canvas-editor/utils.js +60 -0
  172. package/build/components/off-canvas-editor/utils.js.map +1 -0
  173. package/build/components/rich-text/format-toolbar/index.js +8 -4
  174. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  175. package/build/components/rich-text/index.js +3 -3
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/index.native.js +0 -2
  178. package/build/components/rich-text/index.native.js.map +1 -1
  179. package/build/components/rich-text/use-insert-replacement-text.js +43 -0
  180. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
  181. package/build/components/rich-text/use-undo-automatic-change.js +9 -1
  182. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  183. package/build/components/rich-text/utils.js +1 -19
  184. package/build/components/rich-text/utils.js.map +1 -1
  185. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
  186. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  187. package/build/components/ungroup-button/index.native.js +4 -2
  188. package/build/components/ungroup-button/index.native.js.map +1 -1
  189. package/build/components/url-input/index.js +46 -43
  190. package/build/components/url-input/index.js.map +1 -1
  191. package/build/components/url-popover/index.js +31 -2
  192. package/build/components/url-popover/index.js.map +1 -1
  193. package/build/components/use-block-display-information/index.js +8 -4
  194. package/build/components/use-block-display-information/index.js.map +1 -1
  195. package/build/components/use-setting/index.js +10 -2
  196. package/build/components/use-setting/index.js.map +1 -1
  197. package/build/hooks/child-layout.js +209 -0
  198. package/build/hooks/child-layout.js.map +1 -0
  199. package/build/hooks/color-panel.js +17 -1
  200. package/build/hooks/color-panel.js.map +1 -1
  201. package/build/hooks/color.js +1 -1
  202. package/build/hooks/color.js.map +1 -1
  203. package/build/hooks/content-lock-ui.js +14 -7
  204. package/build/hooks/content-lock-ui.js.map +1 -1
  205. package/build/hooks/dimensions.js +65 -16
  206. package/build/hooks/dimensions.js.map +1 -1
  207. package/build/hooks/layout.js +59 -3
  208. package/build/hooks/layout.js.map +1 -1
  209. package/build/hooks/margin.js +4 -2
  210. package/build/hooks/margin.js.map +1 -1
  211. package/build/hooks/min-height.js +139 -0
  212. package/build/hooks/min-height.js.map +1 -0
  213. package/build/hooks/padding.js +4 -2
  214. package/build/hooks/padding.js.map +1 -1
  215. package/build/hooks/style.js +3 -2
  216. package/build/hooks/style.js.map +1 -1
  217. package/build/layouts/flex.js +22 -21
  218. package/build/layouts/flex.js.map +1 -1
  219. package/build/store/actions.js +26 -0
  220. package/build/store/actions.js.map +1 -1
  221. package/build/store/reducer.js +420 -265
  222. package/build/store/reducer.js.map +1 -1
  223. package/build/store/selectors.js +73 -49
  224. package/build/store/selectors.js.map +1 -1
  225. package/build/utils/sorting.js +63 -0
  226. package/build/utils/sorting.js.map +1 -0
  227. package/build-module/autocompleters/block.js +2 -6
  228. package/build-module/autocompleters/block.js.map +1 -1
  229. package/build-module/autocompleters/link.js +2 -0
  230. package/build-module/autocompleters/link.js.map +1 -1
  231. package/build-module/components/block-card/index.js +45 -3
  232. package/build-module/components/block-card/index.js.map +1 -1
  233. package/build-module/components/block-draggable/index.native.js +40 -31
  234. package/build-module/components/block-draggable/index.native.js.map +1 -1
  235. package/build-module/components/block-edit/edit.js +4 -2
  236. package/build-module/components/block-edit/edit.js.map +1 -1
  237. package/build-module/components/block-edit/edit.native.js +4 -6
  238. package/build-module/components/block-edit/edit.native.js.map +1 -1
  239. package/build-module/components/block-inspector/index.js +32 -30
  240. package/build-module/components/block-inspector/index.js.map +1 -1
  241. package/build-module/components/block-list/block-list-context.native.js +5 -8
  242. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  243. package/build-module/components/block-list/block.js +55 -25
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +61 -28
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-lock/menu-item.js +2 -2
  248. package/build-module/components/block-lock/menu-item.js.map +1 -1
  249. package/build-module/components/block-lock/modal.js +17 -10
  250. package/build-module/components/block-lock/modal.js.map +1 -1
  251. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +13 -6
  252. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  253. package/build-module/components/block-pattern-setup/index.js +3 -2
  254. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  255. package/build-module/components/block-patterns-list/index.js +35 -13
  256. package/build-module/components/block-patterns-list/index.js.map +1 -1
  257. package/build-module/components/block-preview/auto.js +9 -3
  258. package/build-module/components/block-preview/auto.js.map +1 -1
  259. package/build-module/components/block-preview/index.js +5 -8
  260. package/build-module/components/block-preview/index.js.map +1 -1
  261. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
  262. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  263. package/build-module/components/block-styles/utils.js +3 -3
  264. package/build-module/components/block-styles/utils.js.map +1 -1
  265. package/build-module/components/block-switcher/index.js +19 -4
  266. package/build-module/components/block-switcher/index.js.map +1 -1
  267. package/build-module/components/block-toolbar/index.js +6 -2
  268. package/build-module/components/block-toolbar/index.js.map +1 -1
  269. package/build-module/components/block-tools/insertion-point.js +8 -49
  270. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  271. package/build-module/components/block-tools/selected-block-popover.js +27 -5
  272. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  273. package/build-module/components/block-variation-picker/index.js +1 -2
  274. package/build-module/components/block-variation-picker/index.js.map +1 -1
  275. package/build-module/components/colors/with-colors.js +5 -4
  276. package/build-module/components/colors/with-colors.js.map +1 -1
  277. package/build-module/components/font-sizes/fluid-utils.js +24 -40
  278. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  279. package/build-module/components/font-sizes/with-font-sizes.js +8 -6
  280. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  281. package/build-module/components/height-control/index.js +103 -0
  282. package/build-module/components/height-control/index.js.map +1 -0
  283. package/build-module/components/iframe/index.js +11 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +2 -0
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/image-editor/zoom-dropdown.js +1 -0
  288. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  289. package/build-module/components/index.js +2 -0
  290. package/build-module/components/index.js.map +1 -1
  291. package/build-module/components/inner-blocks/index.js +27 -11
  292. package/build-module/components/inner-blocks/index.js.map +1 -1
  293. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
  294. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  295. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  296. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  297. package/build-module/components/inserter/block-patterns-tab.js +27 -49
  298. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  299. package/build-module/components/inserter/block-types-tab.js +3 -2
  300. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  301. package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
  302. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
  303. package/build-module/components/inserter/index.js +8 -3
  304. package/build-module/components/inserter/index.js.map +1 -1
  305. package/build-module/components/inserter/index.native.js +3 -5
  306. package/build-module/components/inserter/index.native.js.map +1 -1
  307. package/build-module/components/inserter/media-tab/hooks.js +89 -0
  308. package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
  309. package/build-module/components/inserter/media-tab/index.js +4 -0
  310. package/build-module/components/inserter/media-tab/index.js.map +1 -0
  311. package/build-module/components/inserter/media-tab/media-list.js +86 -0
  312. package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
  313. package/build-module/components/inserter/media-tab/media-panel.js +77 -0
  314. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
  315. package/build-module/components/inserter/media-tab/media-tab.js +100 -0
  316. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
  317. package/build-module/components/inserter/media-tab/utils.js +45 -0
  318. package/build-module/components/inserter/media-tab/utils.js.map +1 -0
  319. package/build-module/components/inserter/menu.js +33 -12
  320. package/build-module/components/inserter/menu.js.map +1 -1
  321. package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
  322. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
  323. package/build-module/components/inserter/quick-inserter.js +1 -0
  324. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  325. package/build-module/components/inserter/reusable-blocks-tab.js +3 -1
  326. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  327. package/build-module/components/inserter/search-results.js +3 -2
  328. package/build-module/components/inserter/search-results.js.map +1 -1
  329. package/build-module/components/inserter/tabs.js +15 -2
  330. package/build-module/components/inserter/tabs.js.map +1 -1
  331. package/build-module/components/inserter-list-item/index.js +5 -2
  332. package/build-module/components/inserter-list-item/index.js.map +1 -1
  333. package/build-module/components/inspector-controls/groups.js +2 -0
  334. package/build-module/components/inspector-controls/groups.js.map +1 -1
  335. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
  336. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  337. package/build-module/components/inspector-controls-tabs/index.js +56 -0
  338. package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
  339. package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
  340. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  341. package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
  342. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  343. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
  344. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  345. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
  346. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  347. package/build-module/components/inspector-controls-tabs/utils.js +26 -0
  348. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
  349. package/build-module/components/link-control/index.js +18 -34
  350. package/build-module/components/link-control/index.js.map +1 -1
  351. package/build-module/components/link-control/search-input.js +1 -2
  352. package/build-module/components/link-control/search-input.js.map +1 -1
  353. package/build-module/components/link-control/use-internal-input-value.js +18 -0
  354. package/build-module/components/link-control/use-internal-input-value.js.map +1 -0
  355. package/build-module/components/list-view/block.js +10 -5
  356. package/build-module/components/list-view/block.js.map +1 -1
  357. package/build-module/components/list-view/branch.js +21 -14
  358. package/build-module/components/list-view/branch.js.map +1 -1
  359. package/build-module/components/media-upload/index.native.js +2 -4
  360. package/build-module/components/media-upload/index.native.js.map +1 -1
  361. package/build-module/components/off-canvas-editor/appender.js +89 -0
  362. package/build-module/components/off-canvas-editor/appender.js.map +1 -0
  363. package/build-module/components/off-canvas-editor/block-contents.js +85 -0
  364. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -0
  365. package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
  366. package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
  367. package/build-module/components/off-canvas-editor/block-select-button.js +101 -0
  368. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -0
  369. package/build-module/components/off-canvas-editor/block.js +298 -0
  370. package/build-module/components/off-canvas-editor/block.js.map +1 -0
  371. package/build-module/components/off-canvas-editor/branch.js +164 -0
  372. package/build-module/components/off-canvas-editor/branch.js.map +1 -0
  373. package/build-module/components/off-canvas-editor/context.js +7 -0
  374. package/build-module/components/off-canvas-editor/context.js.map +1 -0
  375. package/build-module/components/off-canvas-editor/drop-indicator.js +111 -0
  376. package/build-module/components/off-canvas-editor/drop-indicator.js.map +1 -0
  377. package/build-module/components/off-canvas-editor/expander.js +32 -0
  378. package/build-module/components/off-canvas-editor/expander.js.map +1 -0
  379. package/build-module/components/off-canvas-editor/index.js +189 -0
  380. package/build-module/components/off-canvas-editor/index.js.map +1 -0
  381. package/build-module/components/off-canvas-editor/leaf.js +45 -0
  382. package/build-module/components/off-canvas-editor/leaf.js.map +1 -0
  383. package/build-module/components/off-canvas-editor/link-ui.js +165 -0
  384. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
  385. package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
  386. package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
  387. package/build-module/components/off-canvas-editor/use-block-selection.js +124 -0
  388. package/build-module/components/off-canvas-editor/use-block-selection.js.map +1 -0
  389. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +24 -0
  390. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
  391. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +220 -0
  392. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
  393. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +50 -0
  394. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
  395. package/build-module/components/off-canvas-editor/utils.js +44 -0
  396. package/build-module/components/off-canvas-editor/utils.js.map +1 -0
  397. package/build-module/components/rich-text/format-toolbar/index.js +6 -2
  398. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  399. package/build-module/components/rich-text/index.js +2 -3
  400. package/build-module/components/rich-text/index.js.map +1 -1
  401. package/build-module/components/rich-text/index.native.js +0 -2
  402. package/build-module/components/rich-text/index.native.js.map +1 -1
  403. package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
  404. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
  405. package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
  406. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  407. package/build-module/components/rich-text/utils.js +1 -16
  408. package/build-module/components/rich-text/utils.js.map +1 -1
  409. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
  410. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  411. package/build-module/components/ungroup-button/index.native.js +3 -2
  412. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  413. package/build-module/components/url-input/index.js +46 -43
  414. package/build-module/components/url-input/index.js.map +1 -1
  415. package/build-module/components/url-popover/index.js +30 -3
  416. package/build-module/components/url-popover/index.js.map +1 -1
  417. package/build-module/components/use-block-display-information/index.js +9 -5
  418. package/build-module/components/use-block-display-information/index.js.map +1 -1
  419. package/build-module/components/use-setting/index.js +9 -2
  420. package/build-module/components/use-setting/index.js.map +1 -1
  421. package/build-module/hooks/child-layout.js +189 -0
  422. package/build-module/hooks/child-layout.js.map +1 -0
  423. package/build-module/hooks/color-panel.js +17 -1
  424. package/build-module/hooks/color-panel.js.map +1 -1
  425. package/build-module/hooks/color.js +1 -1
  426. package/build-module/hooks/color.js.map +1 -1
  427. package/build-module/hooks/content-lock-ui.js +16 -9
  428. package/build-module/hooks/content-lock-ui.js.map +1 -1
  429. package/build-module/hooks/dimensions.js +60 -16
  430. package/build-module/hooks/dimensions.js.map +1 -1
  431. package/build-module/hooks/layout.js +57 -2
  432. package/build-module/hooks/layout.js.map +1 -1
  433. package/build-module/hooks/margin.js +4 -2
  434. package/build-module/hooks/margin.js.map +1 -1
  435. package/build-module/hooks/min-height.js +116 -0
  436. package/build-module/hooks/min-height.js.map +1 -0
  437. package/build-module/hooks/padding.js +4 -2
  438. package/build-module/hooks/padding.js.map +1 -1
  439. package/build-module/hooks/style.js +4 -3
  440. package/build-module/hooks/style.js.map +1 -1
  441. package/build-module/layouts/flex.js +23 -22
  442. package/build-module/layouts/flex.js.map +1 -1
  443. package/build-module/store/actions.js +22 -0
  444. package/build-module/store/actions.js.map +1 -1
  445. package/build-module/store/reducer.js +415 -265
  446. package/build-module/store/reducer.js.map +1 -1
  447. package/build-module/store/selectors.js +66 -48
  448. package/build-module/store/selectors.js.map +1 -1
  449. package/build-module/utils/sorting.js +56 -0
  450. package/build-module/utils/sorting.js.map +1 -0
  451. package/build-style/content-rtl.css +701 -0
  452. package/build-style/content.css +701 -0
  453. package/build-style/default-editor-styles-rtl.css +14 -0
  454. package/build-style/default-editor-styles.css +14 -0
  455. package/build-style/style-rtl.css +305 -668
  456. package/build-style/style.css +305 -668
  457. package/package.json +32 -30
  458. package/src/autocompleters/block.js +2 -6
  459. package/src/autocompleters/link.js +2 -0
  460. package/src/components/alignment-control/README.md +1 -1
  461. package/src/components/alignment-control/test/index.js +4 -1
  462. package/src/components/block-alignment-control/test/index.js +4 -1
  463. package/src/components/block-alignment-control/test/index.native.js +4 -4
  464. package/src/components/block-card/index.js +46 -2
  465. package/src/components/block-card/style.scss +4 -0
  466. package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
  467. package/src/components/block-draggable/content.scss +20 -0
  468. package/src/components/block-draggable/index.native.js +54 -40
  469. package/src/components/block-draggable/style.scss +0 -21
  470. package/src/components/block-draggable/test/helpers.native.js +7 -9
  471. package/src/components/block-draggable/test/index.native.js +35 -45
  472. package/src/components/block-edit/edit.js +5 -2
  473. package/src/components/block-edit/edit.native.js +5 -6
  474. package/src/components/block-inspector/index.js +96 -81
  475. package/src/components/block-inspector/style.scss +9 -1
  476. package/src/components/block-list/block-list-context.native.js +5 -8
  477. package/src/components/block-list/block.js +74 -23
  478. package/src/components/block-list/block.native.js +78 -23
  479. package/src/components/block-list/{style.scss → content.scss} +11 -20
  480. package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
  481. package/src/components/block-lock/menu-item.js +5 -2
  482. package/src/components/block-lock/modal.js +19 -36
  483. package/src/components/block-lock/style.scss +8 -17
  484. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +24 -6
  485. package/src/components/block-mover/style.scss +0 -1
  486. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -2
  487. package/src/components/block-pattern-setup/index.js +2 -1
  488. package/src/components/block-patterns-list/index.js +47 -24
  489. package/src/components/block-popover/style.scss +1 -1
  490. package/src/components/block-preview/README.md +15 -10
  491. package/src/components/block-preview/auto.js +7 -1
  492. package/src/components/block-preview/content.scss +4 -0
  493. package/src/components/block-preview/index.js +7 -12
  494. package/src/components/block-preview/style.scss +0 -7
  495. package/src/components/block-preview/test/index.js +18 -35
  496. package/src/components/block-selection-clearer/test/index.js +12 -12
  497. package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
  498. package/src/components/block-styles/utils.js +3 -3
  499. package/src/components/block-switcher/index.js +19 -4
  500. package/src/components/block-switcher/test/index.js +4 -0
  501. package/src/components/block-toolbar/index.js +12 -5
  502. package/src/components/block-toolbar/style.scss +10 -0
  503. package/src/components/block-tools/insertion-point.js +3 -47
  504. package/src/components/block-tools/selected-block-popover.js +80 -34
  505. package/src/components/block-tools/style.scss +27 -5
  506. package/src/components/block-variation-picker/index.js +1 -4
  507. package/src/components/block-vertical-alignment-control/test/index.js +4 -1
  508. package/src/components/colors/with-colors.js +13 -23
  509. package/src/components/default-block-appender/{style.scss → content.scss} +1 -0
  510. package/src/components/font-sizes/fluid-utils.js +37 -64
  511. package/src/components/font-sizes/test/fluid-utils.js +5 -5
  512. package/src/components/font-sizes/with-font-sizes.js +14 -11
  513. package/src/components/height-control/index.js +123 -0
  514. package/src/components/height-control/stories/index.js +21 -0
  515. package/src/components/height-control/style.scss +5 -0
  516. package/src/components/iframe/index.js +25 -18
  517. package/src/components/image-editor/use-save-image.js +2 -0
  518. package/src/components/image-editor/zoom-dropdown.js +1 -0
  519. package/src/components/index.js +2 -0
  520. package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
  521. package/src/components/inner-blocks/index.js +30 -10
  522. package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
  523. package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  524. package/src/components/inserter/block-patterns-tab.js +28 -71
  525. package/src/components/inserter/block-types-tab.js +3 -2
  526. package/src/components/inserter/hooks/use-debounced-input.js +17 -0
  527. package/src/components/inserter/index.js +10 -2
  528. package/src/components/inserter/index.native.js +1 -1
  529. package/src/components/inserter/media-tab/hooks.js +88 -0
  530. package/src/components/inserter/media-tab/index.js +3 -0
  531. package/src/components/inserter/media-tab/media-list.js +93 -0
  532. package/src/components/inserter/media-tab/media-panel.js +83 -0
  533. package/src/components/inserter/media-tab/media-tab.js +135 -0
  534. package/src/components/inserter/media-tab/utils.js +37 -0
  535. package/src/components/inserter/menu.js +55 -13
  536. package/src/components/inserter/mobile-tab-navigation.js +85 -0
  537. package/src/components/inserter/quick-inserter.js +1 -0
  538. package/src/components/inserter/reusable-blocks-tab.js +4 -2
  539. package/src/components/inserter/search-results.js +3 -2
  540. package/src/components/inserter/stories/index.js +1 -1
  541. package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
  542. package/src/components/inserter/style.scss +184 -18
  543. package/src/components/inserter/tabs.js +12 -1
  544. package/src/components/inserter/test/reusable-blocks-tab.js +14 -57
  545. package/src/components/inserter-list-item/index.js +11 -1
  546. package/src/components/inserter-list-item/style.scss +26 -0
  547. package/src/components/inspector-controls/groups.js +2 -0
  548. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
  549. package/src/components/inspector-controls-tabs/index.js +62 -0
  550. package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
  551. package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
  552. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
  553. package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
  554. package/src/components/inspector-controls-tabs/utils.js +28 -0
  555. package/src/components/line-height-control/test/index.js +5 -5
  556. package/src/components/link-control/README.md +1 -1
  557. package/src/components/link-control/index.js +24 -39
  558. package/src/components/link-control/search-input.js +1 -2
  559. package/src/components/link-control/test/index.js +400 -582
  560. package/src/components/link-control/use-internal-input-value.js +22 -0
  561. package/src/components/list-view/block.js +7 -3
  562. package/src/components/list-view/branch.js +21 -14
  563. package/src/components/list-view/style.scss +20 -9
  564. package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
  565. package/src/components/media-replace-flow/test/index.js +37 -9
  566. package/src/components/media-upload/test/index.native.js +2 -0
  567. package/src/components/off-canvas-editor/README.md +5 -0
  568. package/src/components/off-canvas-editor/appender.js +93 -0
  569. package/src/components/off-canvas-editor/block-contents.js +89 -0
  570. package/src/components/off-canvas-editor/block-edit-button.js +27 -0
  571. package/src/components/off-canvas-editor/block-select-button.js +113 -0
  572. package/src/components/off-canvas-editor/block.js +401 -0
  573. package/src/components/off-canvas-editor/branch.js +208 -0
  574. package/src/components/off-canvas-editor/context.js +8 -0
  575. package/src/components/off-canvas-editor/drop-indicator.js +126 -0
  576. package/src/components/off-canvas-editor/expander.js +26 -0
  577. package/src/components/off-canvas-editor/index.js +242 -0
  578. package/src/components/off-canvas-editor/leaf.js +52 -0
  579. package/src/components/off-canvas-editor/link-ui.js +166 -0
  580. package/src/components/off-canvas-editor/style.scss +26 -0
  581. package/src/components/off-canvas-editor/test/utils.js +50 -0
  582. package/src/components/off-canvas-editor/update-attributes.js +99 -0
  583. package/src/components/off-canvas-editor/use-block-selection.js +169 -0
  584. package/src/components/off-canvas-editor/use-list-view-client-ids.js +29 -0
  585. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +260 -0
  586. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +58 -0
  587. package/src/components/off-canvas-editor/utils.js +58 -0
  588. package/src/components/plain-text/{style.scss → content.scss} +0 -0
  589. package/src/components/recursion-provider/test/index.js +27 -29
  590. package/src/components/responsive-block-control/test/index.js +69 -92
  591. package/src/components/rich-text/content.scss +42 -0
  592. package/src/components/rich-text/format-toolbar/index.js +6 -4
  593. package/src/components/rich-text/index.js +2 -2
  594. package/src/components/rich-text/index.native.js +0 -2
  595. package/src/components/rich-text/style.scss +0 -43
  596. package/src/components/rich-text/use-insert-replacement-text.js +31 -0
  597. package/src/components/rich-text/use-undo-automatic-change.js +7 -1
  598. package/src/components/rich-text/utils.js +2 -21
  599. package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
  600. package/src/components/ungroup-button/index.native.js +6 -2
  601. package/src/components/url-input/index.js +57 -73
  602. package/src/components/url-popover/README.md +12 -3
  603. package/src/components/url-popover/index.js +33 -3
  604. package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
  605. package/src/components/url-popover/test/index.js +21 -9
  606. package/src/components/use-block-display-information/index.js +14 -5
  607. package/src/components/use-setting/index.js +20 -2
  608. package/src/components/use-setting/test/index.js +99 -0
  609. package/src/content.scss +10 -0
  610. package/src/hooks/child-layout.js +190 -0
  611. package/src/hooks/color-panel.js +13 -1
  612. package/src/hooks/color.js +2 -0
  613. package/src/hooks/content-lock-ui.js +47 -35
  614. package/src/hooks/dimensions.js +119 -21
  615. package/src/hooks/layout.js +62 -3
  616. package/src/hooks/margin.js +4 -3
  617. package/src/hooks/min-height.js +104 -0
  618. package/src/hooks/padding.js +4 -3
  619. package/src/hooks/style.js +10 -2
  620. package/src/hooks/test/style.js +4 -0
  621. package/src/hooks/test/use-typography-props.js +1 -1
  622. package/src/layouts/flex.js +43 -38
  623. package/src/store/actions.js +22 -0
  624. package/src/store/reducer.js +480 -434
  625. package/src/store/selectors.js +70 -64
  626. package/src/store/test/actions.js +18 -0
  627. package/src/store/test/performance.js +71 -0
  628. package/src/store/test/reducer.js +662 -490
  629. package/src/store/test/selectors.js +1839 -1306
  630. package/src/style.scss +4 -7
  631. package/src/utils/sorting.js +54 -0
  632. package/src/utils/test/sorting.js +49 -0
  633. package/tsconfig.tsbuildinfo +1 -1
  634. package/build/components/block-preview/live.js +0 -30
  635. package/build/components/block-preview/live.js.map +0 -1
  636. package/build-module/components/block-preview/live.js +0 -20
  637. package/build-module/components/block-preview/live.js.map +0 -1
  638. package/src/components/block-preview/live.js +0 -19
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _reactNative = require("react-native");
15
15
 
16
- var _lodash = require("lodash");
17
-
18
16
  var _components = require("@wordpress/components");
19
17
 
20
18
  var _data = require("@wordpress/data");
@@ -37,6 +35,8 @@ var _store = require("../../store");
37
35
 
38
36
  var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
39
37
 
38
+ var _layout = require("./layout");
39
+
40
40
  /**
41
41
  * External dependencies
42
42
  */
@@ -77,7 +77,11 @@ function BlockForType(_ref) {
77
77
  return (0, _components.getMergedGlobalStyles)(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes);
78
78
  }, [defaultColors, globalStyle, // I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.
79
79
  // Thanks to the JSON.stringify we check if the value is the same instead of reference.
80
- JSON.stringify(wrapperProps.style), JSON.stringify((0, _lodash.pick)(attributes, _components.GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES))]);
80
+ JSON.stringify(wrapperProps.style), JSON.stringify(Object.fromEntries(Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}).filter(_ref2 => {
81
+ let [key] = _ref2;
82
+ return _components.GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes(key);
83
+ })))]);
84
+ const parentLayout = (0, _layout.useLayout)();
81
85
  return (0, _element.createElement)(_components.GlobalStylesContext.Provider, {
82
86
  value: mergedStyle
83
87
  }, (0, _element.createElement)(_blockEdit.default, {
@@ -98,7 +102,8 @@ function BlockForType(_ref) {
98
102
  contentStyle: contentStyle,
99
103
  onDeleteBlock: onDeleteBlock,
100
104
  blockWidth: blockWidth,
101
- parentBlockAlignment: parentBlockAlignment
105
+ parentBlockAlignment: parentBlockAlignment,
106
+ __unstableParentLayout: parentLayout
102
107
  }), (0, _element.createElement)(_reactNative.View, {
103
108
  onLayout: getBlockWidth
104
109
  }));
@@ -137,10 +142,10 @@ class BlockListBlock extends _element.Component {
137
142
  }
138
143
  }
139
144
 
140
- getBlockWidth(_ref2) {
145
+ getBlockWidth(_ref3) {
141
146
  let {
142
147
  nativeEvent
143
- } = _ref2;
148
+ } = _ref3;
144
149
  const {
145
150
  layout
146
151
  } = nativeEvent;
@@ -289,12 +294,12 @@ function getWrapperProps(value, getWrapperPropsFunction) {
289
294
  return cachedValue;
290
295
  }
291
296
 
292
- var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
297
+ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref4) => {
293
298
  var _getSettings;
294
299
 
295
300
  let {
296
301
  clientId
297
- } = _ref3;
302
+ } = _ref4;
298
303
  const {
299
304
  getBlockIndex,
300
305
  getBlockCount,
@@ -379,10 +384,51 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
379
384
  getBlock,
380
385
  getBlockAttributes,
381
386
  getBlockName,
382
- getBlockOrder
383
- } = registry.select(_store.store); // For `Delete` or forward merge, we should do the exact same thing
387
+ getBlockOrder,
388
+ getBlockIndex,
389
+ getBlockRootClientId,
390
+ canInsertBlockType
391
+ } = registry.select(_store.store);
392
+ /**
393
+ * Moves the block with clientId up one level. If the block type
394
+ * cannot be inserted at the new location, it will be attempted to
395
+ * convert to the default block type.
396
+ *
397
+ * @param {string} _clientId The block to move.
398
+ * @param {boolean} changeSelection Whether to change the selection
399
+ * to the moved block.
400
+ */
401
+
402
+ function moveFirstItemUp(_clientId) {
403
+ let changeSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
404
+ const targetRootClientId = getBlockRootClientId(_clientId);
405
+ const blockOrder = getBlockOrder(_clientId);
406
+ const [firstClientId] = blockOrder;
407
+
408
+ if (blockOrder.length === 1 && (0, _blocks.isUnmodifiedBlock)(getBlock(firstClientId))) {
409
+ removeBlock(_clientId);
410
+ } else {
411
+ if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) {
412
+ moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId));
413
+ } else {
414
+ const replacement = (0, _blocks.switchToBlockType)(getBlock(firstClientId), (0, _blocks.getDefaultBlockName)());
415
+
416
+ if (replacement && replacement.length) {
417
+ registry.batch(() => {
418
+ insertBlocks(replacement, getBlockIndex(_clientId), targetRootClientId, changeSelection);
419
+ removeBlock(firstClientId, false);
420
+ });
421
+ }
422
+ }
423
+
424
+ if (!getBlockOrder(_clientId).length && (0, _blocks.isUnmodifiedBlock)(getBlock(_clientId))) {
425
+ removeBlock(_clientId, false);
426
+ }
427
+ }
428
+ } // For `Delete` or forward merge, we should do the exact same thing
384
429
  // as `Backspace`, but from the other block.
385
430
 
431
+
386
432
  if (forward) {
387
433
  if (rootClientId) {
388
434
  const nextRootClientId = getNextBlockClientId(rootClientId);
@@ -413,14 +459,10 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
413
459
 
414
460
  if (!nextBlockClientId) {
415
461
  return;
416
- } // Check if it's possibile to "unwrap" the following block
417
- // before trying to merge.
418
-
419
-
420
- const replacement = (0, _blocks.switchToBlockType)(getBlock(nextBlockClientId), '*');
462
+ }
421
463
 
422
- if (replacement && replacement.length) {
423
- replaceBlocks(nextBlockClientId, replacement);
464
+ if (getBlockOrder(nextBlockClientId).length) {
465
+ moveFirstItemUp(nextBlockClientId, false);
424
466
  } else {
425
467
  mergeBlocks(clientId, nextBlockClientId);
426
468
  }
@@ -444,18 +486,9 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
444
486
  });
445
487
  return;
446
488
  }
447
- } // Attempt to "unwrap" the block contents when there's no
448
- // preceding block to merge with.
449
-
450
-
451
- const replacement = (0, _blocks.switchToBlockType)(getBlock(rootClientId), '*');
452
-
453
- if (replacement && replacement.length) {
454
- registry.batch(() => {
455
- replaceBlocks(rootClientId, replacement);
456
- selectBlock(replacement[0].clientId, 0);
457
- });
458
489
  }
490
+
491
+ moveFirstItemUp(rootClientId);
459
492
  }
460
493
  }
461
494
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","onMerge","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","Component","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","styles","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","alignmentHelpers","accessible","screenWidth","Dimensions","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","blockEditorStore","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","registry","insertBlocks","mergeBlocks","replaceBlocks","selectBlock","updateBlockAttributes","moveBlocksToPosition","removeBlock","forward","rootClientId","getPreviousBlockClientId","getNextBlockClientId","getBlockAttributes","getBlockName","getBlockOrder","nextRootClientId","rootAttributes","previousRootAttributes","Object","keys","every","key","batch","nextBlockClientId","replacement","previousBlockClientId","previousRootClientId","index","initialPosition","indexToSelect","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tonMerge,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ onMerge }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor =\n\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected =\n\t\t\tselectedParents.includes( parentId );\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, registry ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t\tmoveBlocksToPosition,\n\t\t\tremoveBlock,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonMerge( forward ) {\n\t\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t\t// as `Backspace`, but from the other block.\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if it's possibile to \"unwrap\" the following block\n\t\t\t\t\t// before trying to merge.\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( nextBlockClientId ),\n\t\t\t\t\t\t'*'\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( nextBlockClientId, replacement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Attempt to \"unwrap\" the block contents when there's no\n\t\t\t\t\t\t// preceding block to merge with.\n\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\tgetBlock( rootClientId ),\n\t\t\t\t\t\t\t'*'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\treplaceBlocks( rootClientId, replacement );\n\t\t\t\t\t\t\t\tselectBlock( replacement[ 0 ].clientId, 0 );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","onMerge","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","includes","parentLayout","BlockListBlock","Component","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","styles","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","alignmentHelpers","accessible","screenWidth","Dimensions","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","blockEditorStore","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","registry","insertBlocks","mergeBlocks","replaceBlocks","selectBlock","updateBlockAttributes","moveBlocksToPosition","removeBlock","forward","rootClientId","getPreviousBlockClientId","getNextBlockClientId","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","replacement","batch","nextRootClientId","rootAttributes","previousRootAttributes","keys","every","nextBlockClientId","previousBlockClientId","previousRootClientId","index","initialPosition","indexToSelect","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { useLayout } from './layout';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tonMerge,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst parentLayout = useLayout();\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ onMerge }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t__unstableParentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor =\n\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected =\n\t\t\tselectedParents.includes( parentId );\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, registry ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t\tmoveBlocksToPosition,\n\t\t\tremoveBlock,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonMerge( forward ) {\n\t\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t\t/**\n\t\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t\t * convert to the default block type.\n\t\t\t\t *\n\t\t\t\t * @param {string} _clientId The block to move.\n\t\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t\t * to the moved block.\n\t\t\t\t */\n\t\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\t\tconst targetRootClientId =\n\t\t\t\t\t\tgetBlockRootClientId( _clientId );\n\t\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t\t// as `Backspace`, but from the other block.\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
@@ -42,7 +42,7 @@ function BlockLockMenuItem(_ref) {
42
42
 
43
43
  const label = isLocked ? (0, _i18n.__)('Unlock') : (0, _i18n.__)('Lock');
44
44
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuItem, {
45
- icon: isLocked ? _icons.unlock : _icons.lock,
45
+ icon: isLocked ? _icons.unlock : _icons.lockOutline,
46
46
  onClick: toggleModal
47
47
  }, label), isModalOpen && (0, _element.createElement)(_modal.default, {
48
48
  clientId: clientId,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/menu-item.js"],"names":["BlockLockMenuItem","clientId","canLock","isLocked","isModalOpen","toggleModal","isActive","label","unlock","lock"],"mappings":";;;;;;;;;AAIA;;AADA;;AAEA;;AACA;;AAKA;;AACA;;AAZA;AACA;AACA;;AAMA;AACA;AACA;AAIe,SAASA,iBAAT,OAA2C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACzD,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAwB,2BAAcF,QAAd,CAA9B;AAEA,QAAM,CAAEG,WAAF,EAAeC,WAAf,IAA+B,yBAClCC,QAAF,IAAgB,CAAEA,QADkB,EAEpC,KAFoC,CAArC;;AAKA,MAAK,CAAEJ,OAAP,EAAiB;AAChB,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GAAGJ,QAAQ,GAAG,cAAI,QAAJ,CAAH,GAAoB,cAAI,MAAJ,CAA1C;AAEA,SACC,qDACC,4BAAC,oBAAD;AAAU,IAAA,IAAI,EAAGA,QAAQ,GAAGK,aAAH,GAAYC,WAArC;AAA4C,IAAA,OAAO,EAAGJ;AAAtD,KACGE,KADH,CADD,EAIGH,WAAW,IACZ,4BAAC,cAAD;AAAgB,IAAA,QAAQ,EAAGH,QAA3B;AAAsC,IAAA,OAAO,EAAGI;AAAhD,IALF,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useReducer } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { lock, unlock } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport BlockLockModal from './modal';\n\nexport default function BlockLockMenuItem( { clientId } ) {\n\tconst { canLock, isLocked } = useBlockLock( clientId );\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tif ( ! canLock ) {\n\t\treturn null;\n\t}\n\n\tconst label = isLocked ? __( 'Unlock' ) : __( 'Lock' );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem icon={ isLocked ? unlock : lock } onClick={ toggleModal }>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/menu-item.js"],"names":["BlockLockMenuItem","clientId","canLock","isLocked","isModalOpen","toggleModal","isActive","label","unlock","lockOutline"],"mappings":";;;;;;;;;AAIA;;AADA;;AAEA;;AACA;;AAKA;;AACA;;AAZA;AACA;AACA;;AAMA;AACA;AACA;AAIe,SAASA,iBAAT,OAA2C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACzD,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAwB,2BAAcF,QAAd,CAA9B;AAEA,QAAM,CAAEG,WAAF,EAAeC,WAAf,IAA+B,yBAClCC,QAAF,IAAgB,CAAEA,QADkB,EAEpC,KAFoC,CAArC;;AAKA,MAAK,CAAEJ,OAAP,EAAiB;AAChB,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GAAGJ,QAAQ,GAAG,cAAI,QAAJ,CAAH,GAAoB,cAAI,MAAJ,CAA1C;AAEA,SACC,qDACC,4BAAC,oBAAD;AACC,IAAA,IAAI,EAAGA,QAAQ,GAAGK,aAAH,GAAYC,kBAD5B;AAEC,IAAA,OAAO,EAAGJ;AAFX,KAIGE,KAJH,CADD,EAOGH,WAAW,IACZ,4BAAC,cAAD;AAAgB,IAAA,QAAQ,EAAGH,QAA3B;AAAsC,IAAA,OAAO,EAAGI;AAAhD,IARF,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useReducer } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { lockOutline, unlock } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport BlockLockModal from './modal';\n\nexport default function BlockLockMenuItem( { clientId } ) {\n\tconst { canLock, isLocked } = useBlockLock( clientId );\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tif ( ! canLock ) {\n\t\treturn null;\n\t}\n\n\tconst label = isLocked ? __( 'Unlock' ) : __( 'Lock' );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ isLocked ? unlock : lockOutline }\n\t\t\t\tonClick={ toggleModal }\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -122,6 +122,7 @@ function BlockLockModal(_ref) {
122
122
  "aria-labelledby": instanceId,
123
123
  className: "block-editor-block-lock-modal__options"
124
124
  }, (0, _element.createElement)(_components.CheckboxControl, {
125
+ __nextHasNoMarginBottom: true,
125
126
  className: "block-editor-block-lock-modal__options-title",
126
127
  label: (0, _element.createElement)("span", {
127
128
  id: instanceId
@@ -140,33 +141,39 @@ function BlockLockModal(_ref) {
140
141
  }, allowsEditLocking && (0, _element.createElement)("li", {
141
142
  className: "block-editor-block-lock-modal__checklist-item"
142
143
  }, (0, _element.createElement)(_components.CheckboxControl, {
143
- label: (0, _element.createElement)(_element.Fragment, null, (0, _i18n.__)('Restrict editing'), (0, _element.createElement)(_components.Icon, {
144
- icon: lock.edit ? _icons.lock : _icons.unlock
145
- })),
144
+ __nextHasNoMarginBottom: true,
145
+ label: (0, _i18n.__)('Restrict editing'),
146
146
  checked: !!lock.edit,
147
147
  onChange: edit => setLock(prevLock => ({ ...prevLock,
148
148
  edit
149
149
  }))
150
+ }), (0, _element.createElement)(_components.Icon, {
151
+ className: "block-editor-block-lock-modal__lock-icon",
152
+ icon: lock.edit ? _icons.lock : _icons.unlock
150
153
  })), (0, _element.createElement)("li", {
151
154
  className: "block-editor-block-lock-modal__checklist-item"
152
155
  }, (0, _element.createElement)(_components.CheckboxControl, {
153
- label: (0, _element.createElement)(_element.Fragment, null, (0, _i18n.__)('Disable movement'), (0, _element.createElement)(_components.Icon, {
154
- icon: lock.move ? _icons.lock : _icons.unlock
155
- })),
156
+ __nextHasNoMarginBottom: true,
157
+ label: (0, _i18n.__)('Disable movement'),
156
158
  checked: lock.move,
157
159
  onChange: move => setLock(prevLock => ({ ...prevLock,
158
160
  move
159
161
  }))
162
+ }), (0, _element.createElement)(_components.Icon, {
163
+ className: "block-editor-block-lock-modal__lock-icon",
164
+ icon: lock.move ? _icons.lock : _icons.unlock
160
165
  })), (0, _element.createElement)("li", {
161
166
  className: "block-editor-block-lock-modal__checklist-item"
162
167
  }, (0, _element.createElement)(_components.CheckboxControl, {
163
- label: (0, _element.createElement)(_element.Fragment, null, (0, _i18n.__)('Prevent removal'), (0, _element.createElement)(_components.Icon, {
164
- icon: lock.remove ? _icons.lock : _icons.unlock
165
- })),
168
+ __nextHasNoMarginBottom: true,
169
+ label: (0, _i18n.__)('Prevent removal'),
166
170
  checked: lock.remove,
167
171
  onChange: remove => setLock(prevLock => ({ ...prevLock,
168
172
  remove
169
173
  }))
174
+ }), (0, _element.createElement)(_components.Icon, {
175
+ className: "block-editor-block-lock-modal__lock-icon",
176
+ icon: lock.remove ? _icons.lock : _icons.unlock
170
177
  }))), hasTemplateLock && (0, _element.createElement)(_components.ToggleControl, {
171
178
  className: "block-editor-block-lock-modal__template-lock",
172
179
  label: (0, _i18n.__)('Apply to all blocks inside'),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"names":["ALLOWS_EDIT_LOCKING","getTemplateLockValue","lock","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockEditorStore","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","instanceId","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","event","preventDefault","undefined","newValue","lockIcon","unlockIcon","prevLock"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/block', 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId(\n\t\tBlockLockModal,\n\t\t'block-editor-block-lock-modal__options-title'\n\t);\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\taria-labelledby={ instanceId }\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-title\"\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t<span id={ instanceId }>{ __( 'Lock all' ) }</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ul className=\"block-editor-block-lock-modal__checklist\">\n\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.move\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.remove\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"names":["ALLOWS_EDIT_LOCKING","getTemplateLockValue","lock","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockEditorStore","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","instanceId","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","event","preventDefault","undefined","newValue","prevLock","lockIcon","unlockIcon"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/block', 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId(\n\t\tBlockLockModal,\n\t\t'block-editor-block-lock-modal__options-title'\n\t);\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\taria-labelledby={ instanceId }\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-title\"\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t<span id={ instanceId }>{ __( 'Lock all' ) }</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ul className=\"block-editor-block-lock-modal__checklist\">\n\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lock.edit ? lockIcon : unlockIcon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\ticon={ lock.move ? lockIcon : unlockIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\ticon={ lock.remove ? lockIcon : unlockIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"]}
@@ -42,6 +42,8 @@ var _blockTransformationsMenu = _interopRequireDefault(require("../block-switche
42
42
  /**
43
43
  * WordPress dependencies
44
44
  */
45
+ // Disable Reason: Needs to be refactored.
46
+ // eslint-disable-next-line no-restricted-imports
45
47
 
46
48
  /**
47
49
  * Internal dependencies
@@ -88,6 +90,7 @@ const BlockActionsMenu = _ref => {
88
90
  HTML: clipboard
89
91
  })[0];
90
92
  const isPasteEnabled = clipboardBlock && canInsertBlockType(clipboardBlock.name, rootClientId);
93
+ const innerBlockCount = (0, _data.useSelect)(select => select(_store.store).getBlockCount(selectedBlockClientId), [selectedBlockClientId]);
91
94
  const {
92
95
  actionTitle: {
93
96
  backward: backwardButtonTitle,
@@ -182,14 +185,17 @@ const BlockActionsMenu = _ref => {
182
185
  },
183
186
  convertToRegularBlocks: {
184
187
  id: 'convertToRegularBlocksOption',
185
- label: (0, _i18n.__)('Convert to regular blocks'),
188
+ label: innerBlockCount > 1 ? (0, _i18n.__)('Convert to regular blocks') : (0, _i18n.__)('Convert to regular block'),
186
189
  value: 'convertToRegularBlocksOption',
187
190
  onSelect: () => {
188
191
  var _reusableBlock$title;
189
192
 
190
- createSuccessNotice((0, _i18n.sprintf)(
193
+ const successNotice = innerBlockCount > 1 ?
191
194
  /* translators: %s: name of the reusable block */
192
- (0, _i18n.__)('%s converted to regular blocks'), (reusableBlock === null || reusableBlock === void 0 ? void 0 : (_reusableBlock$title = reusableBlock.title) === null || _reusableBlock$title === void 0 ? void 0 : _reusableBlock$title.raw) || blockTitle));
195
+ (0, _i18n.__)('%s converted to regular blocks') :
196
+ /* translators: %s: name of the reusable block */
197
+ (0, _i18n.__)('%s converted to regular block');
198
+ createSuccessNotice((0, _i18n.sprintf)(successNotice, (reusableBlock === null || reusableBlock === void 0 ? void 0 : (_reusableBlock$title = reusableBlock.title) === null || _reusableBlock$title === void 0 ? void 0 : _reusableBlock$title.raw) || blockTitle));
193
199
  convertToRegularBlocks();
194
200
  }
195
201
  }
@@ -258,6 +264,8 @@ const BlockActionsMenu = _ref => {
258
264
  }));
259
265
  };
260
266
 
267
+ const EMPTY_BLOCK_LIST = [];
268
+
261
269
  var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
262
270
  let {
263
271
  clientIds
@@ -295,7 +303,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
295
303
  const isLocked = !!getTemplateLock(rootClientId);
296
304
  const selectedBlockClientId = getSelectedBlockClientIds()[0];
297
305
  const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
298
- const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems([selectedBlock], rootClientId) : [];
306
+ const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
299
307
  const isReusableBlockType = block ? (0, _blocks.isReusableBlock)(block) : false;
300
308
  const reusableBlock = isReusableBlockType ? select(_coreData.store).getEntityRecord('postType', 'wp_block', block === null || block === void 0 ? void 0 : block.attributes.ref) : undefined;
301
309
  return {