@wordpress/block-editor 12.3.0 → 12.3.2

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 (971) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +13 -0
  3. package/build/autocompleters/block.js +5 -3
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/alignment-control/index.js +4 -6
  6. package/build/components/alignment-control/index.js.map +1 -1
  7. package/build/components/alignment-control/ui.js +5 -9
  8. package/build/components/alignment-control/ui.js.map +1 -1
  9. package/build/components/autocomplete/index.js +2 -4
  10. package/build/components/autocomplete/index.js.map +1 -1
  11. package/build/components/block-actions/index.js +4 -0
  12. package/build/components/block-actions/index.js.map +1 -1
  13. package/build/components/block-alignment-control/constants.js +1 -5
  14. package/build/components/block-alignment-control/constants.js.map +1 -1
  15. package/build/components/block-alignment-control/index.js +4 -6
  16. package/build/components/block-alignment-control/index.js.map +1 -1
  17. package/build/components/block-alignment-control/ui.js +3 -4
  18. package/build/components/block-alignment-control/ui.js.map +1 -1
  19. package/build/components/block-alignment-control/ui.native.js +3 -3
  20. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  21. package/build/components/block-alignment-matrix-control/index.js +0 -1
  22. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  23. package/build/components/block-breadcrumb/index.js +2 -3
  24. package/build/components/block-breadcrumb/index.js.map +1 -1
  25. package/build/components/block-controls/fill.js +2 -1
  26. package/build/components/block-controls/fill.js.map +1 -1
  27. package/build/components/block-controls/index.js +8 -8
  28. package/build/components/block-controls/index.js.map +1 -1
  29. package/build/components/block-controls/slot.js +2 -4
  30. package/build/components/block-controls/slot.js.map +1 -1
  31. package/build/components/block-controls/slot.native.js +4 -2
  32. package/build/components/block-controls/slot.native.js.map +1 -1
  33. package/build/components/block-edit/edit.js +4 -6
  34. package/build/components/block-edit/edit.js.map +1 -1
  35. package/build/components/block-edit/edit.native.js +2 -4
  36. package/build/components/block-edit/edit.native.js.map +1 -1
  37. package/build/components/block-edit/index.js +3 -2
  38. package/build/components/block-edit/index.js.map +1 -1
  39. package/build/components/block-heading-level-dropdown/heading-level-icon.js +47 -0
  40. package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -0
  41. package/build/components/block-heading-level-dropdown/index.js +83 -0
  42. package/build/components/block-heading-level-dropdown/index.js.map +1 -0
  43. package/build/components/block-heading-level-dropdown/index.native.js +72 -0
  44. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -0
  45. package/build/components/block-icon/index.native.js +6 -7
  46. package/build/components/block-icon/index.native.js.map +1 -1
  47. package/build/components/block-info-slot-fill/index.js +4 -2
  48. package/build/components/block-info-slot-fill/index.js.map +1 -1
  49. package/build/components/block-inspector/index.js +20 -87
  50. package/build/components/block-inspector/index.js.map +1 -1
  51. package/build/components/block-list/block-list-item.native.js +4 -2
  52. package/build/components/block-list/block-list-item.native.js.map +1 -1
  53. package/build/components/block-list/block.js +6 -4
  54. package/build/components/block-list/block.js.map +1 -1
  55. package/build/components/block-list/block.native.js +1 -0
  56. package/build/components/block-list/block.native.js.map +1 -1
  57. package/build/components/block-list/index.js +7 -4
  58. package/build/components/block-list/index.js.map +1 -1
  59. package/build/components/block-list/index.native.js +8 -9
  60. package/build/components/block-list/index.native.js.map +1 -1
  61. package/build/components/block-list/subdirectory-icon.js +4 -7
  62. package/build/components/block-list/subdirectory-icon.js.map +1 -1
  63. package/build/components/block-list/use-in-between-inserter.js +1 -3
  64. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  65. package/build/components/block-list-appender/index.js +21 -19
  66. package/build/components/block-list-appender/index.js.map +1 -1
  67. package/build/components/block-lock/toolbar.js +25 -6
  68. package/build/components/block-lock/toolbar.js.map +1 -1
  69. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  70. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  71. package/build/components/block-mover/button.js +12 -12
  72. package/build/components/block-mover/button.js.map +1 -1
  73. package/build/components/block-mover/index.js +11 -10
  74. package/build/components/block-mover/index.js.map +1 -1
  75. package/build/components/block-navigation/dropdown.js +4 -6
  76. package/build/components/block-navigation/dropdown.js.map +1 -1
  77. package/build/components/block-parent-selector/index.js +4 -5
  78. package/build/components/block-parent-selector/index.js.map +1 -1
  79. package/build/components/block-pattern-setup/index.js +6 -8
  80. package/build/components/block-pattern-setup/index.js.map +1 -1
  81. package/build/components/block-patterns-list/index.js +6 -8
  82. package/build/components/block-patterns-list/index.js.map +1 -1
  83. package/build/components/block-popover/inbetween.js +4 -6
  84. package/build/components/block-popover/inbetween.js.map +1 -1
  85. package/build/components/block-popover/index.js +4 -6
  86. package/build/components/block-popover/index.js.map +1 -1
  87. package/build/components/block-preview/auto.js +2 -4
  88. package/build/components/block-preview/auto.js.map +1 -1
  89. package/build/components/block-preview/index.js +7 -7
  90. package/build/components/block-preview/index.js.map +1 -1
  91. package/build/components/block-quick-navigation/index.js +83 -0
  92. package/build/components/block-quick-navigation/index.js.map +1 -0
  93. package/build/components/block-removal-warning-modal/index.js +90 -0
  94. package/build/components/block-removal-warning-modal/index.js.map +1 -0
  95. package/build/components/block-selection-clearer/index.js +4 -7
  96. package/build/components/block-selection-clearer/index.js.map +1 -1
  97. package/build/components/block-settings/button.native.js +2 -1
  98. package/build/components/block-settings/button.native.js.map +1 -1
  99. package/build/components/block-settings/container.native.js +6 -6
  100. package/build/components/block-settings/container.native.js.map +1 -1
  101. package/build/components/block-settings-menu/block-settings-dropdown.js +10 -11
  102. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  103. package/build/components/block-settings-menu/index.js +4 -5
  104. package/build/components/block-settings-menu/index.js.map +1 -1
  105. package/build/components/block-settings-menu-controls/index.js +4 -5
  106. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  107. package/build/components/block-switcher/index.js +1 -2
  108. package/build/components/block-switcher/index.js.map +1 -1
  109. package/build/components/block-switcher/pattern-transformations-menu.js +6 -8
  110. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  111. package/build/components/block-toolbar/index.js +10 -8
  112. package/build/components/block-toolbar/index.js.map +1 -1
  113. package/build/components/block-tools/block-contextual-toolbar.js +4 -5
  114. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  115. package/build/components/block-tools/block-selection-button.js +4 -5
  116. package/build/components/block-tools/block-selection-button.js.map +1 -1
  117. package/build/components/block-tools/index.js +13 -6
  118. package/build/components/block-tools/index.js.map +1 -1
  119. package/build/components/block-tools/insertion-point.js +5 -5
  120. package/build/components/block-tools/insertion-point.js.map +1 -1
  121. package/build/components/block-tools/selected-block-popover.js +8 -8
  122. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  123. package/build/components/block-types-list/index.native.js +4 -6
  124. package/build/components/block-types-list/index.native.js.map +1 -1
  125. package/build/components/block-vertical-alignment-control/index.js +4 -6
  126. package/build/components/block-vertical-alignment-control/index.js.map +1 -1
  127. package/build/components/block-vertical-alignment-control/ui.js +5 -12
  128. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  129. package/build/components/border-radius-control/all-input-control.js +2 -6
  130. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  131. package/build/components/border-radius-control/input-controls.js +2 -6
  132. package/build/components/border-radius-control/input-controls.js.map +1 -1
  133. package/build/components/border-radius-control/linked-button.js +2 -6
  134. package/build/components/border-radius-control/linked-button.js.map +1 -1
  135. package/build/components/color-palette/control.js +2 -4
  136. package/build/components/color-palette/control.js.map +1 -1
  137. package/build/components/color-palette/with-color-context.js +2 -4
  138. package/build/components/color-palette/with-color-context.js.map +1 -1
  139. package/build/components/colors/utils.js +7 -3
  140. package/build/components/colors/utils.js.map +1 -1
  141. package/build/components/colors/with-colors.js +11 -16
  142. package/build/components/colors/with-colors.js.map +1 -1
  143. package/build/components/colors-gradients/control.js +7 -5
  144. package/build/components/colors-gradients/control.js.map +1 -1
  145. package/build/components/colors-gradients/dropdown.js +12 -11
  146. package/build/components/colors-gradients/dropdown.js.map +1 -1
  147. package/build/components/colors-gradients/panel-color-gradient-settings.js +7 -5
  148. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  149. package/build/components/copy-handler/index.js +5 -6
  150. package/build/components/copy-handler/index.js.map +1 -1
  151. package/build/components/dimensions-tool/aspect-ratio-tool.js +99 -0
  152. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
  153. package/build/components/dimensions-tool/index.js +207 -0
  154. package/build/components/dimensions-tool/index.js.map +1 -0
  155. package/build/components/dimensions-tool/scale-tool.js +111 -0
  156. package/build/components/dimensions-tool/scale-tool.js.map +1 -0
  157. package/build/components/dimensions-tool/width-height-tool.js +125 -0
  158. package/build/components/dimensions-tool/width-height-tool.js.map +1 -0
  159. package/build/components/duotone-control/index.js +1 -2
  160. package/build/components/duotone-control/index.js.map +1 -1
  161. package/build/components/editable-text/index.js +6 -7
  162. package/build/components/editable-text/index.js.map +1 -1
  163. package/build/components/font-appearance-control/index.js +2 -6
  164. package/build/components/font-appearance-control/index.js.map +1 -1
  165. package/build/components/font-family/index.js +4 -5
  166. package/build/components/font-family/index.js.map +1 -1
  167. package/build/components/font-sizes/font-size-picker.js +2 -4
  168. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  169. package/build/components/font-sizes/utils.js +3 -3
  170. package/build/components/font-sizes/utils.js.map +1 -1
  171. package/build/components/font-sizes/with-font-sizes.js +7 -7
  172. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  173. package/build/components/global-styles/color-panel.js +15 -16
  174. package/build/components/global-styles/color-panel.js.map +1 -1
  175. package/build/components/global-styles/effects-panel.js +2 -1
  176. package/build/components/global-styles/effects-panel.js.map +1 -1
  177. package/build/components/global-styles/filters-panel.js +2 -1
  178. package/build/components/global-styles/filters-panel.js.map +1 -1
  179. package/build/components/global-styles/index.js +6 -0
  180. package/build/components/global-styles/index.js.map +1 -1
  181. package/build/components/global-styles/typography-panel.js +7 -7
  182. package/build/components/global-styles/typography-panel.js.map +1 -1
  183. package/build/components/global-styles/use-global-styles-output.js +19 -16
  184. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  185. package/build/components/gradients/with-gradient.js +2 -6
  186. package/build/components/gradients/with-gradient.js.map +1 -1
  187. package/build/components/iframe/index.js +5 -7
  188. package/build/components/iframe/index.js.map +1 -1
  189. package/build/components/image-editor/aspect-ratio-dropdown.js +1 -1
  190. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  191. package/build/components/image-editor/constants.js +1 -2
  192. package/build/components/image-editor/constants.js.map +1 -1
  193. package/build/components/image-editor/use-save-image.js +1 -2
  194. package/build/components/image-editor/use-save-image.js.map +1 -1
  195. package/build/components/image-size-control/index.js +6 -0
  196. package/build/components/image-size-control/index.js.map +1 -1
  197. package/build/components/index.js +9 -9
  198. package/build/components/index.js.map +1 -1
  199. package/build/components/index.native.js +9 -0
  200. package/build/components/index.native.js.map +1 -1
  201. package/build/components/inner-blocks/index.js +9 -8
  202. package/build/components/inner-blocks/index.js.map +1 -1
  203. package/build/components/inner-blocks/index.native.js +8 -7
  204. package/build/components/inner-blocks/index.native.js.map +1 -1
  205. package/build/components/inner-blocks/use-nested-settings-update.js +24 -30
  206. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  207. package/build/components/inner-blocks/with-client-id.js +2 -6
  208. package/build/components/inner-blocks/with-client-id.js.map +1 -1
  209. package/build/components/inserter/block-patterns-explorer/explorer.js +2 -1
  210. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  211. package/build/components/inserter/block-patterns-tab.js +33 -5
  212. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  213. package/build/components/inserter/hooks/use-block-types-state.js +4 -3
  214. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  215. package/build/components/inserter/hooks/use-insertion-point.js +1 -1
  216. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  217. package/build/components/inserter/index.js +8 -8
  218. package/build/components/inserter/index.js.map +1 -1
  219. package/build/components/inserter/index.native.js +4 -5
  220. package/build/components/inserter/index.native.js.map +1 -1
  221. package/build/components/inserter/library.js +1 -1
  222. package/build/components/inserter/library.js.map +1 -1
  223. package/build/components/inserter/media-tab/media-list.js +2 -6
  224. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  225. package/build/components/inserter/media-tab/media-preview.js +4 -6
  226. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  227. package/build/components/inserter/media-tab/media-tab.js +1 -1
  228. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  229. package/build/components/inserter/reusable-blocks-tab.js +3 -3
  230. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  231. package/build/components/inserter/tabs.js +3 -3
  232. package/build/components/inserter/tabs.js.map +1 -1
  233. package/build/components/inserter-list-item/index.js +4 -5
  234. package/build/components/inserter-list-item/index.js.map +1 -1
  235. package/build/components/inserter-listbox/group.js +4 -7
  236. package/build/components/inserter-listbox/group.js.map +1 -1
  237. package/build/components/inserter-listbox/item.js +8 -7
  238. package/build/components/inserter-listbox/item.js.map +1 -1
  239. package/build/components/inserter-listbox/row.js +4 -5
  240. package/build/components/inserter-listbox/row.js.map +1 -1
  241. package/build/components/inspector-controls/block-support-slot-container.js +2 -6
  242. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  243. package/build/components/inspector-controls/fill.native.js +2 -1
  244. package/build/components/inspector-controls/fill.native.js.map +1 -1
  245. package/build/components/inspector-controls/index.js +4 -6
  246. package/build/components/inspector-controls/index.js.map +1 -1
  247. package/build/components/inspector-controls/slot.js +4 -6
  248. package/build/components/inspector-controls/slot.js.map +1 -1
  249. package/build/components/inspector-controls/slot.native.js +2 -1
  250. package/build/components/inspector-controls/slot.native.js.map +1 -1
  251. package/build/components/justify-content-control/index.js +4 -6
  252. package/build/components/justify-content-control/index.js.map +1 -1
  253. package/build/components/justify-content-control/ui.js +4 -7
  254. package/build/components/justify-content-control/ui.js.map +1 -1
  255. package/build/components/letter-spacing-control/index.js +2 -4
  256. package/build/components/letter-spacing-control/index.js.map +1 -1
  257. package/build/components/line-height-control/index.js +2 -4
  258. package/build/components/line-height-control/index.js.map +1 -1
  259. package/build/components/link-control/index.js +20 -24
  260. package/build/components/link-control/index.js.map +1 -1
  261. package/build/components/link-control/search-create-button.js +2 -4
  262. package/build/components/link-control/search-create-button.js.map +1 -1
  263. package/build/components/link-control/search-input.js +7 -5
  264. package/build/components/link-control/search-input.js.map +1 -1
  265. package/build/components/link-control/search-item.js +2 -4
  266. package/build/components/link-control/search-item.js.map +1 -1
  267. package/build/components/link-control/search-results.js +2 -4
  268. package/build/components/link-control/search-results.js.map +1 -1
  269. package/build/components/link-control/settings-drawer.js +2 -3
  270. package/build/components/link-control/settings-drawer.js.map +1 -1
  271. package/build/components/list-view/appender.js +4 -6
  272. package/build/components/list-view/appender.js.map +1 -1
  273. package/build/components/list-view/aria-referenced-text.js +4 -8
  274. package/build/components/list-view/aria-referenced-text.js.map +1 -1
  275. package/build/components/list-view/block-contents.js +4 -5
  276. package/build/components/list-view/block-contents.js.map +1 -1
  277. package/build/components/list-view/block-select-button.js +13 -2
  278. package/build/components/list-view/block-select-button.js.map +1 -1
  279. package/build/components/list-view/branch.js +9 -8
  280. package/build/components/list-view/branch.js.map +1 -1
  281. package/build/components/list-view/drop-indicator.js +62 -11
  282. package/build/components/list-view/drop-indicator.js.map +1 -1
  283. package/build/components/list-view/index.js +4 -6
  284. package/build/components/list-view/index.js.map +1 -1
  285. package/build/components/list-view/leaf.js +4 -5
  286. package/build/components/list-view/leaf.js.map +1 -1
  287. package/build/components/list-view/use-list-view-client-ids.js +2 -22
  288. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  289. package/build/components/list-view/use-list-view-drop-zone.js +46 -34
  290. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  291. package/build/components/media-placeholder/index.js +38 -13
  292. package/build/components/media-placeholder/index.js.map +1 -1
  293. package/build/components/media-replace-flow/index.js +1 -3
  294. package/build/components/media-replace-flow/index.js.map +1 -1
  295. package/build/components/navigable-toolbar/index.js +8 -8
  296. package/build/components/navigable-toolbar/index.js.map +1 -1
  297. package/build/components/panel-color-settings/index.js +4 -5
  298. package/build/components/panel-color-settings/index.js.map +1 -1
  299. package/build/components/plain-text/index.js +8 -8
  300. package/build/components/plain-text/index.js.map +1 -1
  301. package/build/components/plain-text/index.native.js +7 -6
  302. package/build/components/plain-text/index.native.js.map +1 -1
  303. package/build/components/preview-options/index.js +5 -4
  304. package/build/components/preview-options/index.js.map +1 -1
  305. package/build/components/provider/index.js +2 -4
  306. package/build/components/provider/index.js.map +1 -1
  307. package/build/components/provider/use-block-sync.js +21 -0
  308. package/build/components/provider/use-block-sync.js.map +1 -1
  309. package/build/components/provider/with-registry-provider.js +8 -10
  310. package/build/components/provider/with-registry-provider.js.map +1 -1
  311. package/build/components/publish-date-time-picker/index.js +4 -5
  312. package/build/components/publish-date-time-picker/index.js.map +1 -1
  313. package/build/components/resizable-box-popover/index.js +5 -5
  314. package/build/components/resizable-box-popover/index.js.map +1 -1
  315. package/build/components/resolution-tool/index.js +55 -0
  316. package/build/components/resolution-tool/index.js.map +1 -0
  317. package/build/components/rich-text/content.js +99 -0
  318. package/build/components/rich-text/content.js.map +1 -0
  319. package/build/components/rich-text/format-toolbar/index.js +1 -2
  320. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  321. package/build/components/rich-text/index.js +8 -42
  322. package/build/components/rich-text/index.js.map +1 -1
  323. package/build/components/rich-text/index.native.js +6 -34
  324. package/build/components/rich-text/index.native.js.map +1 -1
  325. package/build/components/rich-text/toolbar-button.js +2 -6
  326. package/build/components/rich-text/toolbar-button.js.map +1 -1
  327. package/build/components/spacing-sizes-control/index.js +8 -8
  328. package/build/components/spacing-sizes-control/index.js.map +1 -1
  329. package/build/components/tool-selector/index.js +2 -6
  330. package/build/components/tool-selector/index.js.map +1 -1
  331. package/build/components/unit-control/index.js +4 -5
  332. package/build/components/unit-control/index.js.map +1 -1
  333. package/build/components/url-input/index.js +12 -10
  334. package/build/components/url-input/index.js.map +1 -1
  335. package/build/components/url-input/index.native.js +4 -7
  336. package/build/components/url-input/index.native.js.map +1 -1
  337. package/build/components/url-popover/image-url-input-ui.js +21 -14
  338. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  339. package/build/components/url-popover/index.js +4 -5
  340. package/build/components/url-popover/index.js.map +1 -1
  341. package/build/components/url-popover/link-editor.js +4 -5
  342. package/build/components/url-popover/link-editor.js.map +1 -1
  343. package/build/components/url-popover/link-viewer.js +4 -5
  344. package/build/components/url-popover/link-viewer.js.map +1 -1
  345. package/build/components/use-block-display-information/index.js +30 -2
  346. package/build/components/use-block-display-information/index.js.map +1 -1
  347. package/build/components/video-player/index.native.js +2 -4
  348. package/build/components/video-player/index.native.js.map +1 -1
  349. package/build/components/warning/index.native.js +4 -5
  350. package/build/components/warning/index.native.js.map +1 -1
  351. package/build/components/writing-flow/index.js +2 -4
  352. package/build/components/writing-flow/index.js.map +1 -1
  353. package/build/components/writing-flow/use-drag-selection.js +1 -1
  354. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  355. package/build/components/writing-flow/use-tab-nav.js +32 -4
  356. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  357. package/build/hooks/align.js +8 -8
  358. package/build/hooks/align.js.map +1 -1
  359. package/build/hooks/anchor.js +4 -2
  360. package/build/hooks/anchor.js.map +1 -1
  361. package/build/hooks/behaviors.js +75 -37
  362. package/build/hooks/behaviors.js.map +1 -1
  363. package/build/hooks/border.js +4 -5
  364. package/build/hooks/border.js.map +1 -1
  365. package/build/hooks/color.js +4 -5
  366. package/build/hooks/color.js.map +1 -1
  367. package/build/hooks/content-lock-ui.js +8 -10
  368. package/build/hooks/content-lock-ui.js.map +1 -1
  369. package/build/hooks/custom-class-name.js +4 -2
  370. package/build/hooks/custom-class-name.js.map +1 -1
  371. package/build/hooks/dimensions.js +7 -7
  372. package/build/hooks/dimensions.js.map +1 -1
  373. package/build/hooks/duotone.js +5 -5
  374. package/build/hooks/duotone.js.map +1 -1
  375. package/build/hooks/font-family.js +2 -6
  376. package/build/hooks/font-family.js.map +1 -1
  377. package/build/hooks/font-size.js +10 -8
  378. package/build/hooks/font-size.js.map +1 -1
  379. package/build/hooks/layout.js +30 -28
  380. package/build/hooks/layout.js.map +1 -1
  381. package/build/hooks/position.js +24 -16
  382. package/build/hooks/position.js.map +1 -1
  383. package/build/hooks/style.js +8 -5
  384. package/build/hooks/style.js.map +1 -1
  385. package/build/hooks/supports.js +1 -1
  386. package/build/hooks/supports.js.map +1 -1
  387. package/build/hooks/typography.native.js +3 -1
  388. package/build/hooks/typography.native.js.map +1 -1
  389. package/build/hooks/use-typography-props.js +10 -17
  390. package/build/hooks/use-typography-props.js.map +1 -1
  391. package/build/index.js +0 -14
  392. package/build/index.js.map +1 -1
  393. package/build/layouts/constrained.js +3 -1
  394. package/build/layouts/constrained.js.map +1 -1
  395. package/build/layouts/definitions.js +154 -0
  396. package/build/layouts/definitions.js.map +1 -0
  397. package/build/layouts/flex.js +8 -5
  398. package/build/layouts/flex.js.map +1 -1
  399. package/build/layouts/flow.js +3 -1
  400. package/build/layouts/flow.js.map +1 -1
  401. package/build/layouts/grid.js +3 -1
  402. package/build/layouts/grid.js.map +1 -1
  403. package/build/layouts/utils.js +8 -2
  404. package/build/layouts/utils.js.map +1 -1
  405. package/build/private-apis.js +23 -1
  406. package/build/private-apis.js.map +1 -1
  407. package/build/store/actions.js +2 -62
  408. package/build/store/actions.js.map +1 -1
  409. package/build/store/defaults.js +1 -0
  410. package/build/store/defaults.js.map +1 -1
  411. package/build/store/private-actions.js +200 -0
  412. package/build/store/private-actions.js.map +1 -1
  413. package/build/store/private-selectors.js +72 -4
  414. package/build/store/private-selectors.js.map +1 -1
  415. package/build/store/reducer.js +52 -1
  416. package/build/store/reducer.js.map +1 -1
  417. package/build/store/selectors.js +42 -42
  418. package/build/store/selectors.js.map +1 -1
  419. package/build/utils/object.js +39 -0
  420. package/build/utils/object.js.map +1 -1
  421. package/build-module/autocompleters/block.js +5 -3
  422. package/build-module/autocompleters/block.js.map +1 -1
  423. package/build-module/components/alignment-control/index.js +4 -5
  424. package/build-module/components/alignment-control/index.js.map +1 -1
  425. package/build-module/components/alignment-control/ui.js +5 -6
  426. package/build-module/components/alignment-control/ui.js.map +1 -1
  427. package/build-module/components/autocomplete/index.js +2 -3
  428. package/build-module/components/autocomplete/index.js.map +1 -1
  429. package/build-module/components/block-actions/index.js +4 -0
  430. package/build-module/components/block-actions/index.js.map +1 -1
  431. package/build-module/components/block-alignment-control/constants.js +0 -3
  432. package/build-module/components/block-alignment-control/constants.js.map +1 -1
  433. package/build-module/components/block-alignment-control/index.js +4 -5
  434. package/build-module/components/block-alignment-control/index.js.map +1 -1
  435. package/build-module/components/block-alignment-control/ui.js +4 -4
  436. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  437. package/build-module/components/block-alignment-control/ui.native.js +3 -2
  438. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  439. package/build-module/components/block-alignment-matrix-control/index.js +0 -1
  440. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  441. package/build-module/components/block-breadcrumb/index.js +2 -3
  442. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  443. package/build-module/components/block-controls/fill.js +2 -1
  444. package/build-module/components/block-controls/fill.js.map +1 -1
  445. package/build-module/components/block-controls/index.js +8 -7
  446. package/build-module/components/block-controls/index.js.map +1 -1
  447. package/build-module/components/block-controls/slot.js +2 -3
  448. package/build-module/components/block-controls/slot.js.map +1 -1
  449. package/build-module/components/block-controls/slot.native.js +4 -2
  450. package/build-module/components/block-controls/slot.native.js.map +1 -1
  451. package/build-module/components/block-edit/edit.js +4 -5
  452. package/build-module/components/block-edit/edit.js.map +1 -1
  453. package/build-module/components/block-edit/edit.native.js +2 -3
  454. package/build-module/components/block-edit/edit.native.js.map +1 -1
  455. package/build-module/components/block-edit/index.js +3 -2
  456. package/build-module/components/block-edit/index.js.map +1 -1
  457. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +39 -0
  458. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -0
  459. package/build-module/components/block-heading-level-dropdown/index.js +71 -0
  460. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -0
  461. package/build-module/components/block-heading-level-dropdown/index.native.js +60 -0
  462. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -0
  463. package/build-module/components/block-icon/index.native.js +6 -6
  464. package/build-module/components/block-icon/index.native.js.map +1 -1
  465. package/build-module/components/block-info-slot-fill/index.js +4 -2
  466. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  467. package/build-module/components/block-inspector/index.js +20 -88
  468. package/build-module/components/block-inspector/index.js.map +1 -1
  469. package/build-module/components/block-list/block-list-item.native.js +4 -2
  470. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  471. package/build-module/components/block-list/block.js +6 -4
  472. package/build-module/components/block-list/block.js.map +1 -1
  473. package/build-module/components/block-list/block.native.js +1 -0
  474. package/build-module/components/block-list/block.native.js.map +1 -1
  475. package/build-module/components/block-list/index.js +7 -4
  476. package/build-module/components/block-list/index.js.map +1 -1
  477. package/build-module/components/block-list/index.native.js +8 -8
  478. package/build-module/components/block-list/index.native.js.map +1 -1
  479. package/build-module/components/block-list/subdirectory-icon.js +4 -4
  480. package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
  481. package/build-module/components/block-list/use-in-between-inserter.js +1 -3
  482. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  483. package/build-module/components/block-list-appender/index.js +21 -19
  484. package/build-module/components/block-list-appender/index.js.map +1 -1
  485. package/build-module/components/block-lock/toolbar.js +25 -7
  486. package/build-module/components/block-lock/toolbar.js.map +1 -1
  487. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  488. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  489. package/build-module/components/block-mover/button.js +12 -11
  490. package/build-module/components/block-mover/button.js.map +1 -1
  491. package/build-module/components/block-mover/index.js +11 -9
  492. package/build-module/components/block-mover/index.js.map +1 -1
  493. package/build-module/components/block-navigation/dropdown.js +4 -5
  494. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  495. package/build-module/components/block-parent-selector/index.js +4 -4
  496. package/build-module/components/block-parent-selector/index.js.map +1 -1
  497. package/build-module/components/block-pattern-setup/index.js +6 -7
  498. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  499. package/build-module/components/block-patterns-list/index.js +6 -7
  500. package/build-module/components/block-patterns-list/index.js.map +1 -1
  501. package/build-module/components/block-popover/inbetween.js +4 -5
  502. package/build-module/components/block-popover/inbetween.js.map +1 -1
  503. package/build-module/components/block-popover/index.js +4 -5
  504. package/build-module/components/block-popover/index.js.map +1 -1
  505. package/build-module/components/block-preview/auto.js +2 -3
  506. package/build-module/components/block-preview/auto.js.map +1 -1
  507. package/build-module/components/block-preview/index.js +7 -7
  508. package/build-module/components/block-preview/index.js.map +1 -1
  509. package/build-module/components/block-quick-navigation/index.js +69 -0
  510. package/build-module/components/block-quick-navigation/index.js.map +1 -0
  511. package/build-module/components/block-removal-warning-modal/index.js +76 -0
  512. package/build-module/components/block-removal-warning-modal/index.js.map +1 -0
  513. package/build-module/components/block-selection-clearer/index.js +4 -4
  514. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  515. package/build-module/components/block-settings/button.native.js +2 -1
  516. package/build-module/components/block-settings/button.native.js.map +1 -1
  517. package/build-module/components/block-settings/container.native.js +6 -5
  518. package/build-module/components/block-settings/container.native.js.map +1 -1
  519. package/build-module/components/block-settings-menu/block-settings-dropdown.js +10 -10
  520. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  521. package/build-module/components/block-settings-menu/index.js +4 -4
  522. package/build-module/components/block-settings-menu/index.js.map +1 -1
  523. package/build-module/components/block-settings-menu-controls/index.js +4 -4
  524. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  525. package/build-module/components/block-switcher/index.js +1 -2
  526. package/build-module/components/block-switcher/index.js.map +1 -1
  527. package/build-module/components/block-switcher/pattern-transformations-menu.js +6 -7
  528. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  529. package/build-module/components/block-toolbar/index.js +10 -7
  530. package/build-module/components/block-toolbar/index.js.map +1 -1
  531. package/build-module/components/block-tools/block-contextual-toolbar.js +4 -4
  532. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  533. package/build-module/components/block-tools/block-selection-button.js +4 -4
  534. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  535. package/build-module/components/block-tools/index.js +13 -5
  536. package/build-module/components/block-tools/index.js.map +1 -1
  537. package/build-module/components/block-tools/insertion-point.js +5 -4
  538. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  539. package/build-module/components/block-tools/selected-block-popover.js +8 -7
  540. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  541. package/build-module/components/block-types-list/index.native.js +4 -5
  542. package/build-module/components/block-types-list/index.native.js.map +1 -1
  543. package/build-module/components/block-vertical-alignment-control/index.js +4 -5
  544. package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
  545. package/build-module/components/block-vertical-alignment-control/ui.js +5 -9
  546. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  547. package/build-module/components/border-radius-control/all-input-control.js +2 -3
  548. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  549. package/build-module/components/border-radius-control/input-controls.js +2 -3
  550. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  551. package/build-module/components/border-radius-control/linked-button.js +2 -3
  552. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  553. package/build-module/components/color-palette/control.js +2 -3
  554. package/build-module/components/color-palette/control.js.map +1 -1
  555. package/build-module/components/color-palette/with-color-context.js +2 -3
  556. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  557. package/build-module/components/colors/utils.js +5 -1
  558. package/build-module/components/colors/utils.js.map +1 -1
  559. package/build-module/components/colors/with-colors.js +10 -14
  560. package/build-module/components/colors/with-colors.js.map +1 -1
  561. package/build-module/components/colors-gradients/control.js +7 -4
  562. package/build-module/components/colors-gradients/control.js.map +1 -1
  563. package/build-module/components/colors-gradients/dropdown.js +12 -10
  564. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  565. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +7 -4
  566. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  567. package/build-module/components/copy-handler/index.js +5 -6
  568. package/build-module/components/copy-handler/index.js.map +1 -1
  569. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +87 -0
  570. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
  571. package/build-module/components/dimensions-tool/index.js +195 -0
  572. package/build-module/components/dimensions-tool/index.js.map +1 -0
  573. package/build-module/components/dimensions-tool/scale-tool.js +103 -0
  574. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -0
  575. package/build-module/components/dimensions-tool/width-height-tool.js +122 -0
  576. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -0
  577. package/build-module/components/duotone-control/index.js +1 -2
  578. package/build-module/components/duotone-control/index.js.map +1 -1
  579. package/build-module/components/editable-text/index.js +6 -6
  580. package/build-module/components/editable-text/index.js.map +1 -1
  581. package/build-module/components/font-appearance-control/index.js +2 -3
  582. package/build-module/components/font-appearance-control/index.js.map +1 -1
  583. package/build-module/components/font-family/index.js +4 -4
  584. package/build-module/components/font-family/index.js.map +1 -1
  585. package/build-module/components/font-sizes/font-size-picker.js +2 -3
  586. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  587. package/build-module/components/font-sizes/utils.js +2 -2
  588. package/build-module/components/font-sizes/utils.js.map +1 -1
  589. package/build-module/components/font-sizes/with-font-sizes.js +7 -6
  590. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  591. package/build-module/components/global-styles/color-panel.js +15 -15
  592. package/build-module/components/global-styles/color-panel.js.map +1 -1
  593. package/build-module/components/global-styles/effects-panel.js +2 -1
  594. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  595. package/build-module/components/global-styles/filters-panel.js +2 -1
  596. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  597. package/build-module/components/global-styles/index.js +1 -1
  598. package/build-module/components/global-styles/index.js.map +1 -1
  599. package/build-module/components/global-styles/typography-panel.js +7 -7
  600. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  601. package/build-module/components/global-styles/use-global-styles-output.js +11 -10
  602. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  603. package/build-module/components/gradients/with-gradient.js +2 -3
  604. package/build-module/components/gradients/with-gradient.js.map +1 -1
  605. package/build-module/components/iframe/index.js +5 -6
  606. package/build-module/components/iframe/index.js.map +1 -1
  607. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -1
  608. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  609. package/build-module/components/image-editor/constants.js +1 -2
  610. package/build-module/components/image-editor/constants.js.map +1 -1
  611. package/build-module/components/image-editor/use-save-image.js +1 -2
  612. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  613. package/build-module/components/image-size-control/index.js +5 -0
  614. package/build-module/components/image-size-control/index.js.map +1 -1
  615. package/build-module/components/index.js +1 -1
  616. package/build-module/components/index.js.map +1 -1
  617. package/build-module/components/index.native.js +1 -0
  618. package/build-module/components/index.native.js.map +1 -1
  619. package/build-module/components/inner-blocks/index.js +9 -7
  620. package/build-module/components/inner-blocks/index.js.map +1 -1
  621. package/build-module/components/inner-blocks/index.native.js +8 -6
  622. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  623. package/build-module/components/inner-blocks/use-nested-settings-update.js +24 -27
  624. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  625. package/build-module/components/inner-blocks/with-client-id.js +2 -3
  626. package/build-module/components/inner-blocks/with-client-id.js.map +1 -1
  627. package/build-module/components/inserter/block-patterns-explorer/explorer.js +2 -1
  628. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  629. package/build-module/components/inserter/block-patterns-tab.js +33 -7
  630. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  631. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -3
  632. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  633. package/build-module/components/inserter/hooks/use-insertion-point.js +1 -1
  634. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  635. package/build-module/components/inserter/index.js +8 -7
  636. package/build-module/components/inserter/index.js.map +1 -1
  637. package/build-module/components/inserter/index.native.js +4 -4
  638. package/build-module/components/inserter/index.native.js.map +1 -1
  639. package/build-module/components/inserter/library.js +1 -1
  640. package/build-module/components/inserter/library.js.map +1 -1
  641. package/build-module/components/inserter/media-tab/media-list.js +2 -3
  642. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  643. package/build-module/components/inserter/media-tab/media-preview.js +4 -5
  644. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  645. package/build-module/components/inserter/media-tab/media-tab.js +3 -3
  646. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  647. package/build-module/components/inserter/reusable-blocks-tab.js +3 -3
  648. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  649. package/build-module/components/inserter/tabs.js +3 -3
  650. package/build-module/components/inserter/tabs.js.map +1 -1
  651. package/build-module/components/inserter-list-item/index.js +4 -4
  652. package/build-module/components/inserter-list-item/index.js.map +1 -1
  653. package/build-module/components/inserter-listbox/group.js +4 -4
  654. package/build-module/components/inserter-listbox/group.js.map +1 -1
  655. package/build-module/components/inserter-listbox/item.js +8 -6
  656. package/build-module/components/inserter-listbox/item.js.map +1 -1
  657. package/build-module/components/inserter-listbox/row.js +4 -4
  658. package/build-module/components/inserter-listbox/row.js.map +1 -1
  659. package/build-module/components/inspector-controls/block-support-slot-container.js +2 -3
  660. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  661. package/build-module/components/inspector-controls/fill.native.js +2 -1
  662. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  663. package/build-module/components/inspector-controls/index.js +4 -5
  664. package/build-module/components/inspector-controls/index.js.map +1 -1
  665. package/build-module/components/inspector-controls/slot.js +4 -5
  666. package/build-module/components/inspector-controls/slot.js.map +1 -1
  667. package/build-module/components/inspector-controls/slot.native.js +2 -1
  668. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  669. package/build-module/components/justify-content-control/index.js +4 -5
  670. package/build-module/components/justify-content-control/index.js.map +1 -1
  671. package/build-module/components/justify-content-control/ui.js +4 -4
  672. package/build-module/components/justify-content-control/ui.js.map +1 -1
  673. package/build-module/components/letter-spacing-control/index.js +2 -3
  674. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  675. package/build-module/components/line-height-control/index.js +2 -3
  676. package/build-module/components/line-height-control/index.js.map +1 -1
  677. package/build-module/components/link-control/index.js +20 -24
  678. package/build-module/components/link-control/index.js.map +1 -1
  679. package/build-module/components/link-control/search-create-button.js +2 -3
  680. package/build-module/components/link-control/search-create-button.js.map +1 -1
  681. package/build-module/components/link-control/search-input.js +7 -5
  682. package/build-module/components/link-control/search-input.js.map +1 -1
  683. package/build-module/components/link-control/search-item.js +2 -3
  684. package/build-module/components/link-control/search-item.js.map +1 -1
  685. package/build-module/components/link-control/search-results.js +2 -3
  686. package/build-module/components/link-control/search-results.js.map +1 -1
  687. package/build-module/components/link-control/settings-drawer.js +4 -5
  688. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  689. package/build-module/components/list-view/appender.js +4 -5
  690. package/build-module/components/list-view/appender.js.map +1 -1
  691. package/build-module/components/list-view/aria-referenced-text.js +4 -5
  692. package/build-module/components/list-view/aria-referenced-text.js.map +1 -1
  693. package/build-module/components/list-view/block-contents.js +4 -4
  694. package/build-module/components/list-view/block-contents.js.map +1 -1
  695. package/build-module/components/list-view/block-select-button.js +14 -4
  696. package/build-module/components/list-view/block-select-button.js.map +1 -1
  697. package/build-module/components/list-view/branch.js +9 -7
  698. package/build-module/components/list-view/branch.js.map +1 -1
  699. package/build-module/components/list-view/drop-indicator.js +61 -11
  700. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  701. package/build-module/components/list-view/index.js +4 -5
  702. package/build-module/components/list-view/index.js.map +1 -1
  703. package/build-module/components/list-view/leaf.js +4 -4
  704. package/build-module/components/list-view/leaf.js.map +1 -1
  705. package/build-module/components/list-view/use-list-view-client-ids.js +2 -22
  706. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  707. package/build-module/components/list-view/use-list-view-drop-zone.js +45 -34
  708. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  709. package/build-module/components/media-placeholder/index.js +38 -13
  710. package/build-module/components/media-placeholder/index.js.map +1 -1
  711. package/build-module/components/media-replace-flow/index.js +1 -3
  712. package/build-module/components/media-replace-flow/index.js.map +1 -1
  713. package/build-module/components/navigable-toolbar/index.js +8 -7
  714. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  715. package/build-module/components/panel-color-settings/index.js +4 -4
  716. package/build-module/components/panel-color-settings/index.js.map +1 -1
  717. package/build-module/components/plain-text/index.js +8 -7
  718. package/build-module/components/plain-text/index.js.map +1 -1
  719. package/build-module/components/plain-text/index.native.js +7 -5
  720. package/build-module/components/plain-text/index.native.js.map +1 -1
  721. package/build-module/components/preview-options/index.js +5 -4
  722. package/build-module/components/preview-options/index.js.map +1 -1
  723. package/build-module/components/provider/index.js +2 -3
  724. package/build-module/components/provider/index.js.map +1 -1
  725. package/build-module/components/provider/use-block-sync.js +21 -0
  726. package/build-module/components/provider/use-block-sync.js.map +1 -1
  727. package/build-module/components/provider/with-registry-provider.js +8 -7
  728. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  729. package/build-module/components/publish-date-time-picker/index.js +4 -4
  730. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  731. package/build-module/components/resizable-box-popover/index.js +5 -4
  732. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  733. package/build-module/components/resolution-tool/index.js +45 -0
  734. package/build-module/components/resolution-tool/index.js.map +1 -0
  735. package/build-module/components/rich-text/content.js +85 -0
  736. package/build-module/components/rich-text/content.js.map +1 -0
  737. package/build-module/components/rich-text/format-toolbar/index.js +1 -2
  738. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  739. package/build-module/components/rich-text/index.js +8 -42
  740. package/build-module/components/rich-text/index.js.map +1 -1
  741. package/build-module/components/rich-text/index.native.js +6 -34
  742. package/build-module/components/rich-text/index.native.js.map +1 -1
  743. package/build-module/components/rich-text/toolbar-button.js +2 -3
  744. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  745. package/build-module/components/spacing-sizes-control/index.js +8 -7
  746. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  747. package/build-module/components/tool-selector/index.js +2 -3
  748. package/build-module/components/tool-selector/index.js.map +1 -1
  749. package/build-module/components/unit-control/index.js +4 -4
  750. package/build-module/components/unit-control/index.js.map +1 -1
  751. package/build-module/components/url-input/index.js +12 -9
  752. package/build-module/components/url-input/index.js.map +1 -1
  753. package/build-module/components/url-input/index.native.js +4 -4
  754. package/build-module/components/url-input/index.native.js.map +1 -1
  755. package/build-module/components/url-popover/image-url-input-ui.js +22 -15
  756. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  757. package/build-module/components/url-popover/index.js +4 -4
  758. package/build-module/components/url-popover/index.js.map +1 -1
  759. package/build-module/components/url-popover/link-editor.js +4 -4
  760. package/build-module/components/url-popover/link-editor.js.map +1 -1
  761. package/build-module/components/url-popover/link-viewer.js +4 -4
  762. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  763. package/build-module/components/use-block-display-information/index.js +29 -2
  764. package/build-module/components/use-block-display-information/index.js.map +1 -1
  765. package/build-module/components/video-player/index.native.js +2 -3
  766. package/build-module/components/video-player/index.native.js.map +1 -1
  767. package/build-module/components/warning/index.native.js +4 -4
  768. package/build-module/components/warning/index.native.js.map +1 -1
  769. package/build-module/components/writing-flow/index.js +2 -3
  770. package/build-module/components/writing-flow/index.js.map +1 -1
  771. package/build-module/components/writing-flow/use-drag-selection.js +1 -1
  772. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  773. package/build-module/components/writing-flow/use-tab-nav.js +32 -5
  774. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  775. package/build-module/hooks/align.js +8 -7
  776. package/build-module/hooks/align.js.map +1 -1
  777. package/build-module/hooks/anchor.js +4 -2
  778. package/build-module/hooks/anchor.js.map +1 -1
  779. package/build-module/hooks/behaviors.js +76 -34
  780. package/build-module/hooks/behaviors.js.map +1 -1
  781. package/build-module/hooks/border.js +4 -4
  782. package/build-module/hooks/border.js.map +1 -1
  783. package/build-module/hooks/color.js +4 -4
  784. package/build-module/hooks/color.js.map +1 -1
  785. package/build-module/hooks/content-lock-ui.js +8 -7
  786. package/build-module/hooks/content-lock-ui.js.map +1 -1
  787. package/build-module/hooks/custom-class-name.js +4 -2
  788. package/build-module/hooks/custom-class-name.js.map +1 -1
  789. package/build-module/hooks/dimensions.js +7 -6
  790. package/build-module/hooks/dimensions.js.map +1 -1
  791. package/build-module/hooks/duotone.js +5 -4
  792. package/build-module/hooks/duotone.js.map +1 -1
  793. package/build-module/hooks/font-family.js +1 -5
  794. package/build-module/hooks/font-family.js.map +1 -1
  795. package/build-module/hooks/font-size.js +10 -9
  796. package/build-module/hooks/font-size.js.map +1 -1
  797. package/build-module/hooks/layout.js +26 -24
  798. package/build-module/hooks/layout.js.map +1 -1
  799. package/build-module/hooks/position.js +23 -15
  800. package/build-module/hooks/position.js.map +1 -1
  801. package/build-module/hooks/style.js +8 -4
  802. package/build-module/hooks/style.js.map +1 -1
  803. package/build-module/hooks/supports.js +1 -1
  804. package/build-module/hooks/supports.js.map +1 -1
  805. package/build-module/hooks/typography.native.js +3 -1
  806. package/build-module/hooks/typography.native.js.map +1 -1
  807. package/build-module/hooks/use-typography-props.js +8 -15
  808. package/build-module/hooks/use-typography-props.js.map +1 -1
  809. package/build-module/index.js +1 -1
  810. package/build-module/index.js.map +1 -1
  811. package/build-module/layouts/constrained.js +2 -1
  812. package/build-module/layouts/constrained.js.map +1 -1
  813. package/build-module/layouts/definitions.js +147 -0
  814. package/build-module/layouts/definitions.js.map +1 -0
  815. package/build-module/layouts/flex.js +8 -6
  816. package/build-module/layouts/flex.js.map +1 -1
  817. package/build-module/layouts/flow.js +2 -1
  818. package/build-module/layouts/flow.js.map +1 -1
  819. package/build-module/layouts/grid.js +2 -1
  820. package/build-module/layouts/grid.js.map +1 -1
  821. package/build-module/layouts/utils.js +7 -2
  822. package/build-module/layouts/utils.js.map +1 -1
  823. package/build-module/private-apis.js +16 -1
  824. package/build-module/private-apis.js.map +1 -1
  825. package/build-module/store/actions.js +2 -62
  826. package/build-module/store/actions.js.map +1 -1
  827. package/build-module/store/defaults.js +1 -0
  828. package/build-module/store/defaults.js.map +1 -1
  829. package/build-module/store/private-actions.js +186 -0
  830. package/build-module/store/private-actions.js.map +1 -1
  831. package/build-module/store/private-selectors.js +63 -3
  832. package/build-module/store/private-selectors.js.map +1 -1
  833. package/build-module/store/reducer.js +52 -1
  834. package/build-module/store/reducer.js.map +1 -1
  835. package/build-module/store/selectors.js +42 -42
  836. package/build-module/store/selectors.js.map +1 -1
  837. package/build-module/utils/object.js +37 -1
  838. package/build-module/utils/object.js.map +1 -1
  839. package/build-style/style-rtl.css +58 -67
  840. package/build-style/style.css +58 -67
  841. package/package.json +32 -31
  842. package/src/autocompleters/block.js +4 -2
  843. package/src/components/alignment-control/test/__snapshots__/index.js.snap +6 -6
  844. package/src/components/alignment-control/ui.js +1 -2
  845. package/src/components/block-actions/index.js +10 -0
  846. package/src/components/block-alignment-control/constants.js +0 -4
  847. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +5 -5
  848. package/src/components/block-alignment-control/ui.js +1 -6
  849. package/src/components/block-alignment-matrix-control/index.js +1 -1
  850. package/src/components/block-breadcrumb/index.js +2 -6
  851. package/src/components/block-edit/index.js +3 -5
  852. package/src/components/block-heading-level-dropdown/README.md +52 -0
  853. package/src/components/block-heading-level-dropdown/heading-level-icon.js +43 -0
  854. package/src/components/block-heading-level-dropdown/index.js +77 -0
  855. package/src/components/block-heading-level-dropdown/index.native.js +63 -0
  856. package/src/components/block-inspector/index.js +18 -92
  857. package/src/components/block-inspector/style.scss +0 -5
  858. package/src/components/block-list/block.native.js +1 -0
  859. package/src/components/block-list/index.js +1 -1
  860. package/src/components/block-list/use-in-between-inserter.js +0 -4
  861. package/src/components/block-list-appender/index.js +29 -22
  862. package/src/components/block-lock/style.scss +11 -4
  863. package/src/components/block-lock/toolbar.js +34 -6
  864. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  865. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +2 -2
  866. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +3 -3
  867. package/src/components/block-mover/test/index.native.js +1 -20
  868. package/src/components/block-preview/index.js +7 -14
  869. package/src/components/block-quick-navigation/index.js +81 -0
  870. package/src/components/block-removal-warning-modal/index.js +94 -0
  871. package/src/components/block-settings-menu/block-settings-dropdown.js +15 -13
  872. package/src/components/block-switcher/index.js +1 -2
  873. package/src/components/block-toolbar/index.js +9 -6
  874. package/src/components/block-toolbar/style.scss +0 -4
  875. package/src/components/block-tools/index.js +10 -1
  876. package/src/components/block-tools/style.scss +4 -0
  877. package/src/components/block-vertical-alignment-control/ui.js +1 -3
  878. package/src/components/colors/utils.js +5 -1
  879. package/src/components/colors/with-colors.js +1 -5
  880. package/src/components/copy-handler/index.js +5 -5
  881. package/src/components/dimensions-tool/aspect-ratio-tool.js +124 -0
  882. package/src/components/dimensions-tool/index.js +212 -0
  883. package/src/components/dimensions-tool/scale-tool.js +124 -0
  884. package/src/components/dimensions-tool/stories/aspect-ratio-tool.js +52 -0
  885. package/src/components/dimensions-tool/stories/index.js +54 -0
  886. package/src/components/dimensions-tool/stories/scale-tool.js +48 -0
  887. package/src/components/dimensions-tool/stories/width-height-tool.js +54 -0
  888. package/src/components/dimensions-tool/test/index.js +641 -0
  889. package/src/components/dimensions-tool/width-height-tool.js +113 -0
  890. package/src/components/duotone-control/index.js +0 -1
  891. package/src/components/font-sizes/test/fluid-utils.js +97 -76
  892. package/src/components/font-sizes/utils.js +2 -2
  893. package/src/components/global-styles/color-panel.js +3 -3
  894. package/src/components/global-styles/index.js +1 -0
  895. package/src/components/global-styles/test/use-global-styles-output.js +14 -9
  896. package/src/components/global-styles/typography-panel.js +19 -16
  897. package/src/components/global-styles/use-global-styles-output.js +12 -12
  898. package/src/components/iframe/index.js +1 -1
  899. package/src/components/image-editor/aspect-ratio-dropdown.js +1 -1
  900. package/src/components/image-editor/constants.js +0 -1
  901. package/src/components/image-editor/use-save-image.js +0 -1
  902. package/src/components/image-size-control/index.js +6 -0
  903. package/src/components/index.js +1 -1
  904. package/src/components/index.native.js +1 -0
  905. package/src/components/inner-blocks/index.js +4 -2
  906. package/src/components/inner-blocks/index.native.js +1 -1
  907. package/src/components/inner-blocks/use-nested-settings-update.js +31 -36
  908. package/src/components/inserter/block-patterns-tab.js +63 -8
  909. package/src/components/inserter/hooks/use-block-types-state.js +4 -3
  910. package/src/components/inserter/hooks/use-insertion-point.js +1 -0
  911. package/src/components/inserter/library.js +2 -1
  912. package/src/components/inserter/media-tab/media-tab.js +9 -3
  913. package/src/components/inserter/reusable-blocks-tab.js +3 -3
  914. package/src/components/inserter/tabs.js +3 -3
  915. package/src/components/link-control/index.js +34 -37
  916. package/src/components/link-control/search-input.js +5 -3
  917. package/src/components/link-control/settings-drawer.js +6 -5
  918. package/src/components/link-control/style.scss +33 -55
  919. package/src/components/link-control/test/index.js +161 -159
  920. package/src/components/list-view/block-select-button.js +19 -1
  921. package/src/components/list-view/branch.js +6 -3
  922. package/src/components/list-view/drop-indicator.js +94 -9
  923. package/src/components/list-view/style.scss +13 -12
  924. package/src/components/list-view/test/use-list-view-drop-zone.js +188 -93
  925. package/src/components/list-view/use-list-view-client-ids.js +3 -20
  926. package/src/components/list-view/use-list-view-drop-zone.js +97 -54
  927. package/src/components/media-placeholder/index.js +54 -20
  928. package/src/components/media-replace-flow/index.js +1 -3
  929. package/src/components/media-replace-flow/test/index.js +1 -1
  930. package/src/components/preview-options/index.js +3 -2
  931. package/src/components/provider/test/experimental-provider.js +9 -6
  932. package/src/components/provider/test/use-block-sync.js +21 -6
  933. package/src/components/provider/use-block-sync.js +19 -0
  934. package/src/components/resolution-tool/index.js +56 -0
  935. package/src/components/resolution-tool/stories/index.js +48 -0
  936. package/src/components/rich-text/content.js +85 -0
  937. package/src/components/rich-text/format-toolbar/index.js +1 -2
  938. package/src/components/rich-text/index.js +2 -35
  939. package/src/components/rich-text/index.native.js +3 -33
  940. package/src/components/url-input/index.js +2 -0
  941. package/src/components/url-popover/image-url-input-ui.js +15 -15
  942. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -3
  943. package/src/components/use-block-display-information/index.js +26 -0
  944. package/src/components/writing-flow/use-drag-selection.js +1 -1
  945. package/src/components/writing-flow/use-tab-nav.js +42 -6
  946. package/src/hooks/behaviors.js +82 -39
  947. package/src/hooks/font-family.js +1 -5
  948. package/src/hooks/font-size.js +12 -17
  949. package/src/hooks/layout.js +17 -25
  950. package/src/hooks/position.js +24 -12
  951. package/src/hooks/supports.js +1 -1
  952. package/src/hooks/use-typography-props.js +14 -19
  953. package/src/index.js +0 -2
  954. package/src/layouts/constrained.js +2 -1
  955. package/src/layouts/definitions.js +174 -0
  956. package/src/layouts/flex.js +7 -5
  957. package/src/layouts/flow.js +2 -1
  958. package/src/layouts/grid.js +2 -1
  959. package/src/layouts/test/utils.js +2 -7
  960. package/src/layouts/utils.js +7 -2
  961. package/src/private-apis.js +15 -0
  962. package/src/store/actions.js +7 -56
  963. package/src/store/defaults.js +1 -0
  964. package/src/store/private-actions.js +193 -0
  965. package/src/store/private-selectors.js +108 -35
  966. package/src/store/reducer.js +44 -0
  967. package/src/store/selectors.js +61 -39
  968. package/src/store/test/private-selectors.js +269 -1
  969. package/src/store/test/selectors.js +18 -17
  970. package/src/utils/object.js +35 -0
  971. package/src/utils/test/object.js +96 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["Pressable","useWindowDimensions","View","useCallback","useMemo","useRef","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockMobileToolbar","BlockOutline","styles","store","blockEditorStore","useLayout","useSetting","emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","align","blockWidth","children","clientId","draggingClientId","draggingEnabled","isDescendentBlockSelected","isParentSelected","isSelected","isStackedHorizontally","isTouchable","marginHorizontal","marginVertical","onDeleteBlock","onFocus","width","screenWidth","anchorNodeRef","isFullWidth","isScreenWidthEqual","isFullWidthToolbar","blockWrapperStyles","flex","blockWrapperStyle","accessible","neutralToolbar","current","BlockListBlock","attributes","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isValid","name","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","hasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","getEditWrapperProps","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","undefined","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, useWindowDimensions, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useRef, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport BlockOutline from './block-outline';\nimport styles from './block.scss';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\talign,\n\tblockWidth,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\tisDescendentBlockSelected,\n\tisParentSelected,\n\tisSelected,\n\tisStackedHorizontally,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tonDeleteBlock,\n\tonFocus,\n} ) {\n\tconst { width: screenWidth } = useWindowDimensions();\n\tconst anchorNodeRef = useRef();\n\tconst { isFullWidth } = alignmentHelpers;\n\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisParentSelected={ isParentSelected }\n\t\t\t\tscreenWidth={ screenWidth }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t\t<View style={ styles.neutralToolbar } ref={ anchorNodeRef }>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\tanchorNodeRef={ anchorNodeRef.current }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! hasInnerBlocks || isSelected || ! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst { align } = attributes;\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\talign={ align }\n\t\t\tblockWidth={ blockWidth }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\tisFocused={ isFocused }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisParentSelected={ isParentSelected }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["Pressable","useWindowDimensions","View","useCallback","useMemo","useRef","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockMobileToolbar","BlockOutline","styles","store","blockEditorStore","useLayout","useSetting","emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","align","blockWidth","children","clientId","draggingClientId","draggingEnabled","isDescendentBlockSelected","isParentSelected","isSelected","isStackedHorizontally","isTouchable","marginHorizontal","marginVertical","onDeleteBlock","onFocus","width","screenWidth","anchorNodeRef","isFullWidth","isScreenWidthEqual","isFullWidthToolbar","blockWrapperStyles","flex","blockWrapperStyle","accessible","neutralToolbar","current","BlockListBlock","attributes","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isValid","name","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","hasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","getEditWrapperProps","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","undefined","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, useWindowDimensions, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useRef, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport BlockOutline from './block-outline';\nimport styles from './block.scss';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\talign,\n\tblockWidth,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\tisDescendentBlockSelected,\n\tisParentSelected,\n\tisSelected,\n\tisStackedHorizontally,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tonDeleteBlock,\n\tonFocus,\n} ) {\n\tconst { width: screenWidth } = useWindowDimensions();\n\tconst anchorNodeRef = useRef();\n\tconst { isFullWidth } = alignmentHelpers;\n\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisParentSelected={ isParentSelected }\n\t\t\t\tscreenWidth={ screenWidth }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t\t<View style={ styles.neutralToolbar } ref={ anchorNodeRef }>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\tanchorNodeRef={ anchorNodeRef.current }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! hasInnerBlocks || isSelected || ! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst { align } = attributes;\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\talign={ align }\n\t\t\tblockWidth={ blockWidth }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\tisFocused={ isFocused }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisParentSelected={ isParentSelected }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"]}
@@ -101,14 +101,16 @@ function Root({
101
101
  value: element
102
102
  }, createElement(IntersectionObserver.Provider, {
103
103
  value: intersectionObserver
104
- }, createElement("div", innerBlocksProps)));
104
+ }, createElement("div", { ...innerBlocksProps
105
+ })));
105
106
  }
106
107
 
107
108
  export default function BlockList(settings) {
108
109
  usePreParsePatterns();
109
110
  return createElement(BlockToolsBackCompat, null, createElement(BlockEditContextProvider, {
110
111
  value: DEFAULT_BLOCK_EDIT_CONTEXT
111
- }, createElement(Root, settings)));
112
+ }, createElement(Root, { ...settings
113
+ })));
112
114
  }
113
115
  BlockList.__unstableElementContext = elementContext;
114
116
 
@@ -117,7 +119,7 @@ function Items({
117
119
  rootClientId,
118
120
  renderAppender,
119
121
  __experimentalAppenderTagName,
120
- __experimentalLayout: layout = defaultLayout
122
+ layout = defaultLayout
121
123
  }) {
122
124
  const {
123
125
  order,
@@ -157,6 +159,7 @@ export function BlockListItems(props) {
157
159
  // the async mode depending on the block selection.
158
160
  return createElement(AsyncModeProvider, {
159
161
  value: false
160
- }, createElement(Items, props));
162
+ }, createElement(Items, { ...props
163
+ }));
161
164
  }
162
165
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"names":["classnames","AsyncModeProvider","useSelect","useDispatch","useRegistry","useViewportMatch","useMergeRefs","useDebounce","createContext","useState","useMemo","useCallback","BlockListBlock","BlockListAppender","useInBetweenInserter","store","blockEditorStore","usePreParsePatterns","LayoutProvider","defaultLayout","BlockToolsBackCompat","useBlockSelectionClearer","useInnerBlocksProps","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","elementContext","IntersectionObserver","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","element","setElement","isLargeViewport","isOutlineMode","isFocusMode","editorMode","select","getSettings","__unstableGetEditorMode","outlineMode","focusMode","registry","setBlockVisibility","delayedBlockVisibilityUpdates","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","ref","BlockList","__unstableElementContext","Items","placeholder","rootClientId","renderAppender","__experimentalAppenderTagName","__experimentalLayout","layout","order","selectedBlocks","visibleBlocks","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","map","has","includes","length","BlockListItems","props"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { usePreParsePatterns } from '../../utils/pre-parse-patterns';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport BlockToolsBackCompat from '../block-tools/back-compat';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\n\nconst elementContext = createContext();\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst [ element, setElement ] = useState();\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, editorMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode,\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tsetElement,\n\t\t\t] ),\n\t\t\tclassName: classnames( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t\t'is-navigate-mode': editorMode === 'navigation',\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<elementContext.Provider value={ element }>\n\t\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</IntersectionObserver.Provider>\n\t\t</elementContext.Provider>\n\t);\n}\n\nexport default function BlockList( settings ) {\n\tusePreParsePatterns();\n\treturn (\n\t\t<BlockToolsBackCompat>\n\t\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t\t<Root { ...settings } />\n\t\t\t</BlockEditContextProvider>\n\t\t</BlockToolsBackCompat>\n\t);\n}\n\nBlockList.__unstableElementContext = elementContext;\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender,\n\t__experimentalAppenderTagName,\n\t__experimentalLayout: layout = defaultLayout,\n} ) {\n\tconst { order, selectedBlocks, visibleBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\torder: getBlockOrder( rootClientId ),\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t<BlockListAppender\n\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t/>\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"names":["classnames","AsyncModeProvider","useSelect","useDispatch","useRegistry","useViewportMatch","useMergeRefs","useDebounce","createContext","useState","useMemo","useCallback","BlockListBlock","BlockListAppender","useInBetweenInserter","store","blockEditorStore","usePreParsePatterns","LayoutProvider","defaultLayout","BlockToolsBackCompat","useBlockSelectionClearer","useInnerBlocksProps","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","elementContext","IntersectionObserver","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","element","setElement","isLargeViewport","isOutlineMode","isFocusMode","editorMode","select","getSettings","__unstableGetEditorMode","outlineMode","focusMode","registry","setBlockVisibility","delayedBlockVisibilityUpdates","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","ref","BlockList","__unstableElementContext","Items","placeholder","rootClientId","renderAppender","__experimentalAppenderTagName","layout","order","selectedBlocks","visibleBlocks","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","map","has","includes","length","BlockListItems","props"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { usePreParsePatterns } from '../../utils/pre-parse-patterns';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport BlockToolsBackCompat from '../block-tools/back-compat';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\n\nconst elementContext = createContext();\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst [ element, setElement ] = useState();\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, editorMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode,\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tsetElement,\n\t\t\t] ),\n\t\t\tclassName: classnames( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t\t'is-navigate-mode': editorMode === 'navigation',\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<elementContext.Provider value={ element }>\n\t\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</IntersectionObserver.Provider>\n\t\t</elementContext.Provider>\n\t);\n}\n\nexport default function BlockList( settings ) {\n\tusePreParsePatterns();\n\treturn (\n\t\t<BlockToolsBackCompat>\n\t\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t\t<Root { ...settings } />\n\t\t\t</BlockEditContextProvider>\n\t\t</BlockToolsBackCompat>\n\t);\n}\n\nBlockList.__unstableElementContext = elementContext;\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\tconst { order, selectedBlocks, visibleBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\torder: getBlockOrder( rootClientId ),\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t<BlockListAppender\n\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t/>\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"]}
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement, Fragment } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -173,7 +172,7 @@ export default function BlockList({
173
172
  tileCount: blockClientIds.length,
174
173
  tileIndex: blockClientIds.indexOf(clientId)
175
174
  };
176
- return createElement(BlockListItem, _extends({
175
+ return createElement(BlockListItem, {
177
176
  index: index,
178
177
  isStackedHorizontally: isStackedHorizontally,
179
178
  rootClientId: rootClientId,
@@ -187,8 +186,9 @@ export default function BlockList({
187
186
  onDeleteBlock: onDeleteBlock,
188
187
  shouldShowInnerBlockAppender: shouldShowInnerBlockAppender,
189
188
  blockWidth: blockWidth,
190
- isGridItem: isGridItem
191
- }, gridItemProps));
189
+ isGridItem: isGridItem,
190
+ ...gridItemProps
191
+ });
192
192
  };
193
193
 
194
194
  const {
@@ -221,9 +221,9 @@ export default function BlockList({
221
221
  isRTL: isRTL
222
222
  }, ({
223
223
  onScroll
224
- }) => createElement(KeyboardAwareFlatList, _extends({}, Platform.OS === 'android' ? {
225
- removeClippedSubviews: false
226
- } : {}, {
224
+ }) => createElement(KeyboardAwareFlatList, { ...(Platform.OS === 'android' ? {
225
+ removeClippedSubviews: false
226
+ } : {}),
227
227
  // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541
228
228
  accessibilityLabel: "block-list",
229
229
  innerRef: ref => {
@@ -256,7 +256,7 @@ export default function BlockList({
256
256
  withFooter: withFooter
257
257
  }),
258
258
  onScroll: onScroll
259
- })))) : createElement(Fragment, null, blockClientIds.length > 0 ? createElement(View, {
259
+ }))) : createElement(Fragment, null, blockClientIds.length > 0 ? createElement(View, {
260
260
  style: [{
261
261
  flex: 0
262
262
  }, styles.overflowVisible]
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["View","Platform","TouchableWithoutFeedback","useRef","useState","useSelect","useDispatch","createBlock","KeyboardAwareFlatList","WIDE_ALIGNMENTS","alignmentHelpers","__","styles","BlockListAppender","BlockListItem","BlockListItemCell","BlockListProvider","DEFAULT_BLOCK_LIST_CONTEXT","BlockDraggableWrapper","useEditorWrapperStyles","store","blockEditorStore","identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","horizontal","overflowVisible","BlockList","blockWidth","initialBlockWidth","contentResizeMode","contentStyle","filterInnerBlocks","gridProperties","header","marginHorizontal","defaultBlock","marginLeft","marginVertical","marginTop","onAddBlock","onDeleteBlock","orientation","parentWidth","renderAppender","renderFooterAppender","rootClientId","withFooter","blockClientIds","blockCount","blockInsertionPointIsVisible","isReadOnly","isRootList","isFloatingToolbarVisible","maxWidth","isRTL","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","OS","undefined","insertBlock","clearSelectedBlock","extraData","setBlockWidth","addBlockToEndOfPost","newBlock","scrollViewRef","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","length","getExtraData","current","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","min","renderItem","item","clientId","index","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","extraScrollHeight","height","scrollRef","onScroll","removeClippedSubviews","ref","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","map","currentClientId","innerAppender","Footer","paragraphBlock","blockListFooter","EmptyList","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","alignments","full","wrapperStyles","containerStyles","defaultAppender"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tKeyboardAwareFlatList,\n\tWIDE_ALIGNMENTS,\n\talignmentHelpers,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListAppender from '../block-list-appender';\nimport BlockListItem from './block-list-item';\nimport BlockListItemCell from './block-list-item-cell';\nimport {\n\tBlockListProvider,\n\tDEFAULT_BLOCK_LIST_CONTEXT,\n} from './block-list-context';\nimport { BlockDraggableWrapper } from '../block-draggable';\nimport { useEditorWrapperStyles } from '../../hooks/use-editor-wrapper-styles';\nimport { store as blockEditorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nconst stylesMemo = {};\nconst getStyles = ( isStackedHorizontally, horizontalAlignment ) => {\n\tconst styleName = `${ isStackedHorizontally }-${ horizontalAlignment }`;\n\tif ( stylesMemo[ styleName ] ) {\n\t\treturn stylesMemo[ styleName ];\n\t}\n\tconst computedStyles = [\n\t\tisStackedHorizontally && styles.horizontal,\n\t\thorizontalAlignment && styles[ `is-aligned-${ horizontalAlignment }` ],\n\t\tstyles.overflowVisible,\n\t];\n\tstylesMemo[ styleName ] = computedStyles;\n\treturn computedStyles;\n};\n\nexport default function BlockList( {\n\tblockWidth: initialBlockWidth,\n\tcontentResizeMode,\n\tcontentStyle,\n\tfilterInnerBlocks,\n\tgridProperties,\n\theader,\n\thorizontal,\n\thorizontalAlignment,\n\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\tmarginVertical = styles.defaultBlock.marginTop,\n\tonAddBlock,\n\tonDeleteBlock,\n\torientation,\n\tparentWidth,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n\twithFooter = true,\n} ) {\n\tconst {\n\t\tblockClientIds,\n\t\tblockCount,\n\t\tblockInsertionPointIsVisible,\n\t\tisReadOnly,\n\t\tisRootList,\n\t\tisFloatingToolbarVisible,\n\t\tisStackedHorizontally,\n\t\tmaxWidth,\n\t\tisRTL,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tlet blockOrder = getBlockOrder( rootClientId );\n\t\t\t// Display only block which fulfill the condition in passed `filterInnerBlocks` function.\n\t\t\tif ( filterInnerBlocks ) {\n\t\t\t\tblockOrder = filterInnerBlocks( blockOrder );\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\treadOnly,\n\t\t\t} = getSettings();\n\n\t\t\treturn {\n\t\t\t\tblockClientIds: blockOrder,\n\t\t\t\tblockCount: getBlockCount(),\n\t\t\t\tblockInsertionPointIsVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly: readOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible:\n\t\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId ),\n\t\t\t\tisStackedHorizontally: orientation === 'horizontal',\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t};\n\t\t},\n\t\t[ filterInnerBlocks, orientation, rootClientId ]\n\t);\n\n\tconst { insertBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst extraData = useRef( {\n\t\tparentWidth,\n\t\trenderFooterAppender,\n\t\trenderAppender,\n\t\tonDeleteBlock,\n\t\tcontentStyle,\n\t} );\n\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth || 0 );\n\n\tconst addBlockToEndOfPost = ( newBlock ) => {\n\t\tinsertBlock( newBlock, blockCount );\n\t};\n\n\tconst scrollViewRef = useRef( null );\n\n\tconst shouldFlatListPreventAutomaticScroll = () =>\n\t\tblockInsertionPointIsVisible;\n\n\tconst shouldShowInnerBlockAppender = () =>\n\t\trenderAppender && blockClientIds.length > 0;\n\n\tconst getExtraData = () => {\n\t\tif (\n\t\t\textraData.current.parentWidth !== parentWidth ||\n\t\t\textraData.current.renderFooterAppender !== renderFooterAppender ||\n\t\t\textraData.current.onDeleteBlock !== onDeleteBlock ||\n\t\t\textraData.current.contentStyle !== contentStyle ||\n\t\t\textraData.current.renderAppender !== renderAppender ||\n\t\t\textraData.current.blockWidth !== blockWidth ||\n\t\t\textraData.current.gridProperties !== gridProperties\n\t\t) {\n\t\t\textraData.current = {\n\t\t\t\tparentWidth,\n\t\t\t\trenderFooterAppender,\n\t\t\t\tonDeleteBlock,\n\t\t\t\tcontentStyle,\n\t\t\t\trenderAppender,\n\t\t\t\tblockWidth,\n\t\t\t\tgridProperties,\n\t\t\t};\n\t\t}\n\t\treturn extraData.current;\n\t};\n\n\tconst onLayout = ( { nativeEvent } ) => {\n\t\tconst { layout } = nativeEvent;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t}\n\t};\n\n\tconst renderItem = ( { item: clientId, index } ) => {\n\t\t// Extracting the grid item properties here to avoid\n\t\t// re-renders in the blockListItem component.\n\t\tconst isGridItem = !! gridProperties;\n\t\tconst gridItemProps = gridProperties && {\n\t\t\tnumOfColumns: gridProperties.numColumns,\n\t\t\ttileCount: blockClientIds.length,\n\t\t\ttileIndex: blockClientIds.indexOf( clientId ),\n\t\t};\n\t\treturn (\n\t\t\t<BlockListItem\n\t\t\t\tindex={ index }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tshouldShowInnerBlockAppender={ shouldShowInnerBlockAppender }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tisGridItem={ isGridItem }\n\t\t\t\t{ ...gridItemProps }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst { blockToolbar, headerToolbar, floatingToolbar } = styles;\n\n\tconst containerStyle = {\n\t\tflex: isRootList ? 1 : 0,\n\t\t// We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.\n\t\tmarginVertical: isRootList ? 0 : -marginVertical,\n\t\tmarginHorizontal: isRootList ? 0 : -marginHorizontal,\n\t};\n\n\tconst isContentStretch = contentResizeMode === 'stretch';\n\tconst isMultiBlocks = blockClientIds.length > 1;\n\tconst { isWider } = alignmentHelpers;\n\tconst extraScrollHeight =\n\t\theaderToolbar.height +\n\t\tblockToolbar.height +\n\t\t( isFloatingToolbarVisible ? floatingToolbar.height : 0 );\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ containerStyle }\n\t\t\tonAccessibilityEscape={ clearSelectedBlock }\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID=\"block-list-wrapper\"\n\t\t>\n\t\t\t{ isRootList ? (\n\t\t\t\t<BlockListProvider\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\t\t\tscrollRef: scrollViewRef.current,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t\t\t{ ( { onScroll } ) => (\n\t\t\t\t\t\t\t<KeyboardAwareFlatList\n\t\t\t\t\t\t\t\t{ ...( Platform.OS === 'android'\n\t\t\t\t\t\t\t\t\t? { removeClippedSubviews: false }\n\t\t\t\t\t\t\t\t\t: {} ) } // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541\n\t\t\t\t\t\t\t\taccessibilityLabel=\"block-list\"\n\t\t\t\t\t\t\t\tinnerRef={ ( ref ) => {\n\t\t\t\t\t\t\t\t\tscrollViewRef.current = ref;\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\t\t\t\tscrollViewStyle={ { flex: 1 } }\n\t\t\t\t\t\t\t\textraData={ getExtraData() }\n\t\t\t\t\t\t\t\tscrollEnabled={ isRootList }\n\t\t\t\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\n\t\t\t\t\t\t\t\t\tisWider( blockWidth, 'medium' ) &&\n\t\t\t\t\t\t\t\t\t\t( isContentStretch && isMultiBlocks\n\t\t\t\t\t\t\t\t\t\t\t? styles.horizontalContentContainerStretch\n\t\t\t\t\t\t\t\t\t\t\t: styles.horizontalContentContainerCenter ),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\tdata={ blockClientIds }\n\t\t\t\t\t\t\t\tkeyExtractor={ identity }\n\t\t\t\t\t\t\t\trenderItem={ renderItem }\n\t\t\t\t\t\t\t\tCellRendererComponent={ BlockListItemCell }\n\t\t\t\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\t\t\t\tshouldFlatListPreventAutomaticScroll\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListHeaderComponent={ header }\n\t\t\t\t\t\t\t\tListEmptyComponent={\n\t\t\t\t\t\t\t\t\t! isReadOnly && (\n\t\t\t\t\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListFooterComponent={\n\t\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={\n\t\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\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\tonScroll={ onScroll }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggableWrapper>\n\t\t\t\t</BlockListProvider>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{ blockClientIds.length > 0 ? (\n\t\t\t\t\t\t<View style={ [ { flex: 0 }, styles.overflowVisible ] }>\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\t...getStyles(\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally,\n\t\t\t\t\t\t\t\t\t\thorizontalAlignment\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\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\t{ blockClientIds.map(\n\t\t\t\t\t\t\t\t\t( currentClientId, index ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<View key={ currentClientId }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ renderItem( {\n\t\t\t\t\t\t\t\t\t\t\t\t\titem: currentClientId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={ addBlockToEndOfPost }\n\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\trenderFooterAppender={ renderFooterAppender }\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\t{ shouldShowInnerBlockAppender() && (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginHorizontal:\n\t\t\t\t\t\t\tmarginHorizontal - styles.innerAppender.marginLeft,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\tshowSeparator\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nfunction Footer( {\n\taddBlockToEndOfPost,\n\tisReadOnly,\n\trenderFooterAppender,\n\twithFooter,\n} ) {\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\t\t\t\t\taddBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t</>\n\t\t);\n\t} else if ( renderFooterAppender ) {\n\t\treturn <View>{ renderFooterAppender() }</View>;\n\t}\n\n\treturn null;\n}\n\nfunction EmptyList( {\n\torientation,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n} ) {\n\tconst { shouldShowInsertionPoint } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockInsertionPointVisible,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint:\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\t! blockClientIds[ insertionPoint.index ] ),\n\t\t};\n\t} );\n\tconst align = renderAppender ? WIDE_ALIGNMENTS.alignments.full : undefined;\n\tconst [ wrapperStyles ] = useEditorWrapperStyles( { align } );\n\n\tif ( renderFooterAppender || renderAppender === false ) {\n\t\treturn null;\n\t}\n\n\tconst containerStyles = [ styles.defaultAppender, wrapperStyles ];\n\n\treturn (\n\t\t<View style={ containerStyles }>\n\t\t\t<BlockListAppender\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\tshowSeparator={ shouldShowInsertionPoint }\n\t\t\t/>\n\t\t</View>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["View","Platform","TouchableWithoutFeedback","useRef","useState","useSelect","useDispatch","createBlock","KeyboardAwareFlatList","WIDE_ALIGNMENTS","alignmentHelpers","__","styles","BlockListAppender","BlockListItem","BlockListItemCell","BlockListProvider","DEFAULT_BLOCK_LIST_CONTEXT","BlockDraggableWrapper","useEditorWrapperStyles","store","blockEditorStore","identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","horizontal","overflowVisible","BlockList","blockWidth","initialBlockWidth","contentResizeMode","contentStyle","filterInnerBlocks","gridProperties","header","marginHorizontal","defaultBlock","marginLeft","marginVertical","marginTop","onAddBlock","onDeleteBlock","orientation","parentWidth","renderAppender","renderFooterAppender","rootClientId","withFooter","blockClientIds","blockCount","blockInsertionPointIsVisible","isReadOnly","isRootList","isFloatingToolbarVisible","maxWidth","isRTL","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","OS","undefined","insertBlock","clearSelectedBlock","extraData","setBlockWidth","addBlockToEndOfPost","newBlock","scrollViewRef","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","length","getExtraData","current","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","min","renderItem","item","clientId","index","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","extraScrollHeight","height","scrollRef","onScroll","removeClippedSubviews","ref","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","map","currentClientId","innerAppender","Footer","paragraphBlock","blockListFooter","EmptyList","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","alignments","full","wrapperStyles","containerStyles","defaultAppender"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tKeyboardAwareFlatList,\n\tWIDE_ALIGNMENTS,\n\talignmentHelpers,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListAppender from '../block-list-appender';\nimport BlockListItem from './block-list-item';\nimport BlockListItemCell from './block-list-item-cell';\nimport {\n\tBlockListProvider,\n\tDEFAULT_BLOCK_LIST_CONTEXT,\n} from './block-list-context';\nimport { BlockDraggableWrapper } from '../block-draggable';\nimport { useEditorWrapperStyles } from '../../hooks/use-editor-wrapper-styles';\nimport { store as blockEditorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nconst stylesMemo = {};\nconst getStyles = ( isStackedHorizontally, horizontalAlignment ) => {\n\tconst styleName = `${ isStackedHorizontally }-${ horizontalAlignment }`;\n\tif ( stylesMemo[ styleName ] ) {\n\t\treturn stylesMemo[ styleName ];\n\t}\n\tconst computedStyles = [\n\t\tisStackedHorizontally && styles.horizontal,\n\t\thorizontalAlignment && styles[ `is-aligned-${ horizontalAlignment }` ],\n\t\tstyles.overflowVisible,\n\t];\n\tstylesMemo[ styleName ] = computedStyles;\n\treturn computedStyles;\n};\n\nexport default function BlockList( {\n\tblockWidth: initialBlockWidth,\n\tcontentResizeMode,\n\tcontentStyle,\n\tfilterInnerBlocks,\n\tgridProperties,\n\theader,\n\thorizontal,\n\thorizontalAlignment,\n\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\tmarginVertical = styles.defaultBlock.marginTop,\n\tonAddBlock,\n\tonDeleteBlock,\n\torientation,\n\tparentWidth,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n\twithFooter = true,\n} ) {\n\tconst {\n\t\tblockClientIds,\n\t\tblockCount,\n\t\tblockInsertionPointIsVisible,\n\t\tisReadOnly,\n\t\tisRootList,\n\t\tisFloatingToolbarVisible,\n\t\tisStackedHorizontally,\n\t\tmaxWidth,\n\t\tisRTL,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tlet blockOrder = getBlockOrder( rootClientId );\n\t\t\t// Display only block which fulfill the condition in passed `filterInnerBlocks` function.\n\t\t\tif ( filterInnerBlocks ) {\n\t\t\t\tblockOrder = filterInnerBlocks( blockOrder );\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\treadOnly,\n\t\t\t} = getSettings();\n\n\t\t\treturn {\n\t\t\t\tblockClientIds: blockOrder,\n\t\t\t\tblockCount: getBlockCount(),\n\t\t\t\tblockInsertionPointIsVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly: readOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible:\n\t\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId ),\n\t\t\t\tisStackedHorizontally: orientation === 'horizontal',\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t};\n\t\t},\n\t\t[ filterInnerBlocks, orientation, rootClientId ]\n\t);\n\n\tconst { insertBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst extraData = useRef( {\n\t\tparentWidth,\n\t\trenderFooterAppender,\n\t\trenderAppender,\n\t\tonDeleteBlock,\n\t\tcontentStyle,\n\t} );\n\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth || 0 );\n\n\tconst addBlockToEndOfPost = ( newBlock ) => {\n\t\tinsertBlock( newBlock, blockCount );\n\t};\n\n\tconst scrollViewRef = useRef( null );\n\n\tconst shouldFlatListPreventAutomaticScroll = () =>\n\t\tblockInsertionPointIsVisible;\n\n\tconst shouldShowInnerBlockAppender = () =>\n\t\trenderAppender && blockClientIds.length > 0;\n\n\tconst getExtraData = () => {\n\t\tif (\n\t\t\textraData.current.parentWidth !== parentWidth ||\n\t\t\textraData.current.renderFooterAppender !== renderFooterAppender ||\n\t\t\textraData.current.onDeleteBlock !== onDeleteBlock ||\n\t\t\textraData.current.contentStyle !== contentStyle ||\n\t\t\textraData.current.renderAppender !== renderAppender ||\n\t\t\textraData.current.blockWidth !== blockWidth ||\n\t\t\textraData.current.gridProperties !== gridProperties\n\t\t) {\n\t\t\textraData.current = {\n\t\t\t\tparentWidth,\n\t\t\t\trenderFooterAppender,\n\t\t\t\tonDeleteBlock,\n\t\t\t\tcontentStyle,\n\t\t\t\trenderAppender,\n\t\t\t\tblockWidth,\n\t\t\t\tgridProperties,\n\t\t\t};\n\t\t}\n\t\treturn extraData.current;\n\t};\n\n\tconst onLayout = ( { nativeEvent } ) => {\n\t\tconst { layout } = nativeEvent;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t}\n\t};\n\n\tconst renderItem = ( { item: clientId, index } ) => {\n\t\t// Extracting the grid item properties here to avoid\n\t\t// re-renders in the blockListItem component.\n\t\tconst isGridItem = !! gridProperties;\n\t\tconst gridItemProps = gridProperties && {\n\t\t\tnumOfColumns: gridProperties.numColumns,\n\t\t\ttileCount: blockClientIds.length,\n\t\t\ttileIndex: blockClientIds.indexOf( clientId ),\n\t\t};\n\t\treturn (\n\t\t\t<BlockListItem\n\t\t\t\tindex={ index }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tshouldShowInnerBlockAppender={ shouldShowInnerBlockAppender }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tisGridItem={ isGridItem }\n\t\t\t\t{ ...gridItemProps }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst { blockToolbar, headerToolbar, floatingToolbar } = styles;\n\n\tconst containerStyle = {\n\t\tflex: isRootList ? 1 : 0,\n\t\t// We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.\n\t\tmarginVertical: isRootList ? 0 : -marginVertical,\n\t\tmarginHorizontal: isRootList ? 0 : -marginHorizontal,\n\t};\n\n\tconst isContentStretch = contentResizeMode === 'stretch';\n\tconst isMultiBlocks = blockClientIds.length > 1;\n\tconst { isWider } = alignmentHelpers;\n\tconst extraScrollHeight =\n\t\theaderToolbar.height +\n\t\tblockToolbar.height +\n\t\t( isFloatingToolbarVisible ? floatingToolbar.height : 0 );\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ containerStyle }\n\t\t\tonAccessibilityEscape={ clearSelectedBlock }\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID=\"block-list-wrapper\"\n\t\t>\n\t\t\t{ isRootList ? (\n\t\t\t\t<BlockListProvider\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\t\t\tscrollRef: scrollViewRef.current,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t\t\t{ ( { onScroll } ) => (\n\t\t\t\t\t\t\t<KeyboardAwareFlatList\n\t\t\t\t\t\t\t\t{ ...( Platform.OS === 'android'\n\t\t\t\t\t\t\t\t\t? { removeClippedSubviews: false }\n\t\t\t\t\t\t\t\t\t: {} ) } // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541\n\t\t\t\t\t\t\t\taccessibilityLabel=\"block-list\"\n\t\t\t\t\t\t\t\tinnerRef={ ( ref ) => {\n\t\t\t\t\t\t\t\t\tscrollViewRef.current = ref;\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\t\t\t\tscrollViewStyle={ { flex: 1 } }\n\t\t\t\t\t\t\t\textraData={ getExtraData() }\n\t\t\t\t\t\t\t\tscrollEnabled={ isRootList }\n\t\t\t\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\n\t\t\t\t\t\t\t\t\tisWider( blockWidth, 'medium' ) &&\n\t\t\t\t\t\t\t\t\t\t( isContentStretch && isMultiBlocks\n\t\t\t\t\t\t\t\t\t\t\t? styles.horizontalContentContainerStretch\n\t\t\t\t\t\t\t\t\t\t\t: styles.horizontalContentContainerCenter ),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\tdata={ blockClientIds }\n\t\t\t\t\t\t\t\tkeyExtractor={ identity }\n\t\t\t\t\t\t\t\trenderItem={ renderItem }\n\t\t\t\t\t\t\t\tCellRendererComponent={ BlockListItemCell }\n\t\t\t\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\t\t\t\tshouldFlatListPreventAutomaticScroll\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListHeaderComponent={ header }\n\t\t\t\t\t\t\t\tListEmptyComponent={\n\t\t\t\t\t\t\t\t\t! isReadOnly && (\n\t\t\t\t\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListFooterComponent={\n\t\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={\n\t\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\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\tonScroll={ onScroll }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggableWrapper>\n\t\t\t\t</BlockListProvider>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{ blockClientIds.length > 0 ? (\n\t\t\t\t\t\t<View style={ [ { flex: 0 }, styles.overflowVisible ] }>\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\t...getStyles(\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally,\n\t\t\t\t\t\t\t\t\t\thorizontalAlignment\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\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\t{ blockClientIds.map(\n\t\t\t\t\t\t\t\t\t( currentClientId, index ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<View key={ currentClientId }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ renderItem( {\n\t\t\t\t\t\t\t\t\t\t\t\t\titem: currentClientId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={ addBlockToEndOfPost }\n\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\trenderFooterAppender={ renderFooterAppender }\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\t{ shouldShowInnerBlockAppender() && (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginHorizontal:\n\t\t\t\t\t\t\tmarginHorizontal - styles.innerAppender.marginLeft,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\tshowSeparator\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nfunction Footer( {\n\taddBlockToEndOfPost,\n\tisReadOnly,\n\trenderFooterAppender,\n\twithFooter,\n} ) {\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\t\t\t\t\taddBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t</>\n\t\t);\n\t} else if ( renderFooterAppender ) {\n\t\treturn <View>{ renderFooterAppender() }</View>;\n\t}\n\n\treturn null;\n}\n\nfunction EmptyList( {\n\torientation,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n} ) {\n\tconst { shouldShowInsertionPoint } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockInsertionPointVisible,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint:\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\t! blockClientIds[ insertionPoint.index ] ),\n\t\t};\n\t} );\n\tconst align = renderAppender ? WIDE_ALIGNMENTS.alignments.full : undefined;\n\tconst [ wrapperStyles ] = useEditorWrapperStyles( { align } );\n\n\tif ( renderFooterAppender || renderAppender === false ) {\n\t\treturn null;\n\t}\n\n\tconst containerStyles = [ styles.defaultAppender, wrapperStyles ];\n\n\treturn (\n\t\t<View style={ containerStyles }>\n\t\t\t<BlockListAppender\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\tshowSeparator={ shouldShowInsertionPoint }\n\t\t\t/>\n\t\t</View>\n\t);\n}\n"]}
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -8,12 +7,13 @@ import { SVG, Path } from '@wordpress/components';
8
7
  import { isRTL } from '@wordpress/i18n';
9
8
 
10
9
  const Subdirectory = ({ ...extraProps
11
- }) => createElement(SVG, _extends({
10
+ }) => createElement(SVG, {
12
11
  xmlns: "http://www.w3.org/2000/svg",
13
12
  width: 14,
14
13
  height: 14,
15
- viewBox: "0 0 20 20"
16
- }, extraProps), createElement(Path, {
14
+ viewBox: "0 0 20 20",
15
+ ...extraProps
16
+ }, createElement(Path, {
17
17
  d: "M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z",
18
18
  transform: isRTL() ? 'scale(-1,1) translate(-20,0)' : undefined
19
19
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/subdirectory-icon.js"],"names":["SVG","Path","isRTL","Subdirectory","extraProps","undefined"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,IAAd,QAA0B,uBAA1B;AACA,SAASC,KAAT,QAAsB,iBAAtB;;AAEA,MAAMC,YAAY,GAAG,CAAE,EAAE,GAAGC;AAAL,CAAF,KACpB,cAAC,GAAD;AACC,EAAA,KAAK,EAAC,4BADP;AAEC,EAAA,KAAK,EAAG,EAFT;AAGC,EAAA,MAAM,EAAG,EAHV;AAIC,EAAA,OAAO,EAAC;AAJT,GAKMA,UALN,GAOC,cAAC,IAAD;AACC,EAAA,CAAC,EAAC,mEADH;AAEC,EAAA,SAAS,EAAGF,KAAK,KAAK,8BAAL,GAAsCG;AAFxD,EAPD,CADD;;AAcA,eAAeF,YAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\nconst Subdirectory = ( { ...extraProps } ) => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth={ 14 }\n\t\theight={ 14 }\n\t\tviewBox=\"0 0 20 20\"\n\t\t{ ...extraProps }\n\t>\n\t\t<Path\n\t\t\td=\"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z\"\n\t\t\ttransform={ isRTL() ? 'scale(-1,1) translate(-20,0)' : undefined }\n\t\t/>\n\t</SVG>\n);\nexport default Subdirectory;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/subdirectory-icon.js"],"names":["SVG","Path","isRTL","Subdirectory","extraProps","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,IAAd,QAA0B,uBAA1B;AACA,SAASC,KAAT,QAAsB,iBAAtB;;AAEA,MAAMC,YAAY,GAAG,CAAE,EAAE,GAAGC;AAAL,CAAF,KACpB,cAAC,GAAD;AACC,EAAA,KAAK,EAAC,4BADP;AAEC,EAAA,KAAK,EAAG,EAFT;AAGC,EAAA,MAAM,EAAG,EAHV;AAIC,EAAA,OAAO,EAAC,WAJT;AAAA,KAKMA;AALN,GAOC,cAAC,IAAD;AACC,EAAA,CAAC,EAAC,mEADH;AAEC,EAAA,SAAS,EAAGF,KAAK,KAAK,8BAAL,GAAsCG;AAFxD,EAPD,CADD;;AAcA,eAAeF,YAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\nconst Subdirectory = ( { ...extraProps } ) => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth={ 14 }\n\t\theight={ 14 }\n\t\tviewBox=\"0 0 20 20\"\n\t\t{ ...extraProps }\n\t>\n\t\t<Path\n\t\t\td=\"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z\"\n\t\t\ttransform={ isRTL() ? 'scale(-1,1) translate(-20,0)' : undefined }\n\t\t/>\n\t</SVG>\n);\nexport default Subdirectory;\n"]}
@@ -17,9 +17,7 @@ export function useInBetweenInserter() {
17
17
  const isInBetweenInserterDisabled = useSelect(select => select(blockEditorStore).getSettings().isDistractionFree || select(blockEditorStore).__unstableGetEditorMode() === 'zoom-out', []);
18
18
  const {
19
19
  getBlockListSettings,
20
- getBlockRootClientId,
21
20
  getBlockIndex,
22
- isBlockInsertionPointVisible,
23
21
  isMultiSelecting,
24
22
  getSelectedBlockClientIds,
25
23
  getTemplateLock,
@@ -128,6 +126,6 @@ export function useInBetweenInserter() {
128
126
  return () => {
129
127
  node.removeEventListener('mousemove', onMouseMove);
130
128
  };
131
- }, [openRef, getBlockListSettings, getBlockRootClientId, getBlockIndex, isBlockInsertionPointVisible, isMultiSelecting, showInsertionPoint, hideInsertionPoint, getSelectedBlockClientIds, isInBetweenInserterDisabled]);
129
+ }, [openRef, getBlockListSettings, getBlockIndex, isMultiSelecting, showInsertionPoint, hideInsertionPoint, getSelectedBlockClientIds, isInBetweenInserterDisabled]);
132
130
  }
133
131
  //# sourceMappingURL=use-in-between-inserter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","unlock","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockRootClientId","getBlockIndex","isBlockInsertionPointVisible","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\nimport { unlock } from '../../lock-unlock';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tisBlockInsertionPointVisible,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t} = unlock( useSelect( blockEditorStore ) );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\tif ( openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled'\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","unlock","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\nimport { unlock } from '../../lock-unlock';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t} = unlock( useSelect( blockEditorStore ) );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\tif ( openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled'\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"]}