@wordpress/block-editor 12.15.0 → 12.16.1-next.79a6196f.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (927) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +12 -10
  4. package/build/components/block-canvas/index.js +21 -7
  5. package/build/components/block-canvas/index.js.map +1 -1
  6. package/build/components/block-card/index.js +2 -2
  7. package/build/components/block-card/index.js.map +1 -1
  8. package/build/components/block-controls/hook.js +3 -23
  9. package/build/components/block-controls/hook.js.map +1 -1
  10. package/build/components/block-draggable/draggable-chip.js +6 -1
  11. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  12. package/build/components/block-draggable/index.js +76 -6
  13. package/build/components/block-draggable/index.js.map +1 -1
  14. package/build/components/block-draggable/index.native.js +0 -6
  15. package/build/components/block-draggable/index.native.js.map +1 -1
  16. package/build/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  17. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  18. package/build/components/block-edit/context.js +5 -1
  19. package/build/components/block-edit/context.js.map +1 -1
  20. package/build/components/block-edit/index.js +18 -9
  21. package/build/components/block-edit/index.js.map +1 -1
  22. package/build/components/block-editing-mode/index.js +2 -3
  23. package/build/components/block-editing-mode/index.js.map +1 -1
  24. package/build/components/block-info-slot-fill/index.js +3 -4
  25. package/build/components/block-info-slot-fill/index.js.map +1 -1
  26. package/build/components/block-inspector/index.js +1 -1
  27. package/build/components/block-inspector/index.js.map +1 -1
  28. package/build/components/block-list/block-list-item-cell.native.js +1 -0
  29. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  30. package/build/components/block-list/block.js +257 -95
  31. package/build/components/block-list/block.js.map +1 -1
  32. package/build/components/block-list/block.native.js +58 -23
  33. package/build/components/block-list/block.native.js.map +1 -1
  34. package/build/components/block-list/index.native.js +3 -5
  35. package/build/components/block-list/index.native.js.map +1 -1
  36. package/build/components/block-list/private-block-context.js +14 -0
  37. package/build/components/block-list/private-block-context.js.map +1 -0
  38. package/build/components/block-list/use-block-props/index.js +49 -69
  39. package/build/components/block-list/use-block-props/index.js.map +1 -1
  40. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  41. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  42. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  43. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  44. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  45. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  46. package/build/components/block-list/use-in-between-inserter.js +3 -2
  47. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  48. package/build/components/block-list/use-scroll-upon-insertion.native.js +41 -0
  49. package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
  50. package/build/components/block-lock/toolbar.js +21 -27
  51. package/build/components/block-lock/toolbar.js.map +1 -1
  52. package/build/components/block-mover/index.js +2 -1
  53. package/build/components/block-mover/index.js.map +1 -1
  54. package/build/components/block-patterns-list/index.js +5 -5
  55. package/build/components/block-patterns-list/index.js.map +1 -1
  56. package/build/components/block-removal-warning-modal/index.js +2 -9
  57. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  58. package/build/components/block-rename/modal.js +3 -0
  59. package/build/components/block-rename/modal.js.map +1 -1
  60. package/build/components/block-settings/container.native.js +6 -4
  61. package/build/components/block-settings/container.native.js.map +1 -1
  62. package/build/components/block-styles/index.js +1 -1
  63. package/build/components/block-styles/index.js.map +1 -1
  64. package/build/components/block-styles/index.native.js +3 -2
  65. package/build/components/block-styles/index.native.js.map +1 -1
  66. package/build/components/block-switcher/index.js +4 -4
  67. package/build/components/block-switcher/index.js.map +1 -1
  68. package/build/components/block-toolbar/index.js +90 -29
  69. package/build/components/block-toolbar/index.js.map +1 -1
  70. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  71. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  72. package/build/components/block-tools/block-toolbar-popover.js +84 -0
  73. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  74. package/build/components/block-tools/index.js +27 -24
  75. package/build/components/block-tools/index.js.map +1 -1
  76. package/build/components/block-types-list/index.native.js +4 -3
  77. package/build/components/block-types-list/index.native.js.map +1 -1
  78. package/build/components/block-variation-picker/index.native.js +2 -1
  79. package/build/components/block-variation-picker/index.native.js.map +1 -1
  80. package/build/components/block-variation-transforms/index.js +29 -2
  81. package/build/components/block-variation-transforms/index.js.map +1 -1
  82. package/build/components/border-radius-control/linked-button.js +1 -1
  83. package/build/components/border-radius-control/linked-button.js.map +1 -1
  84. package/build/components/colors/utils.js +10 -2
  85. package/build/components/colors/utils.js.map +1 -1
  86. package/build/components/colors/with-colors.js +6 -2
  87. package/build/components/colors/with-colors.js.map +1 -1
  88. package/build/components/colors-gradients/control.js +28 -17
  89. package/build/components/colors-gradients/control.js.map +1 -1
  90. package/build/components/duotone-control/index.js +1 -4
  91. package/build/components/duotone-control/index.js.map +1 -1
  92. package/build/components/font-sizes/utils.js +10 -2
  93. package/build/components/font-sizes/utils.js.map +1 -1
  94. package/build/components/global-styles/border-panel.js +2 -1
  95. package/build/components/global-styles/border-panel.js.map +1 -1
  96. package/build/components/global-styles/color-panel.js +24 -21
  97. package/build/components/global-styles/color-panel.js.map +1 -1
  98. package/build/components/global-styles/dimensions-panel.js +4 -3
  99. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  100. package/build/components/global-styles/effects-panel.js +2 -1
  101. package/build/components/global-styles/effects-panel.js.map +1 -1
  102. package/build/components/global-styles/filters-panel.js +6 -3
  103. package/build/components/global-styles/filters-panel.js.map +1 -1
  104. package/build/components/global-styles/get-global-styles-changes.js +192 -0
  105. package/build/components/global-styles/get-global-styles-changes.js.map +1 -0
  106. package/build/components/global-styles/hooks.js +3 -2
  107. package/build/components/global-styles/hooks.js.map +1 -1
  108. package/build/components/global-styles/image-settings-panel.js +7 -1
  109. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  110. package/build/components/global-styles/index.js +7 -0
  111. package/build/components/global-styles/index.js.map +1 -1
  112. package/build/components/global-styles/typography-panel.js +43 -36
  113. package/build/components/global-styles/typography-panel.js.map +1 -1
  114. package/build/components/global-styles/use-global-styles-output.js +22 -8
  115. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  116. package/build/components/global-styles/utils.js +8 -1
  117. package/build/components/global-styles/utils.js.map +1 -1
  118. package/build/components/height-control/index.js +6 -2
  119. package/build/components/height-control/index.js.map +1 -1
  120. package/build/components/image-link-destinations/index.native.js +118 -0
  121. package/build/components/image-link-destinations/index.native.js.map +1 -0
  122. package/build/components/image-size-control/index.js +2 -2
  123. package/build/components/image-size-control/index.js.map +1 -1
  124. package/build/components/index.native.js +14 -5
  125. package/build/components/index.native.js.map +1 -1
  126. package/build/components/inner-blocks/index.js +61 -22
  127. package/build/components/inner-blocks/index.js.map +1 -1
  128. package/build/components/inner-blocks/index.native.js +18 -4
  129. package/build/components/inner-blocks/index.native.js.map +1 -1
  130. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -6
  131. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  132. package/build/components/inner-blocks/use-nested-settings-update.js +5 -9
  133. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  134. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  135. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  136. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -9
  137. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  138. package/build/components/inserter/block-patterns-tab/patterns-filter.js +10 -10
  139. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  140. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +9 -9
  141. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  142. package/build/components/inserter/block-patterns-tab/utils.js +10 -14
  143. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  144. package/build/components/inserter/hooks/use-block-types-state.js +4 -14
  145. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  146. package/build/components/inserter/hooks/use-patterns-state.js +1 -1
  147. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  148. package/build/components/inserter/index.js +1 -2
  149. package/build/components/inserter/index.js.map +1 -1
  150. package/build/components/inserter/library.js +3 -7
  151. package/build/components/inserter/library.js.map +1 -1
  152. package/build/components/inserter/media-tab/media-panel.js +2 -2
  153. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  154. package/build/components/inserter/menu.js +26 -33
  155. package/build/components/inserter/menu.js.map +1 -1
  156. package/build/components/inserter/preview-panel.js +2 -2
  157. package/build/components/inserter/preview-panel.js.map +1 -1
  158. package/build/components/inserter/tabs.js +21 -21
  159. package/build/components/inserter/tabs.js.map +1 -1
  160. package/build/components/inserter-button/index.native.js +98 -0
  161. package/build/components/inserter-button/index.native.js.map +1 -0
  162. package/build/components/inserter-button/sparkles.js +23 -0
  163. package/build/components/inserter-button/sparkles.js.map +1 -0
  164. package/build/components/inserter-draggable-blocks/index.js +8 -4
  165. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  166. package/build/components/inserter-list-item/index.js +2 -4
  167. package/build/components/inserter-list-item/index.js.map +1 -1
  168. package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
  169. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  170. package/build/components/inspector-controls/fill.js +3 -3
  171. package/build/components/inspector-controls/fill.js.map +1 -1
  172. package/build/components/inspector-controls/fill.native.js +3 -3
  173. package/build/components/inspector-controls/fill.native.js.map +1 -1
  174. package/build/components/inspector-controls-tabs/index.js +34 -23
  175. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  176. package/build/components/list-view/block-select-button.js +4 -0
  177. package/build/components/list-view/block-select-button.js.map +1 -1
  178. package/build/components/list-view/block.js +57 -3
  179. package/build/components/list-view/block.js.map +1 -1
  180. package/build/components/media-upload-progress/constants.js +19 -0
  181. package/build/components/media-upload-progress/constants.js.map +1 -0
  182. package/build/components/media-upload-progress/index.native.js +42 -17
  183. package/build/components/media-upload-progress/index.native.js.map +1 -1
  184. package/build/components/navigable-toolbar/index.js +11 -16
  185. package/build/components/navigable-toolbar/index.js.map +1 -1
  186. package/build/components/plain-text/index.native.js +8 -3
  187. package/build/components/plain-text/index.native.js.map +1 -1
  188. package/build/components/preview-options/index.js +6 -62
  189. package/build/components/preview-options/index.js.map +1 -1
  190. package/build/components/provider/index.js +3 -1
  191. package/build/components/provider/index.js.map +1 -1
  192. package/build/components/provider/use-block-sync.js +7 -1
  193. package/build/components/provider/use-block-sync.js.map +1 -1
  194. package/build/components/rich-text/content.js +26 -23
  195. package/build/components/rich-text/content.js.map +1 -1
  196. package/build/components/rich-text/get-rich-text-values.js +2 -1
  197. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  198. package/build/components/rich-text/index.js +19 -37
  199. package/build/components/rich-text/index.js.map +1 -1
  200. package/build/components/rich-text/index.native.js +9 -16
  201. package/build/components/rich-text/index.native.js.map +1 -1
  202. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  203. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  204. package/build/components/rich-text/native/index.native.js +22 -57
  205. package/build/components/rich-text/native/index.native.js.map +1 -1
  206. package/build/components/rich-text/use-input-rules.js +7 -3
  207. package/build/components/rich-text/use-input-rules.js.map +1 -1
  208. package/build/components/rich-text/use-mark-persistent.js +1 -1
  209. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  210. package/build/components/rich-text/with-deprecations.js +50 -0
  211. package/build/components/rich-text/with-deprecations.js.map +1 -0
  212. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  213. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  214. package/build/components/url-input/index.js +9 -6
  215. package/build/components/url-input/index.js.map +1 -1
  216. package/build/components/use-block-commands/index.js +14 -18
  217. package/build/components/use-block-commands/index.js.map +1 -1
  218. package/build/components/use-block-drop-zone/index.js +108 -17
  219. package/build/components/use-block-drop-zone/index.js.map +1 -1
  220. package/build/components/use-moving-animation/index.js +100 -92
  221. package/build/components/use-moving-animation/index.js.map +1 -1
  222. package/build/components/use-on-block-drop/index.js +9 -12
  223. package/build/components/use-on-block-drop/index.js.map +1 -1
  224. package/build/components/use-resize-canvas/index.js +4 -1
  225. package/build/components/use-resize-canvas/index.js.map +1 -1
  226. package/build/components/use-settings/index.js +14 -0
  227. package/build/components/use-settings/index.js.map +1 -1
  228. package/build/components/writing-flow/index.js +0 -1
  229. package/build/components/writing-flow/index.js.map +1 -1
  230. package/build/components/writing-flow/use-drag-selection.js +15 -4
  231. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  232. package/build/components/writing-flow/use-selection-observer.js +73 -27
  233. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  234. package/build/components/writing-flow/use-tab-nav.js +7 -4
  235. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  236. package/build/hooks/align.js +21 -69
  237. package/build/hooks/align.js.map +1 -1
  238. package/build/hooks/align.native.js +11 -1
  239. package/build/hooks/align.native.js.map +1 -1
  240. package/build/hooks/anchor.js +14 -30
  241. package/build/hooks/anchor.js.map +1 -1
  242. package/build/hooks/aria-label.js +9 -1
  243. package/build/hooks/aria-label.js.map +1 -1
  244. package/build/hooks/background.js +198 -36
  245. package/build/hooks/background.js.map +1 -1
  246. package/build/hooks/block-hooks.js +24 -32
  247. package/build/hooks/block-hooks.js.map +1 -1
  248. package/build/hooks/block-renaming.js +18 -22
  249. package/build/hooks/block-renaming.js.map +1 -1
  250. package/build/hooks/border.js +53 -80
  251. package/build/hooks/border.js.map +1 -1
  252. package/build/hooks/color.js +79 -90
  253. package/build/hooks/color.js.map +1 -1
  254. package/build/hooks/content-lock-ui.js +29 -29
  255. package/build/hooks/content-lock-ui.js.map +1 -1
  256. package/build/hooks/custom-class-name.js +13 -30
  257. package/build/hooks/custom-class-name.js.map +1 -1
  258. package/build/hooks/custom-class-name.native.js +9 -1
  259. package/build/hooks/custom-class-name.native.js.map +1 -1
  260. package/build/hooks/dimensions.js +13 -14
  261. package/build/hooks/dimensions.js.map +1 -1
  262. package/build/hooks/duotone.js +31 -61
  263. package/build/hooks/duotone.js.map +1 -1
  264. package/build/hooks/font-family.js +23 -28
  265. package/build/hooks/font-family.js.map +1 -1
  266. package/build/hooks/font-size.js +52 -120
  267. package/build/hooks/font-size.js.map +1 -1
  268. package/build/hooks/index.js +27 -16
  269. package/build/hooks/index.js.map +1 -1
  270. package/build/hooks/index.native.js +15 -6
  271. package/build/hooks/index.native.js.map +1 -1
  272. package/build/hooks/layout-child.js +68 -0
  273. package/build/hooks/layout-child.js.map +1 -0
  274. package/build/hooks/layout.js +25 -104
  275. package/build/hooks/layout.js.map +1 -1
  276. package/build/hooks/padding.js +2 -2
  277. package/build/hooks/padding.js.map +1 -1
  278. package/build/hooks/position.js +40 -62
  279. package/build/hooks/position.js.map +1 -1
  280. package/build/hooks/style.js +52 -89
  281. package/build/hooks/style.js.map +1 -1
  282. package/build/hooks/typography.js +25 -10
  283. package/build/hooks/typography.js.map +1 -1
  284. package/build/hooks/typography.native.js +43 -18
  285. package/build/hooks/typography.native.js.map +1 -1
  286. package/build/hooks/use-typography-props.js +10 -2
  287. package/build/hooks/use-typography-props.js.map +1 -1
  288. package/build/hooks/utils.js +200 -10
  289. package/build/hooks/utils.js.map +1 -1
  290. package/build/private-apis.js +2 -6
  291. package/build/private-apis.js.map +1 -1
  292. package/build/private-apis.native.js +0 -2
  293. package/build/private-apis.native.js.map +1 -1
  294. package/build/store/actions.js +0 -16
  295. package/build/store/actions.js.map +1 -1
  296. package/build/store/private-actions.js +54 -0
  297. package/build/store/private-actions.js.map +1 -1
  298. package/build/store/private-selectors.js +46 -0
  299. package/build/store/private-selectors.js.map +1 -1
  300. package/build/store/reducer.js +18 -2
  301. package/build/store/reducer.js.map +1 -1
  302. package/build/store/selectors.js +11 -73
  303. package/build/store/selectors.js.map +1 -1
  304. package/build/store/undo-ignore.js +12 -0
  305. package/build/store/undo-ignore.js.map +1 -0
  306. package/build/store/utils.js +66 -0
  307. package/build/store/utils.js.map +1 -0
  308. package/build/utils/get-px-from-css-unit.js +16 -0
  309. package/build/utils/get-px-from-css-unit.js.map +1 -0
  310. package/build/utils/index.js +2 -2
  311. package/build/utils/index.js.map +1 -1
  312. package/build/utils/object.js +38 -99
  313. package/build/utils/object.js.map +1 -1
  314. package/build/utils/selection.js +9 -1
  315. package/build/utils/selection.js.map +1 -1
  316. package/build/utils/use-can-block-toolbar-be-focused.js +46 -0
  317. package/build/utils/use-can-block-toolbar-be-focused.js.map +1 -0
  318. package/build-module/components/block-canvas/index.js +22 -8
  319. package/build-module/components/block-canvas/index.js.map +1 -1
  320. package/build-module/components/block-card/index.js +2 -2
  321. package/build-module/components/block-card/index.js.map +1 -1
  322. package/build-module/components/block-controls/hook.js +4 -24
  323. package/build-module/components/block-controls/hook.js.map +1 -1
  324. package/build-module/components/block-draggable/draggable-chip.js +6 -1
  325. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  326. package/build-module/components/block-draggable/index.js +76 -6
  327. package/build-module/components/block-draggable/index.js.map +1 -1
  328. package/build-module/components/block-draggable/index.native.js +1 -7
  329. package/build-module/components/block-draggable/index.native.js.map +1 -1
  330. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  331. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  332. package/build-module/components/block-edit/context.js +2 -0
  333. package/build-module/components/block-edit/context.js.map +1 -1
  334. package/build-module/components/block-edit/index.js +19 -10
  335. package/build-module/components/block-edit/index.js.map +1 -1
  336. package/build-module/components/block-editing-mode/index.js +3 -4
  337. package/build-module/components/block-editing-mode/index.js.map +1 -1
  338. package/build-module/components/block-info-slot-fill/index.js +3 -3
  339. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  340. package/build-module/components/block-inspector/index.js +1 -1
  341. package/build-module/components/block-inspector/index.js.map +1 -1
  342. package/build-module/components/block-list/block-list-item-cell.native.js +1 -0
  343. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  344. package/build-module/components/block-list/block.js +261 -99
  345. package/build-module/components/block-list/block.js.map +1 -1
  346. package/build-module/components/block-list/block.native.js +60 -25
  347. package/build-module/components/block-list/block.native.js.map +1 -1
  348. package/build-module/components/block-list/index.native.js +3 -5
  349. package/build-module/components/block-list/index.native.js.map +1 -1
  350. package/build-module/components/block-list/private-block-context.js +6 -0
  351. package/build-module/components/block-list/private-block-context.js.map +1 -0
  352. package/build-module/components/block-list/use-block-props/index.js +50 -70
  353. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  354. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  355. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  356. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  357. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  358. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  359. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  360. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  361. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  362. package/build-module/components/block-list/use-scroll-upon-insertion.native.js +33 -0
  363. package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
  364. package/build-module/components/block-lock/toolbar.js +22 -28
  365. package/build-module/components/block-lock/toolbar.js.map +1 -1
  366. package/build-module/components/block-mover/index.js +2 -1
  367. package/build-module/components/block-mover/index.js.map +1 -1
  368. package/build-module/components/block-patterns-list/index.js +6 -6
  369. package/build-module/components/block-patterns-list/index.js.map +1 -1
  370. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  371. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  372. package/build-module/components/block-rename/modal.js +3 -0
  373. package/build-module/components/block-rename/modal.js.map +1 -1
  374. package/build-module/components/block-settings/container.native.js +4 -2
  375. package/build-module/components/block-settings/container.native.js.map +1 -1
  376. package/build-module/components/block-styles/index.js +1 -1
  377. package/build-module/components/block-styles/index.js.map +1 -1
  378. package/build-module/components/block-styles/index.native.js +3 -2
  379. package/build-module/components/block-styles/index.native.js.map +1 -1
  380. package/build-module/components/block-switcher/index.js +4 -4
  381. package/build-module/components/block-switcher/index.js.map +1 -1
  382. package/build-module/components/block-toolbar/index.js +89 -27
  383. package/build-module/components/block-toolbar/index.js.map +1 -1
  384. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  385. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  386. package/build-module/components/block-tools/block-toolbar-popover.js +74 -0
  387. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  388. package/build-module/components/block-tools/index.js +27 -24
  389. package/build-module/components/block-tools/index.js.map +1 -1
  390. package/build-module/components/block-types-list/index.native.js +2 -1
  391. package/build-module/components/block-types-list/index.native.js.map +1 -1
  392. package/build-module/components/block-variation-picker/index.native.js +2 -1
  393. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  394. package/build-module/components/block-variation-transforms/index.js +30 -3
  395. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  396. package/build-module/components/border-radius-control/linked-button.js +1 -1
  397. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  398. package/build-module/components/colors/utils.js +9 -1
  399. package/build-module/components/colors/utils.js.map +1 -1
  400. package/build-module/components/colors/with-colors.js +5 -1
  401. package/build-module/components/colors/with-colors.js.map +1 -1
  402. package/build-module/components/colors-gradients/control.js +29 -18
  403. package/build-module/components/colors-gradients/control.js.map +1 -1
  404. package/build-module/components/duotone-control/index.js +1 -4
  405. package/build-module/components/duotone-control/index.js.map +1 -1
  406. package/build-module/components/font-sizes/utils.js +9 -1
  407. package/build-module/components/font-sizes/utils.js.map +1 -1
  408. package/build-module/components/global-styles/border-panel.js +3 -2
  409. package/build-module/components/global-styles/border-panel.js.map +1 -1
  410. package/build-module/components/global-styles/color-panel.js +26 -23
  411. package/build-module/components/global-styles/color-panel.js.map +1 -1
  412. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  413. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  414. package/build-module/components/global-styles/effects-panel.js +3 -2
  415. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  416. package/build-module/components/global-styles/filters-panel.js +8 -5
  417. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  418. package/build-module/components/global-styles/get-global-styles-changes.js +184 -0
  419. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -0
  420. package/build-module/components/global-styles/hooks.js +3 -2
  421. package/build-module/components/global-styles/hooks.js.map +1 -1
  422. package/build-module/components/global-styles/image-settings-panel.js +7 -1
  423. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  424. package/build-module/components/global-styles/index.js +1 -0
  425. package/build-module/components/global-styles/index.js.map +1 -1
  426. package/build-module/components/global-styles/typography-panel.js +45 -38
  427. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  428. package/build-module/components/global-styles/use-global-styles-output.js +15 -1
  429. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  430. package/build-module/components/global-styles/utils.js +7 -0
  431. package/build-module/components/global-styles/utils.js.map +1 -1
  432. package/build-module/components/height-control/index.js +6 -2
  433. package/build-module/components/height-control/index.js.map +1 -1
  434. package/build-module/components/image-link-destinations/index.native.js +109 -0
  435. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  436. package/build-module/components/image-size-control/index.js +2 -2
  437. package/build-module/components/image-size-control/index.js.map +1 -1
  438. package/build-module/components/index.native.js +3 -1
  439. package/build-module/components/index.native.js.map +1 -1
  440. package/build-module/components/inner-blocks/index.js +62 -23
  441. package/build-module/components/inner-blocks/index.js.map +1 -1
  442. package/build-module/components/inner-blocks/index.native.js +18 -4
  443. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  444. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -6
  445. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  446. package/build-module/components/inner-blocks/use-nested-settings-update.js +6 -10
  447. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  448. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  449. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  450. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +11 -10
  451. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  452. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +11 -11
  453. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  454. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +11 -11
  455. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  456. package/build-module/components/inserter/block-patterns-tab/utils.js +7 -11
  457. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  458. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -14
  459. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  460. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -2
  461. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  462. package/build-module/components/inserter/index.js +1 -2
  463. package/build-module/components/inserter/index.js.map +1 -1
  464. package/build-module/components/inserter/library.js +3 -7
  465. package/build-module/components/inserter/library.js.map +1 -1
  466. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  467. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  468. package/build-module/components/inserter/menu.js +26 -33
  469. package/build-module/components/inserter/menu.js.map +1 -1
  470. package/build-module/components/inserter/preview-panel.js +2 -2
  471. package/build-module/components/inserter/preview-panel.js.map +1 -1
  472. package/build-module/components/inserter/tabs.js +22 -22
  473. package/build-module/components/inserter/tabs.js.map +1 -1
  474. package/build-module/components/inserter-button/index.native.js +89 -0
  475. package/build-module/components/inserter-button/index.native.js.map +1 -0
  476. package/build-module/components/inserter-button/sparkles.js +15 -0
  477. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  478. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  479. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  480. package/build-module/components/inserter-list-item/index.js +2 -4
  481. package/build-module/components/inserter-list-item/index.js.map +1 -1
  482. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
  483. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  484. package/build-module/components/inspector-controls/fill.js +3 -3
  485. package/build-module/components/inspector-controls/fill.js.map +1 -1
  486. package/build-module/components/inspector-controls/fill.native.js +3 -3
  487. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  488. package/build-module/components/inspector-controls-tabs/index.js +35 -24
  489. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  490. package/build-module/components/list-view/block-select-button.js +4 -0
  491. package/build-module/components/list-view/block-select-button.js.map +1 -1
  492. package/build-module/components/list-view/block.js +58 -4
  493. package/build-module/components/list-view/block.js.map +1 -1
  494. package/build-module/components/media-upload-progress/constants.js +7 -0
  495. package/build-module/components/media-upload-progress/constants.js.map +1 -0
  496. package/build-module/components/media-upload-progress/index.native.js +37 -8
  497. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  498. package/build-module/components/navigable-toolbar/index.js +11 -16
  499. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  500. package/build-module/components/plain-text/index.native.js +6 -1
  501. package/build-module/components/plain-text/index.native.js.map +1 -1
  502. package/build-module/components/preview-options/index.js +6 -62
  503. package/build-module/components/preview-options/index.js.map +1 -1
  504. package/build-module/components/provider/index.js +3 -1
  505. package/build-module/components/provider/index.js.map +1 -1
  506. package/build-module/components/provider/use-block-sync.js +7 -1
  507. package/build-module/components/provider/use-block-sync.js.map +1 -1
  508. package/build-module/components/rich-text/content.js +25 -21
  509. package/build-module/components/rich-text/content.js.map +1 -1
  510. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  511. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  512. package/build-module/components/rich-text/index.js +21 -39
  513. package/build-module/components/rich-text/index.js.map +1 -1
  514. package/build-module/components/rich-text/index.native.js +10 -18
  515. package/build-module/components/rich-text/index.native.js.map +1 -1
  516. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  517. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  518. package/build-module/components/rich-text/native/index.native.js +22 -56
  519. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  520. package/build-module/components/rich-text/use-input-rules.js +7 -3
  521. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  522. package/build-module/components/rich-text/use-mark-persistent.js +1 -1
  523. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  524. package/build-module/components/rich-text/with-deprecations.js +42 -0
  525. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  526. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  527. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  528. package/build-module/components/url-input/index.js +9 -6
  529. package/build-module/components/url-input/index.js.map +1 -1
  530. package/build-module/components/use-block-commands/index.js +14 -18
  531. package/build-module/components/use-block-commands/index.js.map +1 -1
  532. package/build-module/components/use-block-drop-zone/index.js +107 -18
  533. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  534. package/build-module/components/use-moving-animation/index.js +102 -94
  535. package/build-module/components/use-moving-animation/index.js.map +1 -1
  536. package/build-module/components/use-on-block-drop/index.js +9 -12
  537. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  538. package/build-module/components/use-resize-canvas/index.js +4 -1
  539. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  540. package/build-module/components/use-settings/index.js +13 -1
  541. package/build-module/components/use-settings/index.js.map +1 -1
  542. package/build-module/components/writing-flow/index.js +0 -1
  543. package/build-module/components/writing-flow/index.js.map +1 -1
  544. package/build-module/components/writing-flow/use-drag-selection.js +15 -4
  545. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  546. package/build-module/components/writing-flow/use-selection-observer.js +73 -27
  547. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  548. package/build-module/components/writing-flow/use-tab-nav.js +7 -4
  549. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  550. package/build-module/hooks/align.js +20 -67
  551. package/build-module/hooks/align.js.map +1 -1
  552. package/build-module/hooks/align.native.js +1 -0
  553. package/build-module/hooks/align.native.js.map +1 -1
  554. package/build-module/hooks/anchor.js +12 -27
  555. package/build-module/hooks/anchor.js.map +1 -1
  556. package/build-module/hooks/aria-label.js +7 -1
  557. package/build-module/hooks/aria-label.js.map +1 -1
  558. package/build-module/hooks/background.js +197 -37
  559. package/build-module/hooks/background.js.map +1 -1
  560. package/build-module/hooks/block-hooks.js +22 -30
  561. package/build-module/hooks/block-hooks.js.map +1 -1
  562. package/build-module/hooks/block-renaming.js +17 -21
  563. package/build-module/hooks/block-renaming.js.map +1 -1
  564. package/build-module/hooks/border.js +52 -79
  565. package/build-module/hooks/border.js.map +1 -1
  566. package/build-module/hooks/color.js +78 -88
  567. package/build-module/hooks/color.js.map +1 -1
  568. package/build-module/hooks/content-lock-ui.js +27 -27
  569. package/build-module/hooks/content-lock-ui.js.map +1 -1
  570. package/build-module/hooks/custom-class-name.js +12 -28
  571. package/build-module/hooks/custom-class-name.js.map +1 -1
  572. package/build-module/hooks/custom-class-name.native.js +7 -1
  573. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  574. package/build-module/hooks/dimensions.js +15 -16
  575. package/build-module/hooks/dimensions.js.map +1 -1
  576. package/build-module/hooks/duotone.js +30 -61
  577. package/build-module/hooks/duotone.js.map +1 -1
  578. package/build-module/hooks/font-family.js +20 -25
  579. package/build-module/hooks/font-family.js.map +1 -1
  580. package/build-module/hooks/font-size.js +50 -120
  581. package/build-module/hooks/font-size.js.map +1 -1
  582. package/build-module/hooks/index.js +20 -16
  583. package/build-module/hooks/index.js.map +1 -1
  584. package/build-module/hooks/index.native.js +10 -6
  585. package/build-module/hooks/index.native.js.map +1 -1
  586. package/build-module/hooks/layout-child.js +60 -0
  587. package/build-module/hooks/layout-child.js.map +1 -0
  588. package/build-module/hooks/layout.js +21 -100
  589. package/build-module/hooks/layout.js.map +1 -1
  590. package/build-module/hooks/padding.js +2 -2
  591. package/build-module/hooks/padding.js.map +1 -1
  592. package/build-module/hooks/position.js +38 -59
  593. package/build-module/hooks/position.js.map +1 -1
  594. package/build-module/hooks/style.js +52 -85
  595. package/build-module/hooks/style.js.map +1 -1
  596. package/build-module/hooks/typography.js +26 -11
  597. package/build-module/hooks/typography.js.map +1 -1
  598. package/build-module/hooks/typography.native.js +43 -17
  599. package/build-module/hooks/typography.native.js.map +1 -1
  600. package/build-module/hooks/use-typography-props.js +9 -1
  601. package/build-module/hooks/use-typography-props.js.map +1 -1
  602. package/build-module/hooks/utils.js +194 -9
  603. package/build-module/hooks/utils.js.map +1 -1
  604. package/build-module/private-apis.js +2 -6
  605. package/build-module/private-apis.js.map +1 -1
  606. package/build-module/private-apis.native.js +0 -2
  607. package/build-module/private-apis.native.js.map +1 -1
  608. package/build-module/store/actions.js +0 -15
  609. package/build-module/store/actions.js.map +1 -1
  610. package/build-module/store/private-actions.js +52 -0
  611. package/build-module/store/private-actions.js.map +1 -1
  612. package/build-module/store/private-selectors.js +44 -1
  613. package/build-module/store/private-selectors.js.map +1 -1
  614. package/build-module/store/reducer.js +18 -2
  615. package/build-module/store/reducer.js.map +1 -1
  616. package/build-module/store/selectors.js +4 -65
  617. package/build-module/store/selectors.js.map +1 -1
  618. package/build-module/store/undo-ignore.js +5 -0
  619. package/build-module/store/undo-ignore.js.map +1 -0
  620. package/build-module/store/utils.js +56 -0
  621. package/build-module/store/utils.js.map +1 -0
  622. package/build-module/utils/get-px-from-css-unit.js +9 -0
  623. package/build-module/utils/get-px-from-css-unit.js.map +1 -0
  624. package/build-module/utils/index.js +1 -1
  625. package/build-module/utils/index.js.map +1 -1
  626. package/build-module/utils/object.js +37 -97
  627. package/build-module/utils/object.js.map +1 -1
  628. package/build-module/utils/selection.js +9 -1
  629. package/build-module/utils/selection.js.map +1 -1
  630. package/build-module/utils/use-can-block-toolbar-be-focused.js +40 -0
  631. package/build-module/utils/use-can-block-toolbar-be-focused.js.map +1 -0
  632. package/build-style/content-rtl.css +7 -6
  633. package/build-style/content.css +7 -6
  634. package/build-style/style-rtl.css +164 -301
  635. package/build-style/style.css +164 -301
  636. package/package.json +31 -31
  637. package/src/components/alignment-control/README.md +0 -5
  638. package/src/components/block-alignment-control/README.md +0 -5
  639. package/src/components/block-alignment-matrix-control/README.md +0 -10
  640. package/src/components/block-breadcrumb/README.md +0 -5
  641. package/src/components/block-canvas/index.js +29 -17
  642. package/src/components/block-canvas/style.scss +6 -0
  643. package/src/components/block-caption/README.md +2 -7
  644. package/src/components/block-card/README.md +0 -5
  645. package/src/components/block-card/index.js +6 -4
  646. package/src/components/block-card/style.scss +7 -3
  647. package/src/components/block-controls/hook.js +8 -30
  648. package/src/components/block-controls/test/index.js +3 -3
  649. package/src/components/block-draggable/draggable-chip.js +11 -1
  650. package/src/components/block-draggable/index.js +116 -4
  651. package/src/components/block-draggable/index.native.js +0 -5
  652. package/src/components/block-draggable/style.scss +35 -0
  653. package/src/components/block-draggable/test/helpers.native.js +8 -7
  654. package/src/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  655. package/src/components/block-edit/context.js +3 -0
  656. package/src/components/block-edit/index.js +36 -10
  657. package/src/components/block-editing-mode/index.js +3 -3
  658. package/src/components/block-icon/README.md +0 -5
  659. package/src/components/block-info-slot-fill/index.js +6 -3
  660. package/src/components/block-inspector/README.md +0 -5
  661. package/src/components/block-inspector/index.js +3 -1
  662. package/src/components/block-inspector/style.scss +0 -4
  663. package/src/components/block-list/block-list-item-cell.native.js +5 -1
  664. package/src/components/block-list/block.js +309 -104
  665. package/src/components/block-list/block.native.js +69 -21
  666. package/src/components/block-list/content.scss +14 -10
  667. package/src/components/block-list/index.native.js +3 -5
  668. package/src/components/block-list/{block-list-block-context.js → private-block-context.js} +1 -1
  669. package/src/components/block-list/use-block-props/index.js +43 -86
  670. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  671. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  672. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  673. package/src/components/block-list/use-in-between-inserter.js +4 -1
  674. package/src/components/block-list/use-scroll-upon-insertion.native.js +52 -0
  675. package/src/components/block-lock/toolbar.js +23 -34
  676. package/src/components/block-mover/README.md +0 -5
  677. package/src/components/block-mover/index.js +1 -1
  678. package/src/components/block-parent-selector/README.md +0 -5
  679. package/src/components/block-patterns-list/README.md +0 -5
  680. package/src/components/block-patterns-list/index.js +9 -6
  681. package/src/components/block-removal-warning-modal/index.js +7 -14
  682. package/src/components/block-rename/modal.js +7 -1
  683. package/src/components/block-settings/container.native.js +3 -5
  684. package/src/components/block-styles/index.js +1 -1
  685. package/src/components/block-styles/index.native.js +4 -2
  686. package/src/components/block-styles/style.scss +0 -11
  687. package/src/components/block-switcher/index.js +49 -59
  688. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  689. package/src/components/block-toolbar/README.md +0 -5
  690. package/src/components/block-toolbar/index.js +179 -95
  691. package/src/components/block-toolbar/style.scss +50 -66
  692. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  693. package/src/components/block-tools/block-toolbar-popover.js +84 -0
  694. package/src/components/block-tools/index.js +42 -29
  695. package/src/components/block-tools/style.scss +60 -172
  696. package/src/components/block-types-list/README.md +0 -5
  697. package/src/components/block-types-list/index.native.js +2 -1
  698. package/src/components/block-variation-picker/README.md +0 -5
  699. package/src/components/block-variation-picker/index.native.js +1 -1
  700. package/src/components/block-variation-transforms/README.md +0 -5
  701. package/src/components/block-variation-transforms/index.js +49 -3
  702. package/src/components/border-radius-control/linked-button.js +1 -1
  703. package/src/components/caption/README.md +0 -5
  704. package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
  705. package/src/components/colors/utils.js +8 -1
  706. package/src/components/colors/with-colors.js +3 -1
  707. package/src/components/colors-gradients/control.js +49 -30
  708. package/src/components/colors-gradients/style.scss +0 -7
  709. package/src/components/contrast-checker/README.md +0 -4
  710. package/src/components/copy-handler/README.md +0 -10
  711. package/src/components/duotone-control/index.js +2 -5
  712. package/src/components/duotone-control/style.scss +1 -6
  713. package/src/components/font-sizes/utils.js +7 -1
  714. package/src/components/global-styles/border-panel.js +2 -1
  715. package/src/components/global-styles/color-panel.js +36 -26
  716. package/src/components/global-styles/dimensions-panel.js +4 -3
  717. package/src/components/global-styles/effects-panel.js +2 -1
  718. package/src/components/global-styles/filters-panel.js +6 -5
  719. package/src/components/global-styles/get-global-styles-changes.js +210 -0
  720. package/src/components/global-styles/hooks.js +5 -0
  721. package/src/components/global-styles/image-settings-panel.js +6 -0
  722. package/src/components/global-styles/index.js +1 -0
  723. package/src/components/global-styles/test/get-global-styles-changes.js +234 -0
  724. package/src/components/global-styles/typography-panel.js +60 -47
  725. package/src/components/global-styles/use-global-styles-output.js +9 -5
  726. package/src/components/global-styles/utils.js +7 -0
  727. package/src/components/height-control/README.md +2 -7
  728. package/src/components/height-control/index.js +4 -0
  729. package/src/components/image-link-destinations/index.native.js +152 -0
  730. package/src/components/image-link-destinations/style.native.scss +16 -0
  731. package/src/components/image-size-control/index.js +5 -2
  732. package/src/components/index.native.js +3 -2
  733. package/src/components/inner-blocks/README.md +13 -2
  734. package/src/components/inner-blocks/index.js +68 -29
  735. package/src/components/inner-blocks/index.native.js +19 -7
  736. package/src/components/inner-blocks/use-inner-block-template-sync.js +5 -7
  737. package/src/components/inner-blocks/use-nested-settings-update.js +6 -13
  738. package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  739. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -15
  740. package/src/components/inserter/block-patterns-tab/patterns-filter.js +15 -13
  741. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +15 -18
  742. package/src/components/inserter/block-patterns-tab/utils.js +11 -12
  743. package/src/components/inserter/hooks/use-block-types-state.js +9 -11
  744. package/src/components/inserter/hooks/use-patterns-state.js +2 -2
  745. package/src/components/inserter/index.js +0 -1
  746. package/src/components/inserter/library.js +2 -8
  747. package/src/components/inserter/media-tab/media-panel.js +1 -1
  748. package/src/components/inserter/menu.js +26 -36
  749. package/src/components/inserter/preview-panel.js +2 -2
  750. package/src/components/inserter/style.scss +21 -21
  751. package/src/components/inserter/tabs.js +34 -25
  752. package/src/components/inserter-button/README.md +62 -0
  753. package/src/components/inserter-button/index.native.js +116 -0
  754. package/src/components/inserter-button/sparkles.js +15 -0
  755. package/src/components/inserter-button/style.native.scss +72 -0
  756. package/src/components/inserter-draggable-blocks/index.js +18 -5
  757. package/src/components/inserter-list-item/index.js +6 -6
  758. package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
  759. package/src/components/inspector-controls/fill.js +6 -3
  760. package/src/components/inspector-controls/fill.native.js +6 -3
  761. package/src/components/inspector-controls-tabs/index.js +39 -28
  762. package/src/components/inspector-controls-tabs/style.scss +3 -2
  763. package/src/components/letter-spacing-control/README.md +0 -5
  764. package/src/components/line-height-control/README.md +0 -5
  765. package/src/components/link-control/style.scss +1 -1
  766. package/src/components/link-control/test/index.js +1 -1
  767. package/src/components/list-view/README.md +0 -5
  768. package/src/components/list-view/block-select-button.js +4 -0
  769. package/src/components/list-view/block.js +73 -2
  770. package/src/components/list-view/style.scss +6 -0
  771. package/src/components/media-upload-progress/constants.js +6 -0
  772. package/src/components/media-upload-progress/index.native.js +66 -14
  773. package/src/components/media-upload-progress/test/index.native.js +2 -2
  774. package/src/components/multi-selection-inspector/README.md +0 -5
  775. package/src/components/navigable-toolbar/README.md +2 -0
  776. package/src/components/navigable-toolbar/index.js +15 -13
  777. package/src/components/plain-text/index.native.js +6 -1
  778. package/src/components/preview-options/index.js +6 -86
  779. package/src/components/provider/index.js +1 -1
  780. package/src/components/provider/test/use-block-sync.js +20 -17
  781. package/src/components/provider/use-block-sync.js +6 -0
  782. package/src/components/rich-text/content.js +27 -20
  783. package/src/components/rich-text/get-rich-text-values.js +6 -1
  784. package/src/components/rich-text/index.js +23 -52
  785. package/src/components/rich-text/index.native.js +8 -25
  786. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  787. package/src/components/rich-text/native/index.native.js +22 -71
  788. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +3 -3
  789. package/src/components/rich-text/native/test/index.native.js +72 -5
  790. package/src/components/rich-text/use-input-rules.js +8 -3
  791. package/src/components/rich-text/use-mark-persistent.js +1 -2
  792. package/src/components/rich-text/with-deprecations.js +51 -0
  793. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  794. package/src/components/text-decoration-control/README.md +40 -0
  795. package/src/components/text-transform-control/README.md +0 -4
  796. package/src/components/ungroup-button/README.md +0 -5
  797. package/src/components/unit-control/README.md +0 -4
  798. package/src/components/url-input/index.js +11 -11
  799. package/src/components/use-block-commands/index.js +18 -21
  800. package/src/components/use-block-drop-zone/index.js +181 -30
  801. package/src/components/use-moving-animation/index.js +107 -103
  802. package/src/components/use-on-block-drop/index.js +9 -24
  803. package/src/components/use-on-block-drop/test/index.js +12 -26
  804. package/src/components/use-resize-canvas/README.md +3 -7
  805. package/src/components/use-resize-canvas/index.js +4 -1
  806. package/src/components/use-settings/README.md +0 -4
  807. package/src/components/use-settings/index.js +15 -1
  808. package/src/components/writing-flow/index.js +0 -1
  809. package/src/components/writing-flow/use-drag-selection.js +18 -4
  810. package/src/components/writing-flow/use-selection-observer.js +99 -37
  811. package/src/components/writing-flow/use-tab-nav.js +7 -7
  812. package/src/hooks/align.js +16 -81
  813. package/src/hooks/align.native.js +1 -0
  814. package/src/hooks/anchor.js +14 -38
  815. package/src/hooks/aria-label.js +8 -5
  816. package/src/hooks/background.js +269 -32
  817. package/src/hooks/block-hooks.js +22 -51
  818. package/src/hooks/block-renaming.js +23 -37
  819. package/src/hooks/border.js +62 -124
  820. package/src/hooks/color.js +111 -138
  821. package/src/hooks/content-lock-ui.js +110 -122
  822. package/src/hooks/custom-class-name.js +9 -45
  823. package/src/hooks/custom-class-name.native.js +8 -5
  824. package/src/hooks/dimensions.js +14 -16
  825. package/src/hooks/duotone.js +70 -127
  826. package/src/hooks/font-family.js +14 -36
  827. package/src/hooks/font-size.js +67 -168
  828. package/src/hooks/index.js +58 -16
  829. package/src/hooks/index.native.js +22 -6
  830. package/src/hooks/layout-child.js +53 -0
  831. package/src/hooks/layout.js +17 -103
  832. package/src/hooks/padding.js +2 -2
  833. package/src/hooks/position.js +50 -90
  834. package/src/hooks/style.js +118 -193
  835. package/src/hooks/test/align.js +1 -178
  836. package/src/hooks/test/anchor.js +4 -9
  837. package/src/hooks/test/custom-class-name.js +3 -8
  838. package/src/hooks/test/style.js +4 -14
  839. package/src/hooks/typography.js +14 -16
  840. package/src/hooks/typography.native.js +31 -33
  841. package/src/hooks/use-typography-props.js +7 -1
  842. package/src/hooks/utils.js +261 -10
  843. package/src/private-apis.js +2 -6
  844. package/src/private-apis.native.js +0 -2
  845. package/src/store/actions.js +0 -15
  846. package/src/store/private-actions.js +48 -0
  847. package/src/store/private-selectors.js +56 -0
  848. package/src/store/reducer.js +20 -1
  849. package/src/store/selectors.js +10 -82
  850. package/src/store/undo-ignore.js +4 -0
  851. package/src/store/utils.js +74 -0
  852. package/src/style.scss +1 -2
  853. package/src/utils/get-px-from-css-unit.js +8 -0
  854. package/src/utils/index.js +1 -1
  855. package/src/utils/object.js +34 -104
  856. package/src/utils/selection.js +9 -2
  857. package/src/utils/test/object.js +1 -96
  858. package/src/utils/use-can-block-toolbar-be-focused.js +48 -0
  859. package/build/components/block-list/block-list-block-context.js +0 -14
  860. package/build/components/block-list/block-list-block-context.js.map +0 -1
  861. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  862. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  863. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  864. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  865. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  866. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  867. package/build/components/block-tools/back-compat.js +0 -45
  868. package/build/components/block-tools/back-compat.js.map +0 -1
  869. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  870. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  871. package/build/components/block-tools/selected-block-tools.js +0 -113
  872. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  873. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  874. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  875. package/build/components/use-display-block-controls/index.js +0 -39
  876. package/build/components/use-display-block-controls/index.js.map +0 -1
  877. package/build/components/use-display-block-controls/index.native.js +0 -39
  878. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  879. package/build/hooks/custom-fields.js +0 -120
  880. package/build/hooks/custom-fields.js.map +0 -1
  881. package/build/utils/parse-css-unit-to-px.js +0 -302
  882. package/build/utils/parse-css-unit-to-px.js.map +0 -1
  883. package/build/utils/use-should-contextual-toolbar-show.js +0 -63
  884. package/build/utils/use-should-contextual-toolbar-show.js.map +0 -1
  885. package/build-module/components/block-list/block-list-block-context.js +0 -6
  886. package/build-module/components/block-list/block-list-block-context.js.map +0 -1
  887. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  888. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  889. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  890. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  891. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  892. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  893. package/build-module/components/block-tools/back-compat.js +0 -35
  894. package/build-module/components/block-tools/back-compat.js.map +0 -1
  895. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  896. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  897. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  898. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  899. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  900. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  901. package/build-module/components/use-display-block-controls/index.js +0 -32
  902. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  903. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  904. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  905. package/build-module/hooks/custom-fields.js +0 -118
  906. package/build-module/hooks/custom-fields.js.map +0 -1
  907. package/build-module/utils/parse-css-unit-to-px.js +0 -294
  908. package/build-module/utils/parse-css-unit-to-px.js.map +0 -1
  909. package/build-module/utils/use-should-contextual-toolbar-show.js +0 -57
  910. package/build-module/utils/use-should-contextual-toolbar-show.js.map +0 -1
  911. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  912. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  913. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  914. package/src/components/block-parent-selector/style.scss +0 -11
  915. package/src/components/block-tools/back-compat.js +0 -35
  916. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  917. package/src/components/block-tools/selected-block-tools.js +0 -127
  918. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  919. package/src/components/preview-options/README.md +0 -94
  920. package/src/components/preview-options/style.scss +0 -64
  921. package/src/components/use-display-block-controls/index.js +0 -36
  922. package/src/components/use-display-block-controls/index.native.js +0 -37
  923. package/src/hooks/custom-fields.js +0 -142
  924. package/src/hooks/test/color.js +0 -112
  925. package/src/utils/parse-css-unit-to-px.js +0 -329
  926. package/src/utils/test/parse-css-unit-to-px.js +0 -172
  927. package/src/utils/use-should-contextual-toolbar-show.js +0 -85
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = require("react");
9
9
  var _reactNative = require("react-native");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
10
11
  var _element = require("@wordpress/element");
11
12
  var _components = require("@wordpress/components");
12
13
  var _blocks = require("@wordpress/blocks");
@@ -18,6 +19,7 @@ var _blockInvalidWarning = _interopRequireDefault(require("./block-invalid-warni
18
19
  var _blockOutline = _interopRequireDefault(require("./block-outline"));
19
20
  var _store = require("../../store");
20
21
  var _layout = require("./layout");
22
+ var _useScrollUponInsertion = _interopRequireDefault(require("./use-scroll-upon-insertion"));
21
23
  var _useSettings = require("../use-settings");
22
24
  /**
23
25
  * External dependencies
@@ -33,20 +35,31 @@ var _useSettings = require("../use-settings");
33
35
 
34
36
  const EMPTY_ARRAY = [];
35
37
 
36
- // Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.
37
- const wrapperPropsCache = new WeakMap();
38
- const emptyObj = {};
39
- function getWrapperProps(value, getWrapperPropsFunction) {
40
- if (!getWrapperPropsFunction) {
41
- return emptyObj;
38
+ /**
39
+ * Merges wrapper props with special handling for classNames and styles.
40
+ *
41
+ * @param {Object} propsA
42
+ * @param {Object} propsB
43
+ *
44
+ * @return {Object} Merged props.
45
+ */
46
+ function mergeWrapperProps(propsA, propsB) {
47
+ const newProps = {
48
+ ...propsA,
49
+ ...propsB
50
+ };
51
+
52
+ // May be set to undefined, so check if the property is set!
53
+ if (propsA?.hasOwnProperty('className') && propsB?.hasOwnProperty('className')) {
54
+ newProps.className = (0, _classnames.default)(propsA.className, propsB.className);
42
55
  }
43
- const cachedValue = wrapperPropsCache.get(value);
44
- if (!cachedValue) {
45
- const wrapperProps = getWrapperPropsFunction(value);
46
- wrapperPropsCache.set(value, wrapperProps);
47
- return wrapperProps;
56
+ if (propsA?.hasOwnProperty('style') && propsB?.hasOwnProperty('style')) {
57
+ newProps.style = {
58
+ ...propsA.style,
59
+ ...propsB.style
60
+ };
48
61
  }
49
- return cachedValue;
62
+ return newProps;
50
63
  }
51
64
  function BlockWrapper({
52
65
  accessibilityLabel,
@@ -73,13 +86,26 @@ function BlockWrapper({
73
86
  marginHorizontal
74
87
  }];
75
88
  const accessible = !(isSelected || isDescendentBlockSelected);
89
+ const ref = (0, _element.useRef)();
90
+ const [isLayoutCalculated, setIsLayoutCalculated] = (0, _element.useState)();
91
+ (0, _useScrollUponInsertion.default)({
92
+ clientId,
93
+ isSelected,
94
+ isLayoutCalculated,
95
+ elementRef: ref
96
+ });
97
+ const onLayout = (0, _element.useCallback)(() => {
98
+ setIsLayoutCalculated(true);
99
+ }, []);
76
100
  return (0, _react.createElement)(_reactNative.Pressable, {
77
101
  accessibilityLabel: accessibilityLabel,
78
102
  accessibilityRole: "button",
79
103
  accessible: accessible,
80
104
  disabled: !isTouchable,
81
105
  onPress: onFocus,
82
- style: blockWrapperStyle
106
+ style: blockWrapperStyle,
107
+ ref: ref,
108
+ onLayout: onLayout
83
109
  }, (0, _react.createElement)(_blockOutline.default, {
84
110
  blockCategory: blockCategory,
85
111
  hasInnerBlocks: hasInnerBlocks,
@@ -115,7 +141,8 @@ function BlockListBlock({
115
141
  parentWidth,
116
142
  rootClientId,
117
143
  setAttributes,
118
- toggleSelection
144
+ toggleSelection,
145
+ wrapperProps
119
146
  }) {
120
147
  const {
121
148
  baseGlobalStyles,
@@ -127,7 +154,8 @@ function BlockListBlock({
127
154
  isDescendantOfParentSelected,
128
155
  isDescendentBlockSelected,
129
156
  isParentSelected,
130
- order
157
+ order,
158
+ mayDisplayControls
131
159
  } = (0, _data.useSelect)(select => {
132
160
  const {
133
161
  getBlockCount,
@@ -136,7 +164,10 @@ function BlockListBlock({
136
164
  getBlockParents,
137
165
  getSelectedBlockClientId,
138
166
  getSettings,
139
- hasSelectedInnerBlock
167
+ hasSelectedInnerBlock,
168
+ getBlockName,
169
+ isFirstMultiSelectedBlock,
170
+ getMultiSelectedBlockClientIds
140
171
  } = select(_store.store);
141
172
  const currentBlockType = (0, _blocks.getBlockType)(name || 'core/missing');
142
173
  const currentBlockCategory = currentBlockType?.category;
@@ -169,7 +200,8 @@ function BlockListBlock({
169
200
  isDescendantOfParentSelected: descendantOfParentSelected,
170
201
  isDescendentBlockSelected: descendentBlockSelected,
171
202
  isParentSelected: parentSelected,
172
- order: blockOrder
203
+ order: blockOrder,
204
+ mayDisplayControls: isSelected || isFirstMultiSelectedBlock(clientId) && getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name)
173
205
  };
174
206
  }, [clientId, isSelected, name, rootClientId]);
175
207
  const {
@@ -200,12 +232,14 @@ function BlockListBlock({
200
232
  }
201
233
  }, [blockWidth, setBlockWidth]);
202
234
 
203
- // Block level styles.
204
- const wrapperProps = getWrapperProps(attributes, blockType.getEditWrapperProps);
235
+ // Determine whether the block has props to apply to the wrapper.
236
+ if (blockType?.getEditWrapperProps) {
237
+ wrapperProps = mergeWrapperProps(wrapperProps, blockType.getEditWrapperProps(attributes));
238
+ }
205
239
 
206
240
  // Inherited styles merged with block level styles.
207
241
  const mergedStyle = (0, _element.useMemo)(() => {
208
- return (0, _components.getMergedGlobalStyles)(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes || EMPTY_ARRAY);
242
+ return (0, _components.getMergedGlobalStyles)(baseGlobalStyles, globalStyle, wrapperProps?.style, attributes, defaultColors, name, fontSizes || EMPTY_ARRAY);
209
243
  // eslint-disable-next-line react-hooks/exhaustive-deps
210
244
  }, [
211
245
  // It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.
@@ -218,7 +252,7 @@ function BlockListBlock({
218
252
  // eslint-disable-next-line react-hooks/exhaustive-deps
219
253
  JSON.stringify(globalStyle),
220
254
  // eslint-disable-next-line react-hooks/exhaustive-deps
221
- JSON.stringify(wrapperProps.style),
255
+ JSON.stringify(wrapperProps?.style),
222
256
  // eslint-disable-next-line react-hooks/exhaustive-deps
223
257
  JSON.stringify(Object.fromEntries(Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}).filter(([key]) => _components.GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes(key))))]);
224
258
  const isFocused = isSelected || isDescendentBlockSelected;
@@ -265,7 +299,8 @@ function BlockListBlock({
265
299
  style: mergedStyle,
266
300
  toggleSelection: toggleSelection,
267
301
  __unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined,
268
- wrapperProps: wrapperProps
302
+ wrapperProps: wrapperProps,
303
+ mayDisplayControls: mayDisplayControls
269
304
  }), (0, _react.createElement)(_reactNative.View, {
270
305
  onLayout: onLayout
271
306
  })));
@@ -488,6 +523,6 @@ var _default = (0, _compose.compose)(_compose.pure, applyWithSelect, applyWithDi
488
523
  // https://github.com/WordPress/gutenberg/issues/17013
489
524
  (0, _compose.ifCondition)(({
490
525
  block
491
- }) => !!block))(BlockListBlock);
526
+ }) => !!block), (0, _components.withFilters)('editor.BlockListBlock'))(BlockListBlock);
492
527
  exports.default = _default;
493
528
  //# sourceMappingURL=block.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_element","_components","_blocks","_data","_compose","_blockEdit","_interopRequireDefault","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","_react","createElement","Pressable","accessibilityRole","disabled","onPress","style","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","useState","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","useCallback","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","pure","ifCondition","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\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 BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\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\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\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\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\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</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\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\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 currentBlockCategory = currentBlockType?.category;\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 blockHasInnerBlocks = 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! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! 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\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\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 ] = useSettings( 'typography.fontSizes' );\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 || EMPTY_ARRAY\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 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\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\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\tname={ name }\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} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\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"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_classnames","_interopRequireDefault","_element","_components","_blocks","_data","_compose","_blockEdit","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useScrollUponInsertion","_useSettings","EMPTY_ARRAY","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","ref","useRef","isLayoutCalculated","setIsLayoutCalculated","useState","useScrollUponInsertion","elementRef","onLayout","useCallback","_react","createElement","Pressable","accessibilityRole","disabled","onPress","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","wrapperProps","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","mayDisplayControls","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","every","id","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","value","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","pure","ifCondition","withFilters","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState, useRef } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n\twithFilters,\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 BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useScrollUponInsertion from './use-scroll-upon-insertion';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\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\tconst ref = useRef();\n\tconst [ isLayoutCalculated, setIsLayoutCalculated ] = useState();\n\tuseScrollUponInsertion( {\n\t\tclientId,\n\t\tisSelected,\n\t\tisLayoutCalculated,\n\t\telementRef: ref,\n\t} );\n\tconst onLayout = useCallback( () => {\n\t\tsetIsLayoutCalculated( true );\n\t}, [] );\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\tref={ ref }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\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</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\twrapperProps,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t\tmayDisplayControls,\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\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\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 blockHasInnerBlocks = 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! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! 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\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\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\tmayDisplayControls:\n\t\t\t\t\tisSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === name\n\t\t\t\t\t\t) ),\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 ] = useSettings( 'typography.fontSizes' );\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// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\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 || EMPTY_ARRAY\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 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\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\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\tname={ name }\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\tmayDisplayControls={ mayDisplayControls }\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} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\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\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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"}
@@ -121,7 +121,7 @@ function BlockList({
121
121
  const addBlockToEndOfPost = newBlock => {
122
122
  insertBlock(newBlock, blockCount);
123
123
  };
124
- const scrollViewRef = (0, _element.useRef)(null);
124
+ const scrollRef = (0, _element.useRef)(null);
125
125
  const shouldFlatListPreventAutomaticScroll = () => blockInsertionPointIsVisible;
126
126
  const shouldShowInnerBlockAppender = () => renderAppender && blockClientIds.length > 0;
127
127
  const getExtraData = () => {
@@ -206,7 +206,7 @@ function BlockList({
206
206
  }, isRootList ? (0, _react.createElement)(_blockListContext.BlockListProvider, {
207
207
  value: {
208
208
  ..._blockListContext.DEFAULT_BLOCK_LIST_CONTEXT,
209
- scrollRef: scrollViewRef.current
209
+ scrollRef: scrollRef.current
210
210
  }
211
211
  }, (0, _react.createElement)(_blockDraggable.BlockDraggableWrapper, {
212
212
  isRTL: isRTL
@@ -218,9 +218,7 @@ function BlockList({
218
218
  } : {}),
219
219
  // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541
220
220
  accessibilityLabel: "block-list",
221
- innerRef: ref => {
222
- scrollViewRef.current = ref;
223
- },
221
+ ref: scrollRef,
224
222
  extraScrollHeight: extraScrollHeight,
225
223
  keyboardShouldPersistTaps: "always",
226
224
  scrollViewStyle: {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_element","_data","_blocks","_components","_i18n","_style","_interopRequireDefault","_blockListAppender","_blockListItem","_blockListItemCell","_blockListContext","_blockDraggable","_useEditorWrapperStyles","_store","identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","styles","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","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","blockEditorStore","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","Platform","OS","undefined","insertBlock","clearSelectedBlock","useDispatch","extraData","useRef","setBlockWidth","useState","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","_react","createElement","default","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","alignmentHelpers","extraScrollHeight","height","View","style","onAccessibilityEscape","testID","BlockListProvider","value","DEFAULT_BLOCK_LIST_CONTEXT","scrollRef","BlockDraggableWrapper","onScroll","KeyboardAwareFlatList","removeClippedSubviews","accessibilityLabel","innerRef","ref","keyboardShouldPersistTaps","scrollViewStyle","scrollEnabled","contentContainerStyle","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","data","keyExtractor","CellRendererComponent","BlockListItemCell","shouldPreventAutomaticScroll","ListHeaderComponent","ListEmptyComponent","EmptyList","ListFooterComponent","Footer","Fragment","map","currentClientId","key","innerAppender","showSeparator","onAddParagraphBlock","useCallback","paragraphBlock","createBlock","Pressable","__","onPress","blockListFooter","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","WIDE_ALIGNMENTS","alignments","full","wrapperStyles","useEditorWrapperStyles","containerStyles","defaultAppender"],"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, Pressable } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState, useCallback } 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\tconst onAddParagraphBlock = useCallback( () => {\n\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\taddBlockToEndOfPost( paragraphBlock );\n\t}, [ addBlockToEndOfPost ] );\n\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<Pressable\n\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\tonPress={ onAddParagraphBlock }\n\t\t\t>\n\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t</Pressable>\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"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_element","_data","_blocks","_components","_i18n","_style","_interopRequireDefault","_blockListAppender","_blockListItem","_blockListItemCell","_blockListContext","_blockDraggable","_useEditorWrapperStyles","_store","identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","styles","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","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","blockEditorStore","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","Platform","OS","undefined","insertBlock","clearSelectedBlock","useDispatch","extraData","useRef","setBlockWidth","useState","addBlockToEndOfPost","newBlock","scrollRef","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","length","getExtraData","current","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","min","renderItem","item","clientId","index","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","_react","createElement","default","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","alignmentHelpers","extraScrollHeight","height","View","style","onAccessibilityEscape","testID","BlockListProvider","value","DEFAULT_BLOCK_LIST_CONTEXT","BlockDraggableWrapper","onScroll","KeyboardAwareFlatList","removeClippedSubviews","accessibilityLabel","ref","keyboardShouldPersistTaps","scrollViewStyle","scrollEnabled","contentContainerStyle","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","data","keyExtractor","CellRendererComponent","BlockListItemCell","shouldPreventAutomaticScroll","ListHeaderComponent","ListEmptyComponent","EmptyList","ListFooterComponent","Footer","Fragment","map","currentClientId","key","innerAppender","showSeparator","onAddParagraphBlock","useCallback","paragraphBlock","createBlock","Pressable","__","onPress","blockListFooter","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","WIDE_ALIGNMENTS","alignments","full","wrapperStyles","useEditorWrapperStyles","containerStyles","defaultAppender"],"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, Pressable } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState, useCallback } 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 scrollRef = 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: scrollRef.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\tref={ scrollRef }\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\tconst onAddParagraphBlock = useCallback( () => {\n\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\taddBlockToEndOfPost( paragraphBlock );\n\t}, [ addBlockToEndOfPost ] );\n\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<Pressable\n\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\tonPress={ onAddParagraphBlock }\n\t\t\t>\n\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t</Pressable>\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"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PrivateBlockContext = void 0;
7
+ var _element = require("@wordpress/element");
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ const PrivateBlockContext = (0, _element.createContext)(null);
13
+ exports.PrivateBlockContext = PrivateBlockContext;
14
+ //# sourceMappingURL=private-block-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","PrivateBlockContext","createContext","exports"],"sources":["@wordpress/block-editor/src/components/block-list/private-block-context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nexport const PrivateBlockContext = createContext( null );\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,mBAAmB,GAAG,IAAAC,sBAAa,EAAE,IAAK,CAAC;AAACC,OAAA,CAAAF,mBAAA,GAAAA,mBAAA"}