@wordpress/block-editor 10.5.0 → 11.1.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 (716) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +2 -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/alignment-control/ui.js +1 -7
  8. package/build/components/alignment-control/ui.js.map +1 -1
  9. package/build/components/block-alignment-control/use-available-alignments.js +4 -3
  10. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  11. package/build/components/block-card/index.js +51 -3
  12. package/build/components/block-card/index.js.map +1 -1
  13. package/build/components/block-draggable/index.native.js +46 -39
  14. package/build/components/block-draggable/index.native.js.map +1 -1
  15. package/build/components/block-edit/edit.js +4 -3
  16. package/build/components/block-edit/edit.js.map +1 -1
  17. package/build/components/block-edit/edit.native.js +4 -7
  18. package/build/components/block-edit/edit.native.js.map +1 -1
  19. package/build/components/block-icon/index.js +4 -2
  20. package/build/components/block-icon/index.js.map +1 -1
  21. package/build/components/block-inspector/index.js +90 -37
  22. package/build/components/block-inspector/index.js.map +1 -1
  23. package/build/components/block-list/block-list-context.native.js +5 -8
  24. package/build/components/block-list/block-list-context.native.js.map +1 -1
  25. package/build/components/block-list/block.js +55 -24
  26. package/build/components/block-list/block.js.map +1 -1
  27. package/build/components/block-list/block.native.js +61 -28
  28. package/build/components/block-list/block.native.js.map +1 -1
  29. package/build/components/block-list-appender/index.js +46 -34
  30. package/build/components/block-list-appender/index.js.map +1 -1
  31. package/build/components/block-list-appender/index.native.js +39 -34
  32. package/build/components/block-list-appender/index.native.js.map +1 -1
  33. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +30 -22
  34. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  35. package/build/components/block-mobile-toolbar/index.native.js +1 -1
  36. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  37. package/build/components/block-pattern-setup/index.js +16 -8
  38. package/build/components/block-pattern-setup/index.js.map +1 -1
  39. package/build/components/block-patterns-list/index.js +33 -11
  40. package/build/components/block-patterns-list/index.js.map +1 -1
  41. package/build/components/block-preview/auto.js +9 -3
  42. package/build/components/block-preview/auto.js.map +1 -1
  43. package/build/components/block-preview/index.js +5 -9
  44. package/build/components/block-preview/index.js.map +1 -1
  45. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
  46. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  47. package/build/components/block-styles/index.native.js +1 -3
  48. package/build/components/block-styles/index.native.js.map +1 -1
  49. package/build/components/block-styles/utils.js +7 -10
  50. package/build/components/block-styles/utils.js.map +1 -1
  51. package/build/components/block-toolbar/index.js +5 -1
  52. package/build/components/block-toolbar/index.js.map +1 -1
  53. package/build/components/block-toolbar/index.native.js +6 -8
  54. package/build/components/block-toolbar/index.native.js.map +1 -1
  55. package/build/components/block-tools/insertion-point.js +8 -49
  56. package/build/components/block-tools/insertion-point.js.map +1 -1
  57. package/build/components/block-tools/selected-block-popover.js +1 -3
  58. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  59. package/build/components/block-variation-picker/index.js +2 -3
  60. package/build/components/block-variation-picker/index.js.map +1 -1
  61. package/build/components/colors/utils.js +2 -6
  62. package/build/components/colors/utils.js.map +1 -1
  63. package/build/components/colors-gradients/control.js +0 -3
  64. package/build/components/colors-gradients/control.js.map +1 -1
  65. package/build/components/colors-gradients/dropdown.js +0 -2
  66. package/build/components/colors-gradients/dropdown.js.map +1 -1
  67. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -19
  68. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  69. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -3
  70. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  71. package/build/components/copy-handler/index.js +37 -9
  72. package/build/components/copy-handler/index.js.map +1 -1
  73. package/build/components/font-sizes/fluid-utils.js +5 -2
  74. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  75. package/build/components/font-sizes/utils.js +10 -4
  76. package/build/components/font-sizes/utils.js.map +1 -1
  77. package/build/components/font-sizes/with-font-sizes.js +11 -6
  78. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  79. package/build/components/gradients/use-gradient.js +2 -8
  80. package/build/components/gradients/use-gradient.js.map +1 -1
  81. package/build/components/height-control/index.js +115 -0
  82. package/build/components/height-control/index.js.map +1 -0
  83. package/build/components/iframe/index.js +22 -101
  84. package/build/components/iframe/index.js.map +1 -1
  85. package/build/components/iframe/use-compatibility-styles.js +93 -0
  86. package/build/components/iframe/use-compatibility-styles.js.map +1 -0
  87. package/build/components/image-editor/use-save-image.js +2 -0
  88. package/build/components/image-editor/use-save-image.js.map +1 -1
  89. package/build/components/image-editor/zoom-dropdown.js +1 -0
  90. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  91. package/build/components/index.js +9 -0
  92. package/build/components/index.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +25 -7
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
  96. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  98. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab.js +25 -46
  100. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  101. package/build/components/inserter/block-types-tab.js +3 -1
  102. package/build/components/inserter/block-types-tab.js.map +1 -1
  103. package/build/components/inserter/hooks/use-debounced-input.js +27 -0
  104. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
  105. package/build/components/inserter/hooks/use-insertion-point.js +4 -3
  106. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  107. package/build/components/inserter/index.js +20 -6
  108. package/build/components/inserter/index.js.map +1 -1
  109. package/build/components/inserter/index.native.js +3 -4
  110. package/build/components/inserter/index.native.js.map +1 -1
  111. package/build/components/inserter/media-tab/hooks.js +106 -0
  112. package/build/components/inserter/media-tab/hooks.js.map +1 -0
  113. package/build/components/inserter/media-tab/index.js +32 -0
  114. package/build/components/inserter/media-tab/index.js.map +1 -0
  115. package/build/components/inserter/media-tab/media-list.js +100 -0
  116. package/build/components/inserter/media-tab/media-list.js.map +1 -0
  117. package/build/components/inserter/media-tab/media-panel.js +96 -0
  118. package/build/components/inserter/media-tab/media-panel.js.map +1 -0
  119. package/build/components/inserter/media-tab/media-tab.js +120 -0
  120. package/build/components/inserter/media-tab/media-tab.js.map +1 -0
  121. package/build/components/inserter/media-tab/utils.js +54 -0
  122. package/build/components/inserter/media-tab/utils.js.map +1 -0
  123. package/build/components/inserter/menu.js +35 -12
  124. package/build/components/inserter/menu.js.map +1 -1
  125. package/build/components/inserter/mobile-tab-navigation.js +70 -0
  126. package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
  127. package/build/components/inserter/quick-inserter.js +7 -3
  128. package/build/components/inserter/quick-inserter.js.map +1 -1
  129. package/build/components/inserter/search-items.js +15 -14
  130. package/build/components/inserter/search-items.js.map +1 -1
  131. package/build/components/inserter/search-results.js +7 -3
  132. package/build/components/inserter/search-results.js.map +1 -1
  133. package/build/components/inserter/tabs.js +16 -2
  134. package/build/components/inserter/tabs.js.map +1 -1
  135. package/build/components/inserter-list-item/index.js +4 -1
  136. package/build/components/inserter-list-item/index.js.map +1 -1
  137. package/build/components/inspector-controls/groups.js +2 -0
  138. package/build/components/inspector-controls/groups.js.map +1 -1
  139. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
  140. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  141. package/build/components/inspector-controls-tabs/index.js +71 -0
  142. package/build/components/inspector-controls-tabs/index.js.map +1 -0
  143. package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
  144. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  145. package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
  146. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  147. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
  148. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  149. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
  150. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  151. package/build/components/inspector-controls-tabs/utils.js +37 -0
  152. package/build/components/inspector-controls-tabs/utils.js.map +1 -0
  153. package/build/components/link-control/index.js +1 -0
  154. package/build/components/link-control/index.js.map +1 -1
  155. package/build/components/link-control/search-input.js +0 -1
  156. package/build/components/link-control/search-input.js.map +1 -1
  157. package/build/components/link-control/use-internal-input-value.js +3 -3
  158. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  159. package/build/components/list-view/block-select-button.js +1 -1
  160. package/build/components/list-view/block-select-button.js.map +1 -1
  161. package/build/components/list-view/block.js +5 -2
  162. package/build/components/list-view/block.js.map +1 -1
  163. package/build/components/list-view/branch.js +13 -12
  164. package/build/components/list-view/branch.js.map +1 -1
  165. package/build/components/media-upload/index.native.js +2 -3
  166. package/build/components/media-upload/index.native.js.map +1 -1
  167. package/build/components/off-canvas-editor/appender.js +99 -0
  168. package/build/components/off-canvas-editor/appender.js.map +1 -0
  169. package/build/components/off-canvas-editor/block-edit-button.js +50 -0
  170. package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
  171. package/build/components/off-canvas-editor/block-select-button.js +3 -2
  172. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  173. package/build/components/off-canvas-editor/block.js +82 -38
  174. package/build/components/off-canvas-editor/block.js.map +1 -1
  175. package/build/components/off-canvas-editor/branch.js +3 -5
  176. package/build/components/off-canvas-editor/branch.js.map +1 -1
  177. package/build/components/off-canvas-editor/index.js +24 -11
  178. package/build/components/off-canvas-editor/index.js.map +1 -1
  179. package/build/components/off-canvas-editor/leaf.js +1 -1
  180. package/build/components/off-canvas-editor/leaf.js.map +1 -1
  181. package/build/components/off-canvas-editor/link-ui.js +185 -0
  182. package/build/components/off-canvas-editor/link-ui.js.map +1 -0
  183. package/build/components/off-canvas-editor/update-attributes.js +108 -0
  184. package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
  185. package/build/components/off-canvas-editor/use-inserted-block.js +58 -0
  186. package/build/components/off-canvas-editor/use-inserted-block.js.map +1 -0
  187. package/build/components/responsive-block-control/label.js.map +1 -1
  188. package/build/components/rich-text/format-edit.js +12 -10
  189. package/build/components/rich-text/format-edit.js.map +1 -1
  190. package/build/components/rich-text/format-toolbar/index.js +8 -4
  191. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  192. package/build/components/rich-text/index.js +3 -3
  193. package/build/components/rich-text/index.js.map +1 -1
  194. package/build/components/rich-text/index.native.js +0 -2
  195. package/build/components/rich-text/index.native.js.map +1 -1
  196. package/build/components/rich-text/use-insert-replacement-text.js +43 -0
  197. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
  198. package/build/components/rich-text/use-paste-handler.js +21 -12
  199. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  200. package/build/components/rich-text/use-undo-automatic-change.js +9 -1
  201. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  202. package/build/components/rich-text/utils.js +1 -19
  203. package/build/components/rich-text/utils.js.map +1 -1
  204. package/build/components/spacing-sizes-control/index.js +0 -1
  205. package/build/components/spacing-sizes-control/index.js.map +1 -1
  206. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
  207. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  208. package/build/components/spacing-sizes-control/utils.js +1 -1
  209. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  210. package/build/components/typewriter/index.js +1 -1
  211. package/build/components/typewriter/index.js.map +1 -1
  212. package/build/components/ungroup-button/index.native.js +4 -2
  213. package/build/components/ungroup-button/index.native.js.map +1 -1
  214. package/build/components/url-input/index.js +46 -43
  215. package/build/components/url-input/index.js.map +1 -1
  216. package/build/components/url-popover/image-url-input-ui.js +2 -2
  217. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  218. package/build/components/use-block-display-information/index.js +8 -4
  219. package/build/components/use-block-display-information/index.js.map +1 -1
  220. package/build/components/use-setting/index.js +9 -1
  221. package/build/components/use-setting/index.js.map +1 -1
  222. package/build/components/writing-flow/index.js +1 -1
  223. package/build/components/writing-flow/index.js.map +1 -1
  224. package/build/hooks/border.js +0 -1
  225. package/build/hooks/border.js.map +1 -1
  226. package/build/hooks/child-layout.js +209 -0
  227. package/build/hooks/child-layout.js.map +1 -0
  228. package/build/hooks/color-panel.js +0 -1
  229. package/build/hooks/color-panel.js.map +1 -1
  230. package/build/hooks/color.js +1 -2
  231. package/build/hooks/color.js.map +1 -1
  232. package/build/hooks/content-lock-ui.js +1 -1
  233. package/build/hooks/content-lock-ui.js.map +1 -1
  234. package/build/hooks/dimensions.js +25 -7
  235. package/build/hooks/dimensions.js.map +1 -1
  236. package/build/hooks/font-family.js +4 -4
  237. package/build/hooks/font-family.js.map +1 -1
  238. package/build/hooks/font-size.js +5 -3
  239. package/build/hooks/font-size.js.map +1 -1
  240. package/build/hooks/layout.js +57 -1
  241. package/build/hooks/layout.js.map +1 -1
  242. package/build/hooks/min-height.js +4 -10
  243. package/build/hooks/min-height.js.map +1 -1
  244. package/build/hooks/use-typography-props.js +11 -8
  245. package/build/hooks/use-typography-props.js.map +1 -1
  246. package/build/store/reducer.js +411 -274
  247. package/build/store/reducer.js.map +1 -1
  248. package/build/store/selectors.js +58 -48
  249. package/build/store/selectors.js.map +1 -1
  250. package/build/utils/pasting.js +6 -11
  251. package/build/utils/pasting.js.map +1 -1
  252. package/build/utils/sorting.js +63 -0
  253. package/build/utils/sorting.js.map +1 -0
  254. package/build-module/autocompleters/block.js +2 -6
  255. package/build-module/autocompleters/block.js.map +1 -1
  256. package/build-module/autocompleters/link.js +2 -0
  257. package/build-module/autocompleters/link.js.map +1 -1
  258. package/build-module/components/alignment-control/ui.js +1 -6
  259. package/build-module/components/alignment-control/ui.js.map +1 -1
  260. package/build-module/components/block-alignment-control/use-available-alignments.js +4 -3
  261. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  262. package/build-module/components/block-card/index.js +45 -3
  263. package/build-module/components/block-card/index.js.map +1 -1
  264. package/build-module/components/block-draggable/index.native.js +40 -31
  265. package/build-module/components/block-draggable/index.native.js.map +1 -1
  266. package/build-module/components/block-edit/edit.js +4 -2
  267. package/build-module/components/block-edit/edit.js.map +1 -1
  268. package/build-module/components/block-edit/edit.native.js +4 -6
  269. package/build-module/components/block-edit/edit.native.js.map +1 -1
  270. package/build-module/components/block-icon/index.js +4 -2
  271. package/build-module/components/block-icon/index.js.map +1 -1
  272. package/build-module/components/block-inspector/index.js +87 -34
  273. package/build-module/components/block-inspector/index.js.map +1 -1
  274. package/build-module/components/block-list/block-list-context.native.js +5 -8
  275. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  276. package/build-module/components/block-list/block.js +55 -25
  277. package/build-module/components/block-list/block.js.map +1 -1
  278. package/build-module/components/block-list/block.native.js +61 -28
  279. package/build-module/components/block-list/block.native.js.map +1 -1
  280. package/build-module/components/block-list-appender/index.js +46 -34
  281. package/build-module/components/block-list-appender/index.js.map +1 -1
  282. package/build-module/components/block-list-appender/index.native.js +39 -32
  283. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  284. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +31 -24
  285. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  286. package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
  287. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  288. package/build-module/components/block-pattern-setup/index.js +16 -8
  289. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  290. package/build-module/components/block-patterns-list/index.js +35 -13
  291. package/build-module/components/block-patterns-list/index.js.map +1 -1
  292. package/build-module/components/block-preview/auto.js +9 -3
  293. package/build-module/components/block-preview/auto.js.map +1 -1
  294. package/build-module/components/block-preview/index.js +5 -8
  295. package/build-module/components/block-preview/index.js.map +1 -1
  296. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
  297. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  298. package/build-module/components/block-styles/index.native.js +1 -2
  299. package/build-module/components/block-styles/index.native.js.map +1 -1
  300. package/build-module/components/block-styles/utils.js +7 -9
  301. package/build-module/components/block-styles/utils.js.map +1 -1
  302. package/build-module/components/block-toolbar/index.js +6 -2
  303. package/build-module/components/block-toolbar/index.js.map +1 -1
  304. package/build-module/components/block-toolbar/index.native.js +6 -8
  305. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  306. package/build-module/components/block-tools/insertion-point.js +8 -49
  307. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  308. package/build-module/components/block-tools/selected-block-popover.js +1 -2
  309. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  310. package/build-module/components/block-variation-picker/index.js +2 -3
  311. package/build-module/components/block-variation-picker/index.js.map +1 -1
  312. package/build-module/components/colors/utils.js +3 -7
  313. package/build-module/components/colors/utils.js.map +1 -1
  314. package/build-module/components/colors-gradients/control.js +0 -3
  315. package/build-module/components/colors-gradients/control.js.map +1 -1
  316. package/build-module/components/colors-gradients/dropdown.js +0 -2
  317. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  318. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +4 -19
  319. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  320. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
  321. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  322. package/build-module/components/copy-handler/index.js +38 -10
  323. package/build-module/components/copy-handler/index.js.map +1 -1
  324. package/build-module/components/font-sizes/fluid-utils.js +5 -2
  325. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  326. package/build-module/components/font-sizes/utils.js +11 -5
  327. package/build-module/components/font-sizes/utils.js.map +1 -1
  328. package/build-module/components/font-sizes/with-font-sizes.js +12 -7
  329. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  330. package/build-module/components/gradients/use-gradient.js +2 -7
  331. package/build-module/components/gradients/use-gradient.js.map +1 -1
  332. package/build-module/components/height-control/index.js +103 -0
  333. package/build-module/components/height-control/index.js.map +1 -0
  334. package/build-module/components/iframe/index.js +21 -101
  335. package/build-module/components/iframe/index.js.map +1 -1
  336. package/build-module/components/iframe/use-compatibility-styles.js +85 -0
  337. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -0
  338. package/build-module/components/image-editor/use-save-image.js +2 -0
  339. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  340. package/build-module/components/image-editor/zoom-dropdown.js +1 -0
  341. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  342. package/build-module/components/index.js +1 -0
  343. package/build-module/components/index.js.map +1 -1
  344. package/build-module/components/inner-blocks/index.js +27 -9
  345. package/build-module/components/inner-blocks/index.js.map +1 -1
  346. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
  347. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  348. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  349. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  350. package/build-module/components/inserter/block-patterns-tab.js +27 -49
  351. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  352. package/build-module/components/inserter/block-types-tab.js +3 -2
  353. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  354. package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
  355. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
  356. package/build-module/components/inserter/hooks/use-insertion-point.js +4 -3
  357. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  358. package/build-module/components/inserter/index.js +20 -6
  359. package/build-module/components/inserter/index.js.map +1 -1
  360. package/build-module/components/inserter/index.native.js +3 -5
  361. package/build-module/components/inserter/index.native.js.map +1 -1
  362. package/build-module/components/inserter/media-tab/hooks.js +92 -0
  363. package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
  364. package/build-module/components/inserter/media-tab/index.js +4 -0
  365. package/build-module/components/inserter/media-tab/index.js.map +1 -0
  366. package/build-module/components/inserter/media-tab/media-list.js +86 -0
  367. package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
  368. package/build-module/components/inserter/media-tab/media-panel.js +77 -0
  369. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
  370. package/build-module/components/inserter/media-tab/media-tab.js +100 -0
  371. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
  372. package/build-module/components/inserter/media-tab/utils.js +45 -0
  373. package/build-module/components/inserter/media-tab/utils.js.map +1 -0
  374. package/build-module/components/inserter/menu.js +33 -12
  375. package/build-module/components/inserter/menu.js.map +1 -1
  376. package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
  377. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
  378. package/build-module/components/inserter/quick-inserter.js +7 -3
  379. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  380. package/build-module/components/inserter/search-items.js +15 -13
  381. package/build-module/components/inserter/search-items.js.map +1 -1
  382. package/build-module/components/inserter/search-results.js +7 -4
  383. package/build-module/components/inserter/search-results.js.map +1 -1
  384. package/build-module/components/inserter/tabs.js +15 -2
  385. package/build-module/components/inserter/tabs.js.map +1 -1
  386. package/build-module/components/inserter-list-item/index.js +5 -2
  387. package/build-module/components/inserter-list-item/index.js.map +1 -1
  388. package/build-module/components/inspector-controls/groups.js +2 -0
  389. package/build-module/components/inspector-controls/groups.js.map +1 -1
  390. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
  391. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  392. package/build-module/components/inspector-controls-tabs/index.js +56 -0
  393. package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
  394. package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
  395. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  396. package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
  397. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  398. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
  399. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  400. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
  401. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  402. package/build-module/components/inspector-controls-tabs/utils.js +26 -0
  403. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
  404. package/build-module/components/link-control/index.js +1 -0
  405. package/build-module/components/link-control/index.js.map +1 -1
  406. package/build-module/components/link-control/search-input.js +0 -1
  407. package/build-module/components/link-control/search-input.js.map +1 -1
  408. package/build-module/components/link-control/use-internal-input-value.js +3 -3
  409. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  410. package/build-module/components/list-view/block-select-button.js +1 -1
  411. package/build-module/components/list-view/block-select-button.js.map +1 -1
  412. package/build-module/components/list-view/block.js +5 -2
  413. package/build-module/components/list-view/block.js.map +1 -1
  414. package/build-module/components/list-view/branch.js +12 -11
  415. package/build-module/components/list-view/branch.js.map +1 -1
  416. package/build-module/components/media-upload/index.native.js +2 -4
  417. package/build-module/components/media-upload/index.native.js.map +1 -1
  418. package/build-module/components/off-canvas-editor/appender.js +83 -0
  419. package/build-module/components/off-canvas-editor/appender.js.map +1 -0
  420. package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
  421. package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
  422. package/build-module/components/off-canvas-editor/block-select-button.js +3 -2
  423. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  424. package/build-module/components/off-canvas-editor/block.js +83 -41
  425. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  426. package/build-module/components/off-canvas-editor/branch.js +3 -4
  427. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  428. package/build-module/components/off-canvas-editor/index.js +24 -12
  429. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  430. package/build-module/components/off-canvas-editor/leaf.js +1 -1
  431. package/build-module/components/off-canvas-editor/leaf.js.map +1 -1
  432. package/build-module/components/off-canvas-editor/link-ui.js +165 -0
  433. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
  434. package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
  435. package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
  436. package/build-module/components/off-canvas-editor/use-inserted-block.js +47 -0
  437. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +1 -0
  438. package/build-module/components/responsive-block-control/label.js +1 -2
  439. package/build-module/components/responsive-block-control/label.js.map +1 -1
  440. package/build-module/components/rich-text/format-edit.js +12 -9
  441. package/build-module/components/rich-text/format-edit.js.map +1 -1
  442. package/build-module/components/rich-text/format-toolbar/index.js +6 -2
  443. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  444. package/build-module/components/rich-text/index.js +2 -3
  445. package/build-module/components/rich-text/index.js.map +1 -1
  446. package/build-module/components/rich-text/index.native.js +0 -2
  447. package/build-module/components/rich-text/index.native.js.map +1 -1
  448. package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
  449. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
  450. package/build-module/components/rich-text/use-paste-handler.js +22 -12
  451. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  452. package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
  453. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  454. package/build-module/components/rich-text/utils.js +1 -16
  455. package/build-module/components/rich-text/utils.js.map +1 -1
  456. package/build-module/components/spacing-sizes-control/index.js +0 -1
  457. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  458. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
  459. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  460. package/build-module/components/spacing-sizes-control/utils.js +1 -1
  461. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  462. package/build-module/components/typewriter/index.js +1 -1
  463. package/build-module/components/typewriter/index.js.map +1 -1
  464. package/build-module/components/ungroup-button/index.native.js +3 -2
  465. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  466. package/build-module/components/url-input/index.js +46 -43
  467. package/build-module/components/url-input/index.js.map +1 -1
  468. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  469. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  470. package/build-module/components/use-block-display-information/index.js +9 -5
  471. package/build-module/components/use-block-display-information/index.js.map +1 -1
  472. package/build-module/components/use-setting/index.js +8 -1
  473. package/build-module/components/use-setting/index.js.map +1 -1
  474. package/build-module/components/writing-flow/index.js +1 -1
  475. package/build-module/components/writing-flow/index.js.map +1 -1
  476. package/build-module/hooks/border.js +0 -1
  477. package/build-module/hooks/border.js.map +1 -1
  478. package/build-module/hooks/child-layout.js +189 -0
  479. package/build-module/hooks/child-layout.js.map +1 -0
  480. package/build-module/hooks/color-panel.js +0 -1
  481. package/build-module/hooks/color-panel.js.map +1 -1
  482. package/build-module/hooks/color.js +1 -2
  483. package/build-module/hooks/color.js.map +1 -1
  484. package/build-module/hooks/content-lock-ui.js +1 -1
  485. package/build-module/hooks/content-lock-ui.js.map +1 -1
  486. package/build-module/hooks/dimensions.js +25 -8
  487. package/build-module/hooks/dimensions.js.map +1 -1
  488. package/build-module/hooks/font-family.js +5 -5
  489. package/build-module/hooks/font-family.js.map +1 -1
  490. package/build-module/hooks/font-size.js +5 -3
  491. package/build-module/hooks/font-size.js.map +1 -1
  492. package/build-module/hooks/layout.js +55 -0
  493. package/build-module/hooks/layout.js.map +1 -1
  494. package/build-module/hooks/min-height.js +3 -9
  495. package/build-module/hooks/min-height.js.map +1 -1
  496. package/build-module/hooks/use-typography-props.js +11 -8
  497. package/build-module/hooks/use-typography-props.js.map +1 -1
  498. package/build-module/store/reducer.js +409 -274
  499. package/build-module/store/reducer.js.map +1 -1
  500. package/build-module/store/selectors.js +55 -48
  501. package/build-module/store/selectors.js.map +1 -1
  502. package/build-module/utils/pasting.js +6 -10
  503. package/build-module/utils/pasting.js.map +1 -1
  504. package/build-module/utils/sorting.js +56 -0
  505. package/build-module/utils/sorting.js.map +1 -0
  506. package/build-style/content-rtl.css +701 -0
  507. package/build-style/content.css +701 -0
  508. package/build-style/default-editor-styles-rtl.css +17 -3
  509. package/build-style/default-editor-styles.css +17 -3
  510. package/build-style/style-rtl.css +313 -665
  511. package/build-style/style.css +313 -665
  512. package/package.json +32 -30
  513. package/src/autocompleters/block.js +2 -6
  514. package/src/autocompleters/link.js +2 -0
  515. package/src/components/alignment-control/test/index.js +6 -1
  516. package/src/components/alignment-control/ui.js +1 -7
  517. package/src/components/block-alignment-control/test/index.js +6 -1
  518. package/src/components/block-alignment-control/use-available-alignments.js +4 -3
  519. package/src/components/block-card/index.js +46 -2
  520. package/src/components/block-card/style.scss +4 -0
  521. package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
  522. package/src/components/block-draggable/content.scss +20 -0
  523. package/src/components/block-draggable/index.native.js +54 -40
  524. package/src/components/block-draggable/style.scss +0 -21
  525. package/src/components/block-draggable/test/helpers.native.js +7 -9
  526. package/src/components/block-draggable/test/index.native.js +35 -45
  527. package/src/components/block-edit/edit.js +5 -2
  528. package/src/components/block-edit/edit.native.js +5 -6
  529. package/src/components/block-icon/index.js +4 -2
  530. package/src/components/block-icon/test/index.js +9 -5
  531. package/src/components/block-inspector/index.js +173 -85
  532. package/src/components/block-inspector/style.scss +16 -1
  533. package/src/components/block-list/block-list-context.native.js +5 -8
  534. package/src/components/block-list/block.js +74 -23
  535. package/src/components/block-list/block.native.js +78 -23
  536. package/src/components/block-list/{style.scss → content.scss} +1 -15
  537. package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
  538. package/src/components/block-list-appender/index.js +65 -54
  539. package/src/components/block-list-appender/index.native.js +45 -34
  540. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +42 -28
  541. package/src/components/block-mobile-toolbar/index.native.js +1 -1
  542. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +125 -0
  543. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +439 -0
  544. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +42 -2
  545. package/src/components/block-mover/test/index.native.js +157 -1
  546. package/src/components/block-pattern-setup/index.js +17 -7
  547. package/src/components/block-pattern-setup/style.scss +29 -1
  548. package/src/components/block-patterns-list/index.js +47 -24
  549. package/src/components/block-preview/README.md +15 -10
  550. package/src/components/block-preview/auto.js +7 -1
  551. package/src/components/block-preview/content.scss +4 -0
  552. package/src/components/block-preview/index.js +7 -12
  553. package/src/components/block-preview/style.scss +0 -7
  554. package/src/components/block-preview/test/index.js +18 -35
  555. package/src/components/block-selection-clearer/test/index.js +12 -12
  556. package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
  557. package/src/components/block-styles/index.native.js +1 -2
  558. package/src/components/block-styles/utils.js +5 -7
  559. package/src/components/block-switcher/test/index.js +6 -1
  560. package/src/components/block-toolbar/index.js +12 -5
  561. package/src/components/block-toolbar/index.native.js +8 -11
  562. package/src/components/block-toolbar/style.scss +10 -0
  563. package/src/components/block-tools/insertion-point.js +3 -47
  564. package/src/components/block-tools/selected-block-popover.js +1 -3
  565. package/src/components/block-tools/style.scss +12 -5
  566. package/src/components/block-variation-picker/index.js +6 -5
  567. package/src/components/block-vertical-alignment-control/test/index.js +6 -1
  568. package/src/components/colors/test/with-colors.js +2 -0
  569. package/src/components/colors/utils.js +5 -3
  570. package/src/components/colors-gradients/control.js +0 -7
  571. package/src/components/colors-gradients/dropdown.js +0 -2
  572. package/src/components/colors-gradients/panel-color-gradient-settings.js +4 -22
  573. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
  574. package/src/components/copy-handler/index.js +53 -7
  575. package/src/components/default-block-appender/{style.scss → content.scss} +0 -0
  576. package/src/components/default-block-appender/test/index.js +2 -0
  577. package/src/components/font-sizes/fluid-utils.js +7 -1
  578. package/src/components/font-sizes/utils.js +5 -3
  579. package/src/components/font-sizes/with-font-sizes.js +4 -4
  580. package/src/components/gradients/use-gradient.js +2 -7
  581. package/src/components/height-control/index.js +123 -0
  582. package/src/components/height-control/stories/index.js +21 -0
  583. package/src/components/height-control/style.scss +5 -0
  584. package/src/components/iframe/index.js +33 -121
  585. package/src/components/iframe/use-compatibility-styles.js +95 -0
  586. package/src/components/image-editor/use-save-image.js +2 -0
  587. package/src/components/image-editor/zoom-dropdown.js +1 -0
  588. package/src/components/image-size-control/test/index.js +147 -79
  589. package/src/components/index.js +1 -0
  590. package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
  591. package/src/components/inner-blocks/index.js +26 -7
  592. package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
  593. package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  594. package/src/components/inserter/block-patterns-tab.js +28 -71
  595. package/src/components/inserter/block-types-tab.js +3 -2
  596. package/src/components/inserter/hooks/use-debounced-input.js +17 -0
  597. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  598. package/src/components/inserter/index.js +24 -3
  599. package/src/components/inserter/index.native.js +1 -1
  600. package/src/components/inserter/media-tab/hooks.js +89 -0
  601. package/src/components/inserter/media-tab/index.js +3 -0
  602. package/src/components/inserter/media-tab/media-list.js +93 -0
  603. package/src/components/inserter/media-tab/media-panel.js +83 -0
  604. package/src/components/inserter/media-tab/media-tab.js +135 -0
  605. package/src/components/inserter/media-tab/utils.js +37 -0
  606. package/src/components/inserter/menu.js +55 -13
  607. package/src/components/inserter/mobile-tab-navigation.js +85 -0
  608. package/src/components/inserter/quick-inserter.js +4 -0
  609. package/src/components/inserter/search-items.js +1 -2
  610. package/src/components/inserter/search-results.js +5 -2
  611. package/src/components/inserter/stories/index.js +1 -1
  612. package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
  613. package/src/components/inserter/style.scss +176 -11
  614. package/src/components/inserter/tabs.js +12 -1
  615. package/src/components/inserter-list-item/index.js +11 -1
  616. package/src/components/inserter-list-item/style.scss +26 -0
  617. package/src/components/inspector-controls/groups.js +2 -0
  618. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
  619. package/src/components/inspector-controls-tabs/index.js +62 -0
  620. package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
  621. package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
  622. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
  623. package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
  624. package/src/components/inspector-controls-tabs/utils.js +28 -0
  625. package/src/components/line-height-control/test/index.js +5 -5
  626. package/src/components/link-control/README.md +1 -1
  627. package/src/components/link-control/index.js +1 -0
  628. package/src/components/link-control/search-input.js +0 -1
  629. package/src/components/link-control/test/index.js +204 -403
  630. package/src/components/link-control/use-internal-input-value.js +3 -3
  631. package/src/components/list-view/block-select-button.js +1 -1
  632. package/src/components/list-view/block.js +3 -0
  633. package/src/components/list-view/branch.js +10 -8
  634. package/src/components/list-view/style.scss +21 -16
  635. package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
  636. package/src/components/media-replace-flow/test/index.js +39 -9
  637. package/src/components/media-upload/test/index.native.js +2 -0
  638. package/src/components/off-canvas-editor/appender.js +98 -0
  639. package/src/components/off-canvas-editor/block-edit-button.js +27 -0
  640. package/src/components/off-canvas-editor/block-select-button.js +6 -2
  641. package/src/components/off-canvas-editor/block.js +160 -77
  642. package/src/components/off-canvas-editor/branch.js +3 -5
  643. package/src/components/off-canvas-editor/index.js +68 -33
  644. package/src/components/off-canvas-editor/leaf.js +5 -1
  645. package/src/components/off-canvas-editor/link-ui.js +166 -0
  646. package/src/components/off-canvas-editor/style.scss +19 -386
  647. package/src/components/off-canvas-editor/test/use-inserted-block.js +108 -0
  648. package/src/components/off-canvas-editor/update-attributes.js +99 -0
  649. package/src/components/off-canvas-editor/use-inserted-block.js +47 -0
  650. package/src/components/plain-text/{style.scss → content.scss} +0 -0
  651. package/src/components/recursion-provider/test/index.js +27 -29
  652. package/src/components/responsive-block-control/label.js +2 -3
  653. package/src/components/responsive-block-control/test/index.js +4 -2
  654. package/src/components/rich-text/content.scss +42 -0
  655. package/src/components/rich-text/format-edit.js +6 -10
  656. package/src/components/rich-text/format-toolbar/index.js +6 -4
  657. package/src/components/rich-text/index.js +3 -2
  658. package/src/components/rich-text/index.native.js +0 -2
  659. package/src/components/rich-text/style.scss +0 -43
  660. package/src/components/rich-text/use-insert-replacement-text.js +31 -0
  661. package/src/components/rich-text/use-paste-handler.js +33 -14
  662. package/src/components/rich-text/use-undo-automatic-change.js +7 -1
  663. package/src/components/rich-text/utils.js +2 -21
  664. package/src/components/spacing-sizes-control/index.js +0 -1
  665. package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
  666. package/src/components/spacing-sizes-control/utils.js +1 -1
  667. package/src/components/typewriter/index.js +3 -1
  668. package/src/components/ungroup-button/index.native.js +6 -2
  669. package/src/components/url-input/index.js +57 -73
  670. package/src/components/url-input/test/button.js +2 -0
  671. package/src/components/url-popover/image-url-input-ui.js +5 -4
  672. package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
  673. package/src/components/url-popover/test/index.js +37 -9
  674. package/src/components/use-block-display-information/index.js +14 -5
  675. package/src/components/use-setting/index.js +13 -1
  676. package/src/components/use-setting/test/index.js +99 -0
  677. package/src/components/warning/test/index.js +2 -0
  678. package/src/components/writing-flow/index.js +1 -1
  679. package/src/content.scss +10 -0
  680. package/src/hooks/border.js +0 -1
  681. package/src/hooks/child-layout.js +190 -0
  682. package/src/hooks/color-panel.js +0 -1
  683. package/src/hooks/color.js +0 -2
  684. package/src/hooks/content-lock-ui.js +1 -1
  685. package/src/hooks/dimensions.js +45 -7
  686. package/src/hooks/font-family.js +3 -5
  687. package/src/hooks/font-size.js +13 -4
  688. package/src/hooks/layout.js +60 -0
  689. package/src/hooks/min-height.js +2 -19
  690. package/src/hooks/test/use-typography-props.js +26 -0
  691. package/src/hooks/use-typography-props.js +15 -7
  692. package/src/store/reducer.js +471 -428
  693. package/src/store/selectors.js +57 -59
  694. package/src/store/test/performance.js +71 -0
  695. package/src/store/test/reducer.js +623 -491
  696. package/src/store/test/selectors.js +1820 -1306
  697. package/src/style.scss +4 -7
  698. package/src/utils/pasting.js +3 -9
  699. package/src/utils/sorting.js +54 -0
  700. package/src/utils/test/sorting.js +49 -0
  701. package/tsconfig.tsbuildinfo +1 -1
  702. package/build/components/block-preview/live.js +0 -30
  703. package/build/components/block-preview/live.js.map +0 -1
  704. package/build/components/colors-gradients/use-common-single-multiple-selects.js +0 -21
  705. package/build/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
  706. package/build/components/rich-text/file-paste-handler.js +0 -21
  707. package/build/components/rich-text/file-paste-handler.js.map +0 -1
  708. package/build-module/components/block-preview/live.js +0 -20
  709. package/build-module/components/block-preview/live.js.map +0 -1
  710. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
  711. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
  712. package/build-module/components/rich-text/file-paste-handler.js +0 -13
  713. package/build-module/components/rich-text/file-paste-handler.js.map +0 -1
  714. package/src/components/block-preview/live.js +0 -19
  715. package/src/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
  716. package/src/components/rich-text/file-paste-handler.js +0 -13
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["View","Text","TouchableWithoutFeedback","Dimensions","pick","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","switchToBlockType","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","BlockDraggable","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","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","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"],"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":["View","Text","TouchableWithoutFeedback","Dimensions","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","BlockDraggable","useLayout","emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","onMerge","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","includes","parentLayout","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","registry","insertBlocks","mergeBlocks","replaceBlocks","selectBlock","updateBlockAttributes","moveBlocksToPosition","removeBlock","forward","rootClientId","getPreviousBlockClientId","getNextBlockClientId","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","replacement","batch","nextRootClientId","rootAttributes","previousRootAttributes","keys","every","nextBlockClientId","previousBlockClientId","previousRootClientId","index","initialPosition","indexToSelect"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { useLayout } from './layout';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tonMerge,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst parentLayout = useLayout();\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ onMerge }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t__unstableParentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor =\n\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected =\n\t\t\tselectedParents.includes( parentId );\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, registry ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t\tmoveBlocksToPosition,\n\t\t\tremoveBlock,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonMerge( forward ) {\n\t\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t\t/**\n\t\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t\t * convert to the default block type.\n\t\t\t\t *\n\t\t\t\t * @param {string} _clientId The block to move.\n\t\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t\t * to the moved block.\n\t\t\t\t */\n\t\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\t\tconst targetRootClientId =\n\t\t\t\t\t\tgetBlockRootClientId( _clientId );\n\t\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t\t// as `Backspace`, but from the other block.\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
@@ -18,28 +18,41 @@ import DefaultBlockAppender from '../default-block-appender';
18
18
  import ButtonBlockAppender from '../button-block-appender';
19
19
  import { store as blockEditorStore } from '../../store';
20
20
 
21
- function BlockListAppender(_ref) {
21
+ function DefaultAppender(_ref) {
22
22
  let {
23
- rootClientId,
24
- renderAppender: CustomAppender,
25
- className,
26
- tagName: TagName = 'div'
23
+ rootClientId
27
24
  } = _ref;
25
+ const canInsertDefaultBlock = useSelect(select => select(blockEditorStore).canInsertBlockType(getDefaultBlockName(), rootClientId));
26
+
27
+ if (canInsertDefaultBlock) {
28
+ // Render the default block appender if the context supports use
29
+ // of the default appender.
30
+ return createElement(DefaultBlockAppender, {
31
+ rootClientId: rootClientId
32
+ });
33
+ } // Fallback in case the default block can't be inserted.
34
+
35
+
36
+ return createElement(ButtonBlockAppender, {
37
+ rootClientId: rootClientId,
38
+ className: "block-list-appender__toggle"
39
+ });
40
+ }
41
+
42
+ function useAppender(rootClientId, CustomAppender) {
28
43
  const {
29
44
  hideInserter,
30
- canInsertDefaultBlock,
31
- selectedBlockClientId
45
+ isParentSelected
32
46
  } = useSelect(select => {
33
47
  const {
34
- canInsertBlockType,
35
48
  getTemplateLock,
36
49
  getSelectedBlockClientId,
37
50
  __unstableGetEditorMode
38
51
  } = select(blockEditorStore);
52
+ const selectedBlockClientId = getSelectedBlockClientId();
39
53
  return {
40
54
  hideInserter: !!getTemplateLock(rootClientId) || __unstableGetEditorMode() === 'zoom-out',
41
- canInsertDefaultBlock: canInsertBlockType(getDefaultBlockName(), rootClientId),
42
- selectedBlockClientId: getSelectedBlockClientId()
55
+ isParentSelected: rootClientId === selectedBlockClientId || !rootClientId && !selectedBlockClientId
43
56
  };
44
57
  }, [rootClientId]);
45
58
 
@@ -47,32 +60,31 @@ function BlockListAppender(_ref) {
47
60
  return null;
48
61
  }
49
62
 
50
- let appender;
51
-
52
63
  if (CustomAppender) {
53
64
  // Prefer custom render prop if provided.
54
- appender = createElement(CustomAppender, null);
55
- } else {
56
- const isParentSelected = selectedBlockClientId === rootClientId || !rootClientId && !selectedBlockClientId;
57
-
58
- if (!isParentSelected) {
59
- return null;
60
- }
61
-
62
- if (canInsertDefaultBlock) {
63
- // Render the default block appender when renderAppender has not been
64
- // provided and the context supports use of the default appender.
65
- appender = createElement(DefaultBlockAppender, {
66
- rootClientId: rootClientId
67
- });
68
- } else {
69
- // Fallback in the case no renderAppender has been provided and the
70
- // default block can't be inserted.
71
- appender = createElement(ButtonBlockAppender, {
72
- rootClientId: rootClientId,
73
- className: "block-list-appender__toggle"
74
- });
75
- }
65
+ return createElement(CustomAppender, null);
66
+ }
67
+
68
+ if (!isParentSelected) {
69
+ return null;
70
+ }
71
+
72
+ return createElement(DefaultAppender, {
73
+ rootClientId: rootClientId
74
+ });
75
+ }
76
+
77
+ function BlockListAppender(_ref2) {
78
+ let {
79
+ rootClientId,
80
+ renderAppender,
81
+ className,
82
+ tagName: TagName = 'div'
83
+ } = _ref2;
84
+ const appender = useAppender(rootClientId, renderAppender);
85
+
86
+ if (!appender) {
87
+ return null;
76
88
  }
77
89
 
78
90
  return createElement(TagName // A `tabIndex` is used on the wrapping `div` element in order to
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["classnames","useSelect","getDefaultBlockName","DefaultBlockAppender","ButtonBlockAppender","store","blockEditorStore","BlockListAppender","rootClientId","renderAppender","CustomAppender","className","tagName","TagName","hideInserter","canInsertDefaultBlock","selectedBlockClientId","select","canInsertBlockType","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","appender","isParentSelected"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,iBAAT,OAKI;AAAA,MALwB;AAC3BC,IAAAA,YAD2B;AAE3BC,IAAAA,cAAc,EAAEC,cAFW;AAG3BC,IAAAA,SAH2B;AAI3BC,IAAAA,OAAO,EAAEC,OAAO,GAAG;AAJQ,GAKxB;AACH,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,qBAAhB;AAAuCC,IAAAA;AAAvC,MACLf,SAAS,CACNgB,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,eAFK;AAGLC,MAAAA,wBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEX,gBAAF,CALV;AAOA,WAAO;AACNQ,MAAAA,YAAY,EACX,CAAC,CAAEK,eAAe,CAAEX,YAAF,CAAlB,IACAa,uBAAuB,OAAO,UAHzB;AAINN,MAAAA,qBAAqB,EAAEG,kBAAkB,CACxChB,mBAAmB,EADqB,EAExCM,YAFwC,CAJnC;AAQNQ,MAAAA,qBAAqB,EAAEI,wBAAwB;AARzC,KAAP;AAUA,GAnBO,EAoBR,CAAEZ,YAAF,CApBQ,CADV;;AAwBA,MAAKM,YAAY,IAAIJ,cAAc,KAAK,KAAxC,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,MAAIY,QAAJ;;AACA,MAAKZ,cAAL,EAAsB;AACrB;AACAY,IAAAA,QAAQ,GAAG,cAAC,cAAD,OAAX;AACA,GAHD,MAGO;AACN,UAAMC,gBAAgB,GACrBP,qBAAqB,KAAKR,YAA1B,IACE,CAAEA,YAAF,IAAkB,CAAEQ,qBAFvB;;AAIA,QAAK,CAAEO,gBAAP,EAA0B;AACzB,aAAO,IAAP;AACA;;AAED,QAAKR,qBAAL,EAA6B;AAC5B;AACA;AACAO,MAAAA,QAAQ,GAAG,cAAC,oBAAD;AAAsB,QAAA,YAAY,EAAGd;AAArC,QAAX;AACA,KAJD,MAIO;AACN;AACA;AACAc,MAAAA,QAAQ,GACP,cAAC,mBAAD;AACC,QAAA,YAAY,EAAGd,YADhB;AAEC,QAAA,SAAS,EAAC;AAFX,QADD;AAMA;AACD;;AAED,SACC,cAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAGR,UAAU,CACrB,8BADqB,EAErBW,SAFqB,CAVvB,CAcC;AACA;AACA;AACA;AAjBD;AAkBC,IAAA,eAAe,EAAG,KAlBnB,CAmBC;AACA;AACA;AACA;AACA;AACA;AACA;AAzBD;AA0BC;AA1BD,KA4BGW,QA5BH,CADD;AAgCA;;AAED,eAAef,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListAppender( {\n\trootClientId,\n\trenderAppender: CustomAppender,\n\tclassName,\n\ttagName: TagName = 'div',\n} ) {\n\tconst { hideInserter, canInsertDefaultBlock, selectedBlockClientId } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t__unstableGetEditorMode,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\treturn {\n\t\t\t\t\thideInserter:\n\t\t\t\t\t\t!! getTemplateLock( rootClientId ) ||\n\t\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t\t\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\t\t\t\tgetDefaultBlockName(),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tselectedBlockClientId: getSelectedBlockClientId(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ rootClientId ]\n\t\t);\n\n\tif ( hideInserter || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tlet appender;\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\tappender = <CustomAppender />;\n\t} else {\n\t\tconst isParentSelected =\n\t\t\tselectedBlockClientId === rootClientId ||\n\t\t\t( ! rootClientId && ! selectedBlockClientId );\n\n\t\tif ( ! isParentSelected ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( canInsertDefaultBlock ) {\n\t\t\t// Render the default block appender when renderAppender has not been\n\t\t\t// provided and the context supports use of the default appender.\n\t\t\tappender = <DefaultBlockAppender rootClientId={ rootClientId } />;\n\t\t} else {\n\t\t\t// Fallback in the case no renderAppender has been provided and the\n\t\t\t// default block can't be inserted.\n\t\t\tappender = (\n\t\t\t\t<ButtonBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-list-appender wp-block',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t// Needed in case the whole editor is content editable (for multi\n\t\t\t// selection). It fixes an edge case where ArrowDown and ArrowRight\n\t\t\t// should collapse the selection to the end of that selection and\n\t\t\t// not into the appender.\n\t\t\tcontentEditable={ false }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default BlockListAppender;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["classnames","useSelect","getDefaultBlockName","DefaultBlockAppender","ButtonBlockAppender","store","blockEditorStore","DefaultAppender","rootClientId","canInsertDefaultBlock","select","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,eAAT,OAA6C;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAC5C,QAAMC,qBAAqB,GAAGR,SAAS,CAAIS,MAAF,IACxCA,MAAM,CAAEJ,gBAAF,CAAN,CAA2BK,kBAA3B,CACCT,mBAAmB,EADpB,EAECM,YAFD,CADsC,CAAvC;;AAOA,MAAKC,qBAAL,EAA6B;AAC5B;AACA;AACA,WAAO,cAAC,oBAAD;AAAsB,MAAA,YAAY,EAAGD;AAArC,MAAP;AACA,GAZ2C,CAc5C;;;AACA,SACC,cAAC,mBAAD;AACC,IAAA,YAAY,EAAGA,YADhB;AAEC,IAAA,SAAS,EAAC;AAFX,IADD;AAMA;;AAED,SAASI,WAAT,CAAsBJ,YAAtB,EAAoCK,cAApC,EAAqD;AACpD,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAqCd,SAAS,CACjDS,MAAF,IAAc;AACb,UAAM;AACLM,MAAAA,eADK;AAELC,MAAAA,wBAFK;AAGLC,MAAAA;AAHK,QAIFR,MAAM,CAAEJ,gBAAF,CAJV;AAMA,UAAMa,qBAAqB,GAAGF,wBAAwB,EAAtD;AAEA,WAAO;AACNH,MAAAA,YAAY,EACX,CAAC,CAAEE,eAAe,CAAER,YAAF,CAAlB,IACAU,uBAAuB,OAAO,UAHzB;AAINH,MAAAA,gBAAgB,EACfP,YAAY,KAAKW,qBAAjB,IACE,CAAEX,YAAF,IAAkB,CAAEW;AANjB,KAAP;AAQA,GAlBkD,EAmBnD,CAAEX,YAAF,CAnBmD,CAApD;;AAsBA,MAAKM,YAAY,IAAID,cAAc,KAAK,KAAxC,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,MAAKA,cAAL,EAAsB;AACrB;AACA,WAAO,cAAC,cAAD,OAAP;AACA;;AAED,MAAK,CAAEE,gBAAP,EAA0B;AACzB,WAAO,IAAP;AACA;;AAED,SAAO,cAAC,eAAD;AAAiB,IAAA,YAAY,EAAGP;AAAhC,IAAP;AACA;;AAED,SAASY,iBAAT,QAKI;AAAA,MALwB;AAC3BZ,IAAAA,YAD2B;AAE3Ba,IAAAA,cAF2B;AAG3BC,IAAAA,SAH2B;AAI3BC,IAAAA,OAAO,EAAEC,OAAO,GAAG;AAJQ,GAKxB;AACH,QAAMC,QAAQ,GAAGb,WAAW,CAAEJ,YAAF,EAAgBa,cAAhB,CAA5B;;AAEA,MAAK,CAAEI,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAGzB,UAAU,CACrB,8BADqB,EAErBsB,SAFqB,CAVvB,CAcC;AACA;AACA;AACA;AAjBD;AAkBC,IAAA,eAAe,EAAG,KAlBnB,CAmBC;AACA;AACA;AACA;AACA;AACA;AACA;AAzBD;AA0BC;AA1BD,KA4BGG,QA5BH,CADD;AAgCA;;AAED,eAAeL,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction DefaultAppender( { rootClientId } ) {\n\tconst canInsertDefaultBlock = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t)\n\t);\n\n\tif ( canInsertDefaultBlock ) {\n\t\t// Render the default block appender if the context supports use\n\t\t// of the default appender.\n\t\treturn <DefaultBlockAppender rootClientId={ rootClientId } />;\n\t}\n\n\t// Fallback in case the default block can't be inserted.\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t/>\n\t);\n}\n\nfunction useAppender( rootClientId, CustomAppender ) {\n\tconst { hideInserter, isParentSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\thideInserter:\n\t\t\t\t\t!! getTemplateLock( rootClientId ) ||\n\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tisParentSelected:\n\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t( ! rootClientId && ! selectedBlockClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( hideInserter || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\treturn <CustomAppender />;\n\t}\n\n\tif ( ! isParentSelected ) {\n\t\treturn null;\n\t}\n\n\treturn <DefaultAppender rootClientId={ rootClientId } />;\n}\n\nfunction BlockListAppender( {\n\trootClientId,\n\trenderAppender,\n\tclassName,\n\ttagName: TagName = 'div',\n} ) {\n\tconst appender = useAppender( rootClientId, renderAppender );\n\n\tif ( ! appender ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-list-appender wp-block',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t// Needed in case the whole editor is content editable (for multi\n\t\t\t// selection). It fixes an edge case where ArrowDown and ArrowRight\n\t\t\t// should collapse the selection to the end of that selection and\n\t\t\t// not into the appender.\n\t\t\tcontentEditable={ false }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default BlockListAppender;\n"]}
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { withSelect } from '@wordpress/data';
6
+ import { useSelect } from '@wordpress/data';
7
7
  import { getDefaultBlockName } from '@wordpress/blocks';
8
8
  /**
9
9
  * Internal dependencies
@@ -13,15 +13,45 @@ import DefaultBlockAppender from '../default-block-appender';
13
13
  import styles from './style.scss';
14
14
  import { store as blockEditorStore } from '../../store';
15
15
 
16
- function BlockListAppender(_ref) {
16
+ function DefaultAppender(_ref) {
17
17
  let {
18
+ rootClientId,
19
+ showSeparator
20
+ } = _ref;
21
+ const {
18
22
  blockClientIds,
23
+ canInsertDefaultBlock
24
+ } = useSelect(select => {
25
+ const {
26
+ getBlockOrder,
27
+ canInsertBlockType
28
+ } = select(blockEditorStore);
29
+ return {
30
+ blockClientIds: getBlockOrder(rootClientId),
31
+ canInsertDefaultBlock: canInsertBlockType(getDefaultBlockName(), rootClientId)
32
+ };
33
+ }, [rootClientId]);
34
+
35
+ if (!canInsertDefaultBlock) {
36
+ return null;
37
+ }
38
+
39
+ return createElement(DefaultBlockAppender, {
40
+ rootClientId: rootClientId,
41
+ lastBlockClientId: blockClientIds[blockClientIds.length - 1],
42
+ containerStyle: styles.blockListAppender,
43
+ placeholder: blockClientIds.length > 0 ? '' : null,
44
+ showSeparator: showSeparator
45
+ });
46
+ }
47
+
48
+ export default function BlockListAppender(_ref2) {
49
+ let {
19
50
  rootClientId,
20
- canInsertDefaultBlock,
21
- isLocked,
22
51
  renderAppender: CustomAppender,
23
52
  showSeparator
24
- } = _ref;
53
+ } = _ref2;
54
+ const isLocked = useSelect(select => !!select(blockEditorStore).getTemplateLock(rootClientId), [rootClientId]);
25
55
 
26
56
  if (isLocked) {
27
57
  return null;
@@ -33,32 +63,9 @@ function BlockListAppender(_ref) {
33
63
  });
34
64
  }
35
65
 
36
- if (canInsertDefaultBlock) {
37
- return createElement(DefaultBlockAppender, {
38
- rootClientId: rootClientId,
39
- lastBlockClientId: blockClientIds[blockClientIds.length - 1],
40
- containerStyle: styles.blockListAppender,
41
- placeholder: blockClientIds.length > 0 ? '' : null,
42
- showSeparator: showSeparator
43
- });
44
- }
45
-
46
- return null;
66
+ return createElement(DefaultAppender, {
67
+ rootClientId: rootClientId,
68
+ showSeparator: showSeparator
69
+ });
47
70
  }
48
-
49
- export default withSelect((select, _ref2) => {
50
- let {
51
- rootClientId
52
- } = _ref2;
53
- const {
54
- getBlockOrder,
55
- canInsertBlockType,
56
- getTemplateLock
57
- } = select(blockEditorStore);
58
- return {
59
- isLocked: !!getTemplateLock(rootClientId),
60
- blockClientIds: getBlockOrder(rootClientId),
61
- canInsertDefaultBlock: canInsertBlockType(getDefaultBlockName(), rootClientId)
62
- };
63
- })(BlockListAppender);
64
71
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.native.js"],"names":["withSelect","getDefaultBlockName","DefaultBlockAppender","styles","store","blockEditorStore","BlockListAppender","blockClientIds","rootClientId","canInsertDefaultBlock","isLocked","renderAppender","CustomAppender","showSeparator","length","blockListAppender","select","getBlockOrder","canInsertBlockType","getTemplateLock"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,iBAA3B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,iBAAT,OAOI;AAAA,MAPwB;AAC3BC,IAAAA,cAD2B;AAE3BC,IAAAA,YAF2B;AAG3BC,IAAAA,qBAH2B;AAI3BC,IAAAA,QAJ2B;AAK3BC,IAAAA,cAAc,EAAEC,cALW;AAM3BC,IAAAA;AAN2B,GAOxB;;AACH,MAAKH,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,MAAKE,cAAL,EAAsB;AACrB,WAAO,cAAC,cAAD;AAAgB,MAAA,aAAa,EAAGC;AAAhC,MAAP;AACA;;AAED,MAAKJ,qBAAL,EAA6B;AAC5B,WACC,cAAC,oBAAD;AACC,MAAA,YAAY,EAAGD,YADhB;AAEC,MAAA,iBAAiB,EAChBD,cAAc,CAAEA,cAAc,CAACO,MAAf,GAAwB,CAA1B,CAHhB;AAKC,MAAA,cAAc,EAAGX,MAAM,CAACY,iBALzB;AAMC,MAAA,WAAW,EAAGR,cAAc,CAACO,MAAf,GAAwB,CAAxB,GAA4B,EAA5B,GAAiC,IANhD;AAOC,MAAA,aAAa,EAAGD;AAPjB,MADD;AAWA;;AAED,SAAO,IAAP;AACA;;AAED,eAAeb,UAAU,CAAE,CAAEgB,MAAF,YAAgC;AAAA,MAAtB;AAAER,IAAAA;AAAF,GAAsB;AAC1D,QAAM;AAAES,IAAAA,aAAF;AAAiBC,IAAAA,kBAAjB;AAAqCC,IAAAA;AAArC,MACLH,MAAM,CAAEX,gBAAF,CADP;AAGA,SAAO;AACNK,IAAAA,QAAQ,EAAE,CAAC,CAAES,eAAe,CAAEX,YAAF,CADtB;AAEND,IAAAA,cAAc,EAAEU,aAAa,CAAET,YAAF,CAFvB;AAGNC,IAAAA,qBAAqB,EAAES,kBAAkB,CACxCjB,mBAAmB,EADqB,EAExCO,YAFwC;AAHnC,GAAP;AAQA,CAZwB,CAAV,CAYVF,iBAZU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListAppender( {\n\tblockClientIds,\n\trootClientId,\n\tcanInsertDefaultBlock,\n\tisLocked,\n\trenderAppender: CustomAppender,\n\tshowSeparator,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\treturn <CustomAppender showSeparator={ showSeparator } />;\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\treturn (\n\t\t\t<DefaultBlockAppender\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tlastBlockClientId={\n\t\t\t\t\tblockClientIds[ blockClientIds.length - 1 ]\n\t\t\t\t}\n\t\t\t\tcontainerStyle={ styles.blockListAppender }\n\t\t\t\tplaceholder={ blockClientIds.length > 0 ? '' : null }\n\t\t\t\tshowSeparator={ showSeparator }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nexport default withSelect( ( select, { rootClientId } ) => {\n\tconst { getBlockOrder, canInsertBlockType, getTemplateLock } =\n\t\tselect( blockEditorStore );\n\n\treturn {\n\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t),\n\t};\n} )( BlockListAppender );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.native.js"],"names":["useSelect","getDefaultBlockName","DefaultBlockAppender","styles","store","blockEditorStore","DefaultAppender","rootClientId","showSeparator","blockClientIds","canInsertDefaultBlock","select","getBlockOrder","canInsertBlockType","length","blockListAppender","BlockListAppender","renderAppender","CustomAppender","isLocked","getTemplateLock"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,eAAT,OAA4D;AAAA,MAAlC;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAkC;AAC3D,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAA4CV,SAAS,CACxDW,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QACLF,MAAM,CAAEN,gBAAF,CADP;AAEA,WAAO;AACNI,MAAAA,cAAc,EAAEG,aAAa,CAAEL,YAAF,CADvB;AAENG,MAAAA,qBAAqB,EAAEG,kBAAkB,CACxCZ,mBAAmB,EADqB,EAExCM,YAFwC;AAFnC,KAAP;AAOA,GAXyD,EAY1D,CAAEA,YAAF,CAZ0D,CAA3D;;AAeA,MAAK,CAAEG,qBAAP,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,SACC,cAAC,oBAAD;AACC,IAAA,YAAY,EAAGH,YADhB;AAEC,IAAA,iBAAiB,EAAGE,cAAc,CAAEA,cAAc,CAACK,MAAf,GAAwB,CAA1B,CAFnC;AAGC,IAAA,cAAc,EAAGX,MAAM,CAACY,iBAHzB;AAIC,IAAA,WAAW,EAAGN,cAAc,CAACK,MAAf,GAAwB,CAAxB,GAA4B,EAA5B,GAAiC,IAJhD;AAKC,IAAA,aAAa,EAAGN;AALjB,IADD;AASA;;AAED,eAAe,SAASQ,iBAAT,QAIX;AAAA,MAJuC;AAC1CT,IAAAA,YAD0C;AAE1CU,IAAAA,cAAc,EAAEC,cAF0B;AAG1CV,IAAAA;AAH0C,GAIvC;AACH,QAAMW,QAAQ,GAAGnB,SAAS,CACvBW,MAAF,IACC,CAAC,CAAEA,MAAM,CAAEN,gBAAF,CAAN,CAA2Be,eAA3B,CAA4Cb,YAA5C,CAFqB,EAGzB,CAAEA,YAAF,CAHyB,CAA1B;;AAMA,MAAKY,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,MAAKD,cAAL,EAAsB;AACrB,WAAO,cAAC,cAAD;AAAgB,MAAA,aAAa,EAAGV;AAAhC,MAAP;AACA;;AAED,SACC,cAAC,eAAD;AACC,IAAA,YAAY,EAAGD,YADhB;AAEC,IAAA,aAAa,EAAGC;AAFjB,IADD;AAMA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nfunction DefaultAppender( { rootClientId, showSeparator } ) {\n\tconst { blockClientIds, canInsertDefaultBlock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\t\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\t\t\tgetDefaultBlockName(),\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( ! canInsertDefaultBlock ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DefaultBlockAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tlastBlockClientId={ blockClientIds[ blockClientIds.length - 1 ] }\n\t\t\tcontainerStyle={ styles.blockListAppender }\n\t\t\tplaceholder={ blockClientIds.length > 0 ? '' : null }\n\t\t\tshowSeparator={ showSeparator }\n\t\t/>\n\t);\n}\n\nexport default function BlockListAppender( {\n\trootClientId,\n\trenderAppender: CustomAppender,\n\tshowSeparator,\n} ) {\n\tconst isLocked = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t[ rootClientId ]\n\t);\n\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\treturn <CustomAppender showSeparator={ showSeparator } />;\n\t}\n\n\treturn (\n\t\t<DefaultAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tshowSeparator={ showSeparator }\n\t\t/>\n\t);\n}\n"]}
@@ -11,12 +11,14 @@ import { Platform, findNodeHandle } from 'react-native';
11
11
  import { getClipboard, setClipboard, ToolbarButton, Picker } from '@wordpress/components';
12
12
  import { getBlockType, getDefaultBlockName, hasBlockSupport, serialize, rawHandler, createBlock, isUnmodifiedDefaultBlock, isReusableBlock } from '@wordpress/blocks';
13
13
  import { __, sprintf } from '@wordpress/i18n';
14
- import { withDispatch, withSelect } from '@wordpress/data';
14
+ import { withDispatch, withSelect, useSelect } from '@wordpress/data';
15
15
  import { withInstanceId, compose } from '@wordpress/compose';
16
16
  import { moreHorizontalMobile } from '@wordpress/icons';
17
17
  import { useRef, useState } from '@wordpress/element';
18
18
  import { store as noticesStore } from '@wordpress/notices';
19
- import { store as reusableBlocksStore } from '@wordpress/reusable-blocks';
19
+ import { store as reusableBlocksStore } from '@wordpress/reusable-blocks'; // Disable Reason: Needs to be refactored.
20
+ // eslint-disable-next-line no-restricted-imports
21
+
20
22
  import { store as coreStore } from '@wordpress/core-data';
21
23
  /**
22
24
  * Internal dependencies
@@ -68,6 +70,7 @@ const BlockActionsMenu = _ref => {
68
70
  HTML: clipboard
69
71
  })[0];
70
72
  const isPasteEnabled = clipboardBlock && canInsertBlockType(clipboardBlock.name, rootClientId);
73
+ const innerBlockCount = useSelect(select => select(blockEditorStore).getBlockCount(selectedBlockClientId), [selectedBlockClientId]);
71
74
  const {
72
75
  actionTitle: {
73
76
  backward: backwardButtonTitle,
@@ -162,14 +165,17 @@ const BlockActionsMenu = _ref => {
162
165
  },
163
166
  convertToRegularBlocks: {
164
167
  id: 'convertToRegularBlocksOption',
165
- label: __('Convert to regular blocks'),
168
+ label: innerBlockCount > 1 ? __('Convert to regular blocks') : __('Convert to regular block'),
166
169
  value: 'convertToRegularBlocksOption',
167
170
  onSelect: () => {
168
171
  var _reusableBlock$title;
169
172
 
170
- createSuccessNotice(sprintf(
173
+ const successNotice = innerBlockCount > 1 ?
174
+ /* translators: %s: name of the reusable block */
175
+ __('%s converted to regular blocks') :
171
176
  /* translators: %s: name of the reusable block */
172
- __('%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));
177
+ __('%s converted to regular block');
178
+ createSuccessNotice(sprintf(successNotice, (reusableBlock === null || reusableBlock === void 0 ? void 0 : (_reusableBlock$title = reusableBlock.title) === null || _reusableBlock$title === void 0 ? void 0 : _reusableBlock$title.raw) || blockTitle));
173
179
  convertToRegularBlocks();
174
180
  }
175
181
  }
@@ -218,6 +224,7 @@ const BlockActionsMenu = _ref => {
218
224
  hint: accessibilityHint
219
225
  }
220
226
  }), createElement(Picker, {
227
+ testID: "block-actions-menu",
221
228
  ref: blockActionsMenuPickerRef,
222
229
  options: options,
223
230
  onChange: onPickerSelect,
@@ -238,9 +245,10 @@ const BlockActionsMenu = _ref => {
238
245
  }));
239
246
  };
240
247
 
248
+ const EMPTY_BLOCK_LIST = [];
241
249
  export default compose(withSelect((select, _ref2) => {
242
250
  let {
243
- clientIds
251
+ clientId
244
252
  } = _ref2;
245
253
  const {
246
254
  getBlockIndex,
@@ -254,17 +262,16 @@ export default compose(withSelect((select, _ref2) => {
254
262
  canInsertBlockType,
255
263
  getTemplateLock
256
264
  } = select(blockEditorStore);
257
- const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
258
- const block = getBlock(normalizedClientIds);
259
- const blockName = getBlockName(normalizedClientIds);
265
+ const block = getBlock(clientId);
266
+ const blockName = getBlockName(clientId);
260
267
  const blockType = getBlockType(blockName);
261
268
  const blockTitle = blockType === null || blockType === void 0 ? void 0 : blockType.title;
262
- const firstClientId = normalizedClientIds[0];
263
- const rootClientId = getBlockRootClientId(firstClientId);
269
+ const rootClientId = getBlockRootClientId(clientId);
264
270
  const blockOrder = getBlockOrder(rootClientId);
265
- const firstIndex = getBlockIndex(firstClientId);
266
- const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
267
- const innerBlocks = getBlocksByClientId(clientIds);
271
+ const currentBlockIndex = getBlockIndex(clientId);
272
+ const isFirst = currentBlockIndex === 0;
273
+ const isLast = currentBlockIndex === blockOrder.length - 1;
274
+ const innerBlocks = getBlocksByClientId(clientId);
268
275
  const canDuplicate = innerBlocks.every(innerBlock => {
269
276
  return !!innerBlock && hasBlockSupport(innerBlock.name, 'multiple', true) && canInsertBlockType(innerBlock.name, rootClientId);
270
277
  });
@@ -275,19 +282,19 @@ export default compose(withSelect((select, _ref2) => {
275
282
  const isLocked = !!getTemplateLock(rootClientId);
276
283
  const selectedBlockClientId = getSelectedBlockClientIds()[0];
277
284
  const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
278
- const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems([selectedBlock], rootClientId) : [];
285
+ const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
279
286
  const isReusableBlockType = block ? isReusableBlock(block) : false;
280
287
  const reusableBlock = isReusableBlockType ? select(coreStore).getEntityRecord('postType', 'wp_block', block === null || block === void 0 ? void 0 : block.attributes.ref) : undefined;
281
288
  return {
282
289
  blockTitle,
283
290
  canInsertBlockType,
284
- currentIndex: firstIndex,
291
+ currentIndex: currentBlockIndex,
285
292
  getBlocksByClientId,
286
293
  isEmptyDefaultBlock,
287
294
  isLocked,
288
295
  canDuplicate,
289
- isFirst: firstIndex === 0,
290
- isLast: lastIndex === blockOrder.length - 1,
296
+ isFirst,
297
+ isLast,
291
298
  isReusableBlockType,
292
299
  reusableBlock,
293
300
  rootClientId,
@@ -296,7 +303,7 @@ export default compose(withSelect((select, _ref2) => {
296
303
  };
297
304
  }), withDispatch((dispatch, _ref3, _ref4) => {
298
305
  let {
299
- clientIds,
306
+ clientId,
300
307
  rootClientId,
301
308
  currentIndex,
302
309
  selectedBlockClientId
@@ -310,7 +317,7 @@ export default compose(withSelect((select, _ref2) => {
310
317
  duplicateBlocks,
311
318
  removeBlocks,
312
319
  insertBlock,
313
- replaceBlocks,
320
+ replaceBlock,
314
321
  clearSelectedBlock
315
322
  } = dispatch(blockEditorStore);
316
323
  const {
@@ -337,7 +344,7 @@ export default compose(withSelect((select, _ref2) => {
337
344
  },
338
345
 
339
346
  duplicateBlock() {
340
- return duplicateBlocks(clientIds);
347
+ return duplicateBlocks([clientId]);
341
348
  },
342
349
 
343
350
  onMoveDown: function () {
@@ -345,14 +352,14 @@ export default compose(withSelect((select, _ref2) => {
345
352
  args[_key] = arguments[_key];
346
353
  }
347
354
 
348
- return moveBlocksDown(clientIds, rootClientId, ...args);
355
+ return moveBlocksDown([clientId], rootClientId, ...args);
349
356
  },
350
357
  onMoveUp: function () {
351
358
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
352
359
  args[_key2] = arguments[_key2];
353
360
  }
354
361
 
355
- return moveBlocksUp(clientIds, rootClientId, ...args);
362
+ return moveBlocksUp([clientId], rootClientId, ...args);
356
363
  },
357
364
  openGeneralSidebar: () => openGeneralSidebar('edit-post/block'),
358
365
  pasteBlock: clipboardBlock => {
@@ -362,7 +369,7 @@ export default compose(withSelect((select, _ref2) => {
362
369
  const insertedBlock = createBlock(clipboardBlock.name, clipboardBlock.attributes, clipboardBlock.innerBlocks);
363
370
  insertBlock(insertedBlock, currentIndex + 1, rootClientId);
364
371
  } else {
365
- replaceBlocks(clientIds, clipboardBlock);
372
+ replaceBlock(clientId, clipboardBlock);
366
373
  }
367
374
  },
368
375
  removeBlocks