@wordpress/block-editor 12.0.0 → 12.2.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 (627) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +6 -3
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-controls/slot.js +12 -4
  8. package/build/components/block-controls/slot.js.map +1 -1
  9. package/build/components/block-controls/slot.native.js +10 -1
  10. package/build/components/block-controls/slot.native.js.map +1 -1
  11. package/build/components/block-draggable/index.js +11 -7
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-editing-mode/index.js +84 -0
  16. package/build/components/block-editing-mode/index.js.map +1 -0
  17. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  18. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  19. package/build/components/block-list/block-list-block-context.js +15 -0
  20. package/build/components/block-list/block-list-block-context.js.map +1 -0
  21. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  22. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +158 -195
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-outline.native.js +57 -0
  26. package/build/components/block-list/block-outline.native.js.map +1 -0
  27. package/build/components/block-list/block.js +29 -37
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +347 -311
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +260 -357
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/insertion-point.native.js +4 -2
  34. package/build/components/block-list/insertion-point.native.js.map +1 -1
  35. package/build/components/block-list/use-block-props/index.js +2 -2
  36. package/build/components/block-list/use-block-props/index.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +7 -5
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-list-appender/index.js +15 -1
  40. package/build/components/block-list-appender/index.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +15 -4
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/preview-panel.js +1 -2
  48. package/build/components/block-styles/preview-panel.js.map +1 -1
  49. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  50. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  51. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  52. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  53. package/build/components/block-switcher/index.js +34 -12
  54. package/build/components/block-switcher/index.js.map +1 -1
  55. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  56. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  57. package/build/components/block-toolbar/index.js +9 -7
  58. package/build/components/block-toolbar/index.js.map +1 -1
  59. package/build/components/block-tools/block-contextual-toolbar.js +22 -65
  60. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +11 -5
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/selected-block-popover.js +3 -8
  64. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  65. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  66. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  67. package/build/components/convert-to-group-buttons/index.js +7 -2
  68. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  69. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  70. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  71. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  72. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  73. package/build/components/global-styles/advanced-panel.js +86 -0
  74. package/build/components/global-styles/advanced-panel.js.map +1 -0
  75. package/build/components/global-styles/color-panel.js +4 -1
  76. package/build/components/global-styles/color-panel.js.map +1 -1
  77. package/build/components/global-styles/dimensions-panel.js +9 -8
  78. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  79. package/build/components/global-styles/hooks.js +1 -2
  80. package/build/components/global-styles/hooks.js.map +1 -1
  81. package/build/components/global-styles/index.js +24 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/typography-panel.js +1 -1
  84. package/build/components/global-styles/typography-panel.js.map +1 -1
  85. package/build/components/global-styles/use-global-styles-output.js +27 -4
  86. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  87. package/build/components/global-styles/utils.js +30 -0
  88. package/build/components/global-styles/utils.js.map +1 -1
  89. package/build/components/iframe/index.js +14 -7
  90. package/build/components/iframe/index.js.map +1 -1
  91. package/build/components/image-editor/use-save-image.js +24 -8
  92. package/build/components/image-editor/use-save-image.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +2 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/index.native.js +7 -7
  96. package/build/components/inner-blocks/index.native.js.map +1 -1
  97. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  98. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  99. package/build/components/inserter/index.js +3 -7
  100. package/build/components/inserter/index.js.map +1 -1
  101. package/build/components/inserter/quick-inserter.js +2 -4
  102. package/build/components/inserter/quick-inserter.js.map +1 -1
  103. package/build/components/inserter/search-results.js +19 -6
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter-draggable-blocks/index.js +5 -0
  106. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  107. package/build/components/inspector-controls/fill.js +1 -1
  108. package/build/components/inspector-controls/fill.js.map +1 -1
  109. package/build/components/inspector-controls/fill.native.js +1 -1
  110. package/build/components/inspector-controls/fill.native.js.map +1 -1
  111. package/build/components/inspector-controls/slot.js +3 -6
  112. package/build/components/inspector-controls/slot.js.map +1 -1
  113. package/build/components/inspector-controls/slot.native.js +1 -1
  114. package/build/components/inspector-controls/slot.native.js.map +1 -1
  115. package/build/components/line-height-control/index.js +7 -2
  116. package/build/components/line-height-control/index.js.map +1 -1
  117. package/build/components/link-control/use-internal-input-value.js +9 -8
  118. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  119. package/build/components/list-view/appender.js +6 -1
  120. package/build/components/list-view/appender.js.map +1 -1
  121. package/build/components/list-view/block-contents.js +9 -2
  122. package/build/components/list-view/block-contents.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +2 -1
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +25 -29
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js +1 -3
  128. package/build/components/list-view/branch.js.map +1 -1
  129. package/build/components/list-view/index.js +43 -22
  130. package/build/components/list-view/index.js.map +1 -1
  131. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  132. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  133. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  134. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +68 -7
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/multi-selection-inspector/index.js +2 -2
  138. package/build/components/multi-selection-inspector/index.js.map +1 -1
  139. package/build/components/preview-options/index.js +6 -1
  140. package/build/components/preview-options/index.js.map +1 -1
  141. package/build/components/publish-date-time-picker/index.js +0 -2
  142. package/build/components/publish-date-time-picker/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  144. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  145. package/build/components/url-input/index.js +4 -2
  146. package/build/components/url-input/index.js.map +1 -1
  147. package/build/components/use-block-drop-zone/index.js +25 -15
  148. package/build/components/use-block-drop-zone/index.js.map +1 -1
  149. package/build/components/use-resize-canvas/index.js +8 -1
  150. package/build/components/use-resize-canvas/index.js.map +1 -1
  151. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  152. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  153. package/build/hooks/align.js +4 -8
  154. package/build/hooks/align.js.map +1 -1
  155. package/build/hooks/behaviors.js +115 -0
  156. package/build/hooks/behaviors.js.map +1 -0
  157. package/build/hooks/border.js +1 -1
  158. package/build/hooks/border.js.map +1 -1
  159. package/build/hooks/color.js +1 -1
  160. package/build/hooks/color.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +8 -12
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/dimensions.js +0 -30
  164. package/build/hooks/dimensions.js.map +1 -1
  165. package/build/hooks/duotone.js +5 -9
  166. package/build/hooks/duotone.js.map +1 -1
  167. package/build/hooks/index.js +2 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/index.native.js +8 -0
  170. package/build/hooks/index.native.js.map +1 -1
  171. package/build/hooks/layout.js +10 -11
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +1 -1
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +1 -1
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  178. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  179. package/build/hooks/use-typography-props.js +14 -10
  180. package/build/hooks/use-typography-props.js.map +1 -1
  181. package/build/index.native.js +31 -0
  182. package/build/index.native.js.map +1 -0
  183. package/build/private-apis.js +4 -7
  184. package/build/private-apis.js.map +1 -1
  185. package/build/store/private-actions.js +46 -0
  186. package/build/store/private-actions.js.map +1 -1
  187. package/build/store/private-selectors.js +88 -0
  188. package/build/store/private-selectors.js.map +1 -1
  189. package/build/store/reducer.js +36 -1
  190. package/build/store/reducer.js.map +1 -1
  191. package/build/store/selectors.js +28 -18
  192. package/build/store/selectors.js.map +1 -1
  193. package/build/utils/order-inserter-block-items.js +41 -0
  194. package/build/utils/order-inserter-block-items.js.map +1 -0
  195. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  196. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  197. package/build-module/autocompleters/block.js +12 -5
  198. package/build-module/autocompleters/block.js.map +1 -1
  199. package/build-module/components/block-breadcrumb/index.js +5 -3
  200. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  201. package/build-module/components/block-controls/slot.js +11 -4
  202. package/build-module/components/block-controls/slot.js.map +1 -1
  203. package/build-module/components/block-controls/slot.native.js +9 -1
  204. package/build-module/components/block-controls/slot.native.js.map +1 -1
  205. package/build-module/components/block-draggable/index.js +10 -6
  206. package/build-module/components/block-draggable/index.js.map +1 -1
  207. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  208. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  209. package/build-module/components/block-editing-mode/index.js +72 -0
  210. package/build-module/components/block-editing-mode/index.js.map +1 -0
  211. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  212. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  213. package/build-module/components/block-list/block-list-block-context.js +6 -0
  214. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  215. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  216. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  217. package/build-module/components/block-list/block-list-item.native.js +160 -190
  218. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  219. package/build-module/components/block-list/block-outline.native.js +44 -0
  220. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  221. package/build-module/components/block-list/block.js +26 -34
  222. package/build-module/components/block-list/block.js.map +1 -1
  223. package/build-module/components/block-list/block.native.js +345 -310
  224. package/build-module/components/block-list/block.native.js.map +1 -1
  225. package/build-module/components/block-list/index.native.js +263 -355
  226. package/build-module/components/block-list/index.native.js.map +1 -1
  227. package/build-module/components/block-list/insertion-point.native.js +4 -2
  228. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/index.js +1 -1
  230. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +15 -1
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  236. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  237. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  238. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  239. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  240. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  241. package/build-module/components/block-styles/preview-panel.js +1 -2
  242. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  243. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  244. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  245. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  246. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  247. package/build-module/components/block-switcher/index.js +33 -12
  248. package/build-module/components/block-switcher/index.js.map +1 -1
  249. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  250. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  251. package/build-module/components/block-toolbar/index.js +8 -7
  252. package/build-module/components/block-toolbar/index.js.map +1 -1
  253. package/build-module/components/block-tools/block-contextual-toolbar.js +22 -65
  254. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  255. package/build-module/components/block-tools/insertion-point.js +11 -5
  256. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  257. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  258. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  259. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  260. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  261. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  262. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  263. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  264. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  265. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  266. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  267. package/build-module/components/global-styles/advanced-panel.js +74 -0
  268. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  269. package/build-module/components/global-styles/color-panel.js +5 -2
  270. package/build-module/components/global-styles/color-panel.js.map +1 -1
  271. package/build-module/components/global-styles/dimensions-panel.js +9 -8
  272. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  273. package/build-module/components/global-styles/hooks.js +1 -2
  274. package/build-module/components/global-styles/hooks.js.map +1 -1
  275. package/build-module/components/global-styles/index.js +3 -1
  276. package/build-module/components/global-styles/index.js.map +1 -1
  277. package/build-module/components/global-styles/typography-panel.js +1 -1
  278. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  279. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  280. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  281. package/build-module/components/global-styles/utils.js +25 -0
  282. package/build-module/components/global-styles/utils.js.map +1 -1
  283. package/build-module/components/iframe/index.js +15 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +24 -8
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -1
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +7 -6
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  292. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  293. package/build-module/components/inserter/index.js +3 -7
  294. package/build-module/components/inserter/index.js.map +1 -1
  295. package/build-module/components/inserter/quick-inserter.js +2 -4
  296. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  297. package/build-module/components/inserter/search-results.js +16 -6
  298. package/build-module/components/inserter/search-results.js.map +1 -1
  299. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  300. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  301. package/build-module/components/inspector-controls/fill.js +1 -1
  302. package/build-module/components/inspector-controls/fill.js.map +1 -1
  303. package/build-module/components/inspector-controls/fill.native.js +1 -1
  304. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  305. package/build-module/components/inspector-controls/slot.js +4 -7
  306. package/build-module/components/inspector-controls/slot.js.map +1 -1
  307. package/build-module/components/inspector-controls/slot.native.js +1 -1
  308. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  309. package/build-module/components/line-height-control/index.js +7 -2
  310. package/build-module/components/line-height-control/index.js.map +1 -1
  311. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  312. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  313. package/build-module/components/list-view/appender.js +6 -2
  314. package/build-module/components/list-view/appender.js.map +1 -1
  315. package/build-module/components/list-view/block-contents.js +9 -3
  316. package/build-module/components/list-view/block-contents.js.map +1 -1
  317. package/build-module/components/list-view/block-select-button.js +2 -1
  318. package/build-module/components/list-view/block-select-button.js.map +1 -1
  319. package/build-module/components/list-view/block.js +24 -29
  320. package/build-module/components/list-view/block.js.map +1 -1
  321. package/build-module/components/list-view/branch.js +1 -3
  322. package/build-module/components/list-view/branch.js.map +1 -1
  323. package/build-module/components/list-view/index.js +44 -23
  324. package/build-module/components/list-view/index.js.map +1 -1
  325. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  326. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  327. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  328. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  329. package/build-module/components/media-placeholder/index.js +66 -7
  330. package/build-module/components/media-placeholder/index.js.map +1 -1
  331. package/build-module/components/multi-selection-inspector/index.js +2 -2
  332. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  333. package/build-module/components/preview-options/index.js +7 -2
  334. package/build-module/components/preview-options/index.js.map +1 -1
  335. package/build-module/components/publish-date-time-picker/index.js +0 -2
  336. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  337. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  338. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  339. package/build-module/components/url-input/index.js +4 -2
  340. package/build-module/components/url-input/index.js.map +1 -1
  341. package/build-module/components/use-block-drop-zone/index.js +25 -16
  342. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  343. package/build-module/components/use-resize-canvas/index.js +8 -1
  344. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  346. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  347. package/build-module/hooks/align.js +4 -7
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/behaviors.js +97 -0
  350. package/build-module/hooks/behaviors.js.map +1 -0
  351. package/build-module/hooks/border.js +1 -1
  352. package/build-module/hooks/border.js.map +1 -1
  353. package/build-module/hooks/color.js +1 -1
  354. package/build-module/hooks/color.js.map +1 -1
  355. package/build-module/hooks/content-lock-ui.js +8 -11
  356. package/build-module/hooks/content-lock-ui.js.map +1 -1
  357. package/build-module/hooks/dimensions.js +0 -28
  358. package/build-module/hooks/dimensions.js.map +1 -1
  359. package/build-module/hooks/duotone.js +4 -7
  360. package/build-module/hooks/duotone.js.map +1 -1
  361. package/build-module/hooks/index.js +1 -0
  362. package/build-module/hooks/index.js.map +1 -1
  363. package/build-module/hooks/index.native.js +1 -0
  364. package/build-module/hooks/index.native.js.map +1 -1
  365. package/build-module/hooks/layout.js +9 -11
  366. package/build-module/hooks/layout.js.map +1 -1
  367. package/build-module/hooks/position.js +1 -1
  368. package/build-module/hooks/position.js.map +1 -1
  369. package/build-module/hooks/style.js +1 -1
  370. package/build-module/hooks/style.js.map +1 -1
  371. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  372. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  373. package/build-module/hooks/use-typography-props.js +14 -10
  374. package/build-module/hooks/use-typography-props.js.map +1 -1
  375. package/build-module/index.native.js +6 -0
  376. package/build-module/index.native.js.map +1 -0
  377. package/build-module/private-apis.js +3 -5
  378. package/build-module/private-apis.js.map +1 -1
  379. package/build-module/store/private-actions.js +42 -0
  380. package/build-module/store/private-actions.js.map +1 -1
  381. package/build-module/store/private-selectors.js +79 -0
  382. package/build-module/store/private-selectors.js.map +1 -1
  383. package/build-module/store/reducer.js +34 -1
  384. package/build-module/store/reducer.js.map +1 -1
  385. package/build-module/store/selectors.js +26 -17
  386. package/build-module/store/selectors.js.map +1 -1
  387. package/build-module/utils/order-inserter-block-items.js +32 -0
  388. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  389. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  390. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  391. package/build-style/content-rtl.css +32 -14
  392. package/build-style/content.css +32 -14
  393. package/build-style/default-editor-styles-rtl.css +1 -1
  394. package/build-style/default-editor-styles.css +1 -1
  395. package/build-style/style-rtl.css +56 -77
  396. package/build-style/style.css +57 -77
  397. package/package.json +32 -31
  398. package/src/autocompleters/block.js +15 -7
  399. package/src/components/block-breadcrumb/index.js +11 -3
  400. package/src/components/block-breadcrumb/style.scss +2 -1
  401. package/src/components/block-controls/slot.js +8 -4
  402. package/src/components/block-controls/slot.native.js +6 -1
  403. package/src/components/block-draggable/index.js +10 -6
  404. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  405. package/src/components/block-editing-mode/index.js +71 -0
  406. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  407. package/src/components/block-list/block-list-block-context.js +6 -0
  408. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  409. package/src/components/block-list/block-list-item.native.js +180 -208
  410. package/src/components/block-list/block-outline.native.js +58 -0
  411. package/src/components/block-list/block.js +38 -56
  412. package/src/components/block-list/block.native.js +531 -501
  413. package/src/components/block-list/content.scss +5 -6
  414. package/src/components/block-list/index.native.js +324 -382
  415. package/src/components/block-list/insertion-point.native.js +2 -2
  416. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  417. package/src/components/block-list/test/index.native.js +205 -0
  418. package/src/components/block-list/use-block-props/index.js +1 -1
  419. package/src/components/block-list/use-in-between-inserter.js +7 -3
  420. package/src/components/block-list-appender/index.js +22 -4
  421. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +26 -1
  422. package/src/components/block-mover/style.scss +1 -0
  423. package/src/components/block-pattern-setup/style.scss +1 -4
  424. package/src/components/block-patterns-list/style.scss +1 -4
  425. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  426. package/src/components/block-settings-menu-controls/index.js +24 -4
  427. package/src/components/block-styles/preview-panel.js +1 -3
  428. package/src/components/block-styles/style.scss +4 -4
  429. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  430. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  431. package/src/components/block-switcher/index.js +38 -5
  432. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  433. package/src/components/block-switcher/style.scss +6 -5
  434. package/src/components/block-toolbar/index.js +10 -11
  435. package/src/components/block-tools/block-contextual-toolbar.js +32 -67
  436. package/src/components/block-tools/insertion-point.js +23 -9
  437. package/src/components/block-tools/selected-block-popover.js +3 -5
  438. package/src/components/block-tools/style.scss +8 -0
  439. package/src/components/button-block-appender/content.scss +22 -0
  440. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  441. package/src/components/convert-to-group-buttons/index.js +9 -2
  442. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  443. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  444. package/src/components/global-styles/advanced-panel.js +82 -0
  445. package/src/components/global-styles/color-panel.js +6 -1
  446. package/src/components/global-styles/dimensions-panel.js +9 -8
  447. package/src/components/global-styles/hooks.js +1 -5
  448. package/src/components/global-styles/index.js +6 -1
  449. package/src/components/global-styles/style.scss +17 -0
  450. package/src/components/global-styles/test/utils.js +57 -1
  451. package/src/components/global-styles/typography-panel.js +1 -1
  452. package/src/components/global-styles/use-global-styles-output.js +21 -3
  453. package/src/components/global-styles/utils.js +27 -0
  454. package/src/components/iframe/index.js +22 -12
  455. package/src/components/image-editor/use-save-image.js +20 -9
  456. package/src/components/inner-blocks/README.md +5 -0
  457. package/src/components/inner-blocks/index.js +2 -0
  458. package/src/components/inner-blocks/index.native.js +16 -6
  459. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  460. package/src/components/inserter/index.js +1 -9
  461. package/src/components/inserter/quick-inserter.js +0 -2
  462. package/src/components/inserter/search-results.js +32 -6
  463. package/src/components/inserter-draggable-blocks/index.js +4 -0
  464. package/src/components/inspector-controls/fill.js +1 -1
  465. package/src/components/inspector-controls/fill.native.js +1 -1
  466. package/src/components/inspector-controls/slot.js +4 -9
  467. package/src/components/inspector-controls/slot.native.js +1 -1
  468. package/src/components/line-height-control/index.js +7 -2
  469. package/src/components/line-height-control/stories/index.js +1 -1
  470. package/src/components/link-control/test/index.js +42 -0
  471. package/src/components/link-control/use-internal-input-value.js +8 -7
  472. package/src/components/list-view/appender.js +3 -2
  473. package/src/components/list-view/block-contents.js +32 -20
  474. package/src/components/list-view/block-select-button.js +5 -1
  475. package/src/components/list-view/block.js +34 -37
  476. package/src/components/list-view/branch.js +1 -7
  477. package/src/components/list-view/index.js +42 -17
  478. package/src/components/list-view/style.scss +7 -7
  479. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  480. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  481. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  482. package/src/components/media-placeholder/index.js +74 -1
  483. package/src/components/multi-selection-inspector/index.js +2 -2
  484. package/src/components/preview-options/index.js +9 -2
  485. package/src/components/publish-date-time-picker/index.js +0 -2
  486. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  487. package/src/components/url-input/README.md +6 -0
  488. package/src/components/url-input/index.js +2 -2
  489. package/src/components/use-block-drop-zone/index.js +31 -17
  490. package/src/components/use-resize-canvas/index.js +9 -1
  491. package/src/components/writing-flow/test/index.js +15 -0
  492. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  493. package/src/hooks/align.js +5 -12
  494. package/src/hooks/behaviors.js +104 -0
  495. package/src/hooks/border.js +2 -1
  496. package/src/hooks/color.js +2 -1
  497. package/src/hooks/content-lock-ui.js +3 -15
  498. package/src/hooks/dimensions.js +0 -40
  499. package/src/hooks/duotone.js +4 -11
  500. package/src/hooks/index.js +1 -0
  501. package/src/hooks/index.native.js +1 -0
  502. package/src/hooks/layout.js +14 -20
  503. package/src/hooks/position.js +2 -1
  504. package/src/hooks/style.js +2 -1
  505. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  506. package/src/hooks/test/use-typography-props.js +47 -2
  507. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  508. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  509. package/src/hooks/use-typography-props.js +10 -11
  510. package/src/index.native.js +6 -0
  511. package/src/private-apis.js +2 -4
  512. package/src/store/private-actions.js +39 -0
  513. package/src/store/private-selectors.js +95 -0
  514. package/src/store/reducer.js +27 -0
  515. package/src/store/selectors.js +25 -15
  516. package/src/store/test/private-actions.js +32 -1
  517. package/src/store/test/private-selectors.js +158 -0
  518. package/src/store/test/reducer.js +48 -0
  519. package/src/style.scss +0 -3
  520. package/src/utils/order-inserter-block-items.js +26 -0
  521. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  522. package/tsconfig.json +1 -0
  523. package/tsconfig.tsbuildinfo +1 -1
  524. package/build/components/block-list/block-list-compact.native.js +0 -75
  525. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  526. package/build/components/off-canvas-editor/appender.js +0 -125
  527. package/build/components/off-canvas-editor/appender.js.map +0 -1
  528. package/build/components/off-canvas-editor/block-contents.js +0 -141
  529. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  530. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  531. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  532. package/build/components/off-canvas-editor/block.js +0 -297
  533. package/build/components/off-canvas-editor/block.js.map +0 -1
  534. package/build/components/off-canvas-editor/branch.js +0 -197
  535. package/build/components/off-canvas-editor/branch.js.map +0 -1
  536. package/build/components/off-canvas-editor/context.js +0 -19
  537. package/build/components/off-canvas-editor/context.js.map +0 -1
  538. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  539. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  540. package/build/components/off-canvas-editor/expander.js +0 -41
  541. package/build/components/off-canvas-editor/expander.js.map +0 -1
  542. package/build/components/off-canvas-editor/index.js +0 -236
  543. package/build/components/off-canvas-editor/index.js.map +0 -1
  544. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -146
  545. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  546. package/build/components/off-canvas-editor/leaf.js +0 -60
  547. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  548. package/build/components/off-canvas-editor/link-ui.js +0 -186
  549. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  550. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  551. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  552. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  553. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  554. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  555. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  556. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  557. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  558. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  559. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  560. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  561. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  562. package/build/components/off-canvas-editor/utils.js +0 -60
  563. package/build/components/off-canvas-editor/utils.js.map +0 -1
  564. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  565. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  566. package/build-module/components/off-canvas-editor/appender.js +0 -108
  567. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  568. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  569. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  570. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  571. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  572. package/build-module/components/off-canvas-editor/block.js +0 -273
  573. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  574. package/build-module/components/off-canvas-editor/branch.js +0 -179
  575. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  576. package/build-module/components/off-canvas-editor/context.js +0 -7
  577. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  578. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  579. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  580. package/build-module/components/off-canvas-editor/expander.js +0 -32
  581. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  582. package/build-module/components/off-canvas-editor/index.js +0 -213
  583. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  584. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -128
  585. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  586. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  587. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  588. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  589. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  590. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  591. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  592. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  593. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  594. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  595. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  596. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  597. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  598. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  599. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  600. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  601. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  602. package/build-module/components/off-canvas-editor/utils.js +0 -44
  603. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  604. package/src/components/block-list/block-list-compact.native.js +0 -63
  605. package/src/components/off-canvas-editor/README.md +0 -5
  606. package/src/components/off-canvas-editor/appender.js +0 -124
  607. package/src/components/off-canvas-editor/block-contents.js +0 -156
  608. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  609. package/src/components/off-canvas-editor/block.js +0 -347
  610. package/src/components/off-canvas-editor/branch.js +0 -238
  611. package/src/components/off-canvas-editor/context.js +0 -8
  612. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  613. package/src/components/off-canvas-editor/expander.js +0 -26
  614. package/src/components/off-canvas-editor/index.js +0 -271
  615. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -157
  616. package/src/components/off-canvas-editor/leaf.js +0 -52
  617. package/src/components/off-canvas-editor/link-ui.js +0 -167
  618. package/src/components/off-canvas-editor/style.scss +0 -34
  619. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  620. package/src/components/off-canvas-editor/test/utils.js +0 -50
  621. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  622. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  623. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  624. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  625. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  626. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  627. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -10,7 +10,7 @@ import { TouchableWithoutFeedback } from 'react-native';
10
10
 
11
11
  import { __, sprintf } from '@wordpress/i18n';
12
12
  import { useSelect, useDispatch } from '@wordpress/data';
13
- import { createBlock } from '@wordpress/blocks';
13
+ import { createBlock, getBlockType } from '@wordpress/blocks';
14
14
  /**
15
15
  * Internal dependencies
16
16
  */
@@ -19,27 +19,35 @@ import Warning from '../warning';
19
19
  import { store as blockEditorStore } from '../../store';
20
20
  export default function BlockInvalidWarning(_ref) {
21
21
  let {
22
- blockTitle,
23
- icon,
24
22
  clientId
25
23
  } = _ref;
26
- const accessibilityLabel = sprintf(
27
- /* translators: accessibility text for blocks with invalid content. %d: localized block title */
28
- __('%s block. This block has invalid content'), blockTitle);
29
24
 
30
25
  const selector = select => {
31
26
  const {
32
27
  getBlock
33
28
  } = select(blockEditorStore);
34
29
  const block = getBlock(clientId);
30
+ const {
31
+ name
32
+ } = block || {};
33
+ const blockType = getBlockType(name || 'core/missing');
34
+ const title = blockType === null || blockType === void 0 ? void 0 : blockType.title;
35
+ const blockIcon = blockType === null || blockType === void 0 ? void 0 : blockType.icon;
35
36
  return {
36
- block
37
+ block,
38
+ blockTitle: title,
39
+ icon: blockIcon
37
40
  };
38
41
  };
39
42
 
40
43
  const {
41
- block
44
+ block,
45
+ blockTitle,
46
+ icon
42
47
  } = useSelect(selector, [clientId]);
48
+ const accessibilityLabel = sprintf(
49
+ /* translators: accessibility text for blocks with invalid content. %d: localized block title */
50
+ __('%s block. This block has invalid content'), blockTitle);
43
51
  const {
44
52
  replaceBlock
45
53
  } = useDispatch(blockEditorStore);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"names":["TouchableWithoutFeedback","__","sprintf","useSelect","useDispatch","createBlock","Warning","store","blockEditorStore","BlockInvalidWarning","blockTitle","icon","clientId","accessibilityLabel","selector","select","getBlock","block","replaceBlock","recoverBlock","name","attributes","innerBlocks","attemptBlockRecovery"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAT,QAAyC,cAAzC;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,mBAAT,OAA+D;AAAA,MAAjC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,IAAd;AAAoBC,IAAAA;AAApB,GAAiC;AAC7E,QAAMC,kBAAkB,GAAGX,OAAO;AACjC;AACAD,EAAAA,EAAE,CAAE,0CAAF,CAF+B,EAGjCS,UAHiC,CAAlC;;AAMA,QAAMI,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEP,gBAAF,CAA3B;AACA,UAAMS,KAAK,GAAGD,QAAQ,CAAEJ,QAAF,CAAtB;AACA,WAAO;AACNK,MAAAA;AADM,KAAP;AAGA,GAND;;AAQA,QAAM;AAAEA,IAAAA;AAAF,MAAYd,SAAS,CAAEW,QAAF,EAAY,CAAEF,QAAF,CAAZ,CAA3B;AAEA,QAAM;AAAEM,IAAAA;AAAF,MAAmBd,WAAW,CAAEI,gBAAF,CAApC;;AAEA,QAAMW,YAAY,GAAG;AAAA,QAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,UAAR;AAAoBC,MAAAA;AAApB,KAAF;AAAA,WACpBjB,WAAW,CAAEe,IAAF,EAAQC,UAAR,EAAoBC,WAApB,CADS;AAAA,GAArB;;AAGA,QAAMC,oBAAoB,GAAG,MAAM;AAClCL,IAAAA,YAAY,CAAED,KAAK,CAACL,QAAR,EAAkBO,YAAY,CAAEF,KAAF,CAA9B,CAAZ;AACA,GAFD;;AAIA,SACC,cAAC,wBAAD;AACC,IAAA,OAAO,EAAGM,oBADX;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,iBAAiB,EAAG;AAHrB,KAKC,cAAC,OAAD;AACC,IAAA,KAAK,EAAGb,UADT,CAEC;AAFD;AAGC,IAAA,OAAO,EAAGT,EAAE,CACX,4DADW,CAHb;AAMC,IAAA,IAAI,EAAGU,IANR;AAOC,IAAA,kBAAkB,EAAGE;AAPtB,IALD,CADD;AAiBA","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { blockTitle, icon, clientId } ) {\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\treturn {\n\t\t\tblock,\n\t\t};\n\t};\n\n\tconst { block } = useSelect( selector, [ clientId ] );\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible={ true }\n\t\t\taccessibilityRole={ 'button' }\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"names":["TouchableWithoutFeedback","__","sprintf","useSelect","useDispatch","createBlock","getBlockType","Warning","store","blockEditorStore","BlockInvalidWarning","clientId","selector","select","getBlock","block","name","blockType","title","blockIcon","icon","blockTitle","accessibilityLabel","replaceBlock","recoverBlock","attributes","innerBlocks","attemptBlockRecovery"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAT,QAAyC,cAAzC;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,WAAT,EAAsBC,YAAtB,QAA0C,mBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,mBAAT,OAA6C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;;AAC3D,QAAMC,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEJ,gBAAF,CAA3B;AACA,UAAMM,KAAK,GAAGD,QAAQ,CAAEH,QAAF,CAAtB;AACA,UAAM;AAAEK,MAAAA;AAAF,QAAWD,KAAK,IAAI,EAA1B;AAEA,UAAME,SAAS,GAAGX,YAAY,CAAEU,IAAI,IAAI,cAAV,CAA9B;AACA,UAAME,KAAK,GAAGD,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEC,KAAzB;AACA,UAAMC,SAAS,GAAGF,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEG,IAA7B;AAEA,WAAO;AACNL,MAAAA,KADM;AAENM,MAAAA,UAAU,EAAEH,KAFN;AAGNE,MAAAA,IAAI,EAAED;AAHA,KAAP;AAKA,GAdD;;AAgBA,QAAM;AAAEJ,IAAAA,KAAF;AAASM,IAAAA,UAAT;AAAqBD,IAAAA;AAArB,MAA8BjB,SAAS,CAAES,QAAF,EAAY,CAAED,QAAF,CAAZ,CAA7C;AAEA,QAAMW,kBAAkB,GAAGpB,OAAO;AACjC;AACAD,EAAAA,EAAE,CAAE,0CAAF,CAF+B,EAGjCoB,UAHiC,CAAlC;AAMA,QAAM;AAAEE,IAAAA;AAAF,MAAmBnB,WAAW,CAAEK,gBAAF,CAApC;;AAEA,QAAMe,YAAY,GAAG;AAAA,QAAE;AAAER,MAAAA,IAAF;AAAQS,MAAAA,UAAR;AAAoBC,MAAAA;AAApB,KAAF;AAAA,WACpBrB,WAAW,CAAEW,IAAF,EAAQS,UAAR,EAAoBC,WAApB,CADS;AAAA,GAArB;;AAGA,QAAMC,oBAAoB,GAAG,MAAM;AAClCJ,IAAAA,YAAY,CAAER,KAAK,CAACJ,QAAR,EAAkBa,YAAY,CAAET,KAAF,CAA9B,CAAZ;AACA,GAFD;;AAIA,SACC,cAAC,wBAAD;AACC,IAAA,OAAO,EAAGY,oBADX;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,iBAAiB,EAAG;AAHrB,KAKC,cAAC,OAAD;AACC,IAAA,KAAK,EAAGN,UADT,CAEC;AAFD;AAGC,IAAA,OAAO,EAAGpB,EAAE,CACX,4DADW,CAHb;AAMC,IAAA,IAAI,EAAGmB,IANR;AAOC,IAAA,kBAAkB,EAAGE;AAPtB,IALD,CADD;AAiBA","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible={ true }\n\t\t\taccessibilityRole={ 'button' }\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createContext } from '@wordpress/element';
5
+ export const BlockListBlockContext = createContext(null);
6
+ //# sourceMappingURL=block-list-block-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-block-context.js"],"names":["createContext","BlockListBlockContext"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAT,QAA8B,oBAA9B;AAEA,OAAO,MAAMC,qBAAqB,GAAGD,aAAa,CAAE,IAAF,CAA3C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nexport const BlockListBlockContext = createContext( null );\n"]}
@@ -9,23 +9,34 @@ import { View } from 'react-native';
9
9
  */
10
10
 
11
11
  import { useEffect, useCallback } from '@wordpress/element';
12
+ import { useSelect } from '@wordpress/data';
12
13
  /**
13
14
  * Internal dependencies
14
15
  */
15
16
 
16
17
  import { useBlockListContext } from './block-list-context';
18
+ import { store as blockEditorStore } from '../../store';
17
19
 
18
20
  function BlockListItemCell(_ref) {
19
21
  let {
20
22
  children,
21
- clientId,
22
- rootClientId,
23
+ item: clientId,
23
24
  onLayout
24
25
  } = _ref;
25
26
  const {
26
27
  blocksLayouts,
27
28
  updateBlocksLayouts
28
29
  } = useBlockListContext();
30
+ const {
31
+ rootClientId
32
+ } = useSelect(select => {
33
+ const {
34
+ getBlockRootClientId
35
+ } = select(blockEditorStore);
36
+ return {
37
+ rootClientId: getBlockRootClientId(clientId)
38
+ };
39
+ }, [clientId]);
29
40
  useEffect(() => {
30
41
  return () => {
31
42
  updateBlocksLayouts(blocksLayouts, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["View","useEffect","useCallback","useBlockListContext","BlockListItemCell","children","clientId","rootClientId","onLayout","blocksLayouts","updateBlocksLayouts","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,oBAAvC;AAEA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,sBAApC;;AAEA,SAASC,iBAAT,OAA6E;AAAA,MAAjD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,YAAtB;AAAoCC,IAAAA;AAApC,GAAiD;AAC5E,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyCP,mBAAmB,EAAlE;AAEAF,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZS,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,QAAAA,QADmC;AAEnCK,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPQ,EAON,EAPM,CAAT;AASA,QAAMC,YAAY,GAAGV,WAAW,CAC7BW,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAH,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,MAAAA,QADmC;AAEnCC,MAAAA,YAFmC;AAGnC,SAAGQ;AAHgC,KAAjB,CAAnB;;AAMA,QAAKP,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEK,KAAF,CAAR;AACA;AACD,GAd8B,EAe/B,CAAEP,QAAF,EAAYC,YAAZ,EAA0BG,mBAA1B,EAA+CF,QAA/C,CAf+B,CAAhC;AAkBA,SAAO,cAAC,IAAD;AAAM,IAAA,QAAQ,EAAGI;AAAjB,KAAkCP,QAAlC,CAAP;AACA;;AAED,eAAeD,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\n\nfunction BlockListItemCell( { children, clientId, rootClientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["View","useEffect","useCallback","useSelect","useBlockListContext","store","blockEditorStore","BlockListItemCell","children","item","clientId","onLayout","blocksLayouts","updateBlocksLayouts","rootClientId","select","getBlockRootClientId","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,oBAAvC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,sBAApC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,iBAAT,OAAqE;AAAA,MAAzC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAI,EAAEC,QAAlB;AAA4BC,IAAAA;AAA5B,GAAyC;AACpE,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyCT,mBAAmB,EAAlE;AACA,QAAM;AAAEU,IAAAA;AAAF,MAAmBX,SAAS,CAC/BY,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAET,gBAAF,CAAvC;AACA,WAAO;AAAEQ,MAAAA,YAAY,EAAEE,oBAAoB,CAAEN,QAAF;AAApC,KAAP;AACA,GAJgC,EAKjC,CAAEA,QAAF,CALiC,CAAlC;AAQAT,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZY,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCF,QAAAA,QADmC;AAEnCO,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPQ,EAON,EAPM,CAAT;AASA,QAAMC,YAAY,GAAGhB,WAAW,CAC7BiB,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAN,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCF,MAAAA,QADmC;AAEnCI,MAAAA,YAFmC;AAGnC,SAAGO;AAHgC,KAAjB,CAAnB;;AAMA,QAAKV,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEQ,KAAF,CAAR;AACA;AACD,GAd8B,EAe/B,CAAET,QAAF,EAAYI,YAAZ,EAA0BD,mBAA1B,EAA+CF,QAA/C,CAf+B,CAAhC;AAkBA,SAAO,cAAC,IAAD;AAAM,IAAA,QAAQ,EAAGO;AAAjB,KAAkCV,QAAlC,CAAP;AACA;;AAED,eAAeD,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListItemCell( { children, item: clientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\tconst { rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\t\t\treturn { rootClientId: getBlockRootClientId( clientId ) };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}
@@ -1,216 +1,186 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement } from "@wordpress/element";
3
2
 
4
3
  /**
5
4
  * External dependencies
6
5
  */
7
- import { View, Dimensions } from 'react-native';
6
+ import { View } from 'react-native';
8
7
  /**
9
8
  * WordPress dependencies
10
9
  */
11
10
 
12
- import { Component } from '@wordpress/element';
13
- import { withSelect } from '@wordpress/data';
14
- import { compose } from '@wordpress/compose';
15
- import { ReadableContentView, alignmentHelpers } from '@wordpress/components';
11
+ import { useSelect } from '@wordpress/data';
16
12
  /**
17
13
  * Internal dependencies
18
14
  */
19
15
 
20
- import BlockListBlock from './block';
21
- import BlockInsertionPoint from './insertion-point';
16
+ import Block from './block';
22
17
  import Grid from './grid-item';
23
- import styles from './block-list-item.native.scss';
18
+ import BlockInsertionPoint from './insertion-point';
24
19
  import { store as blockEditorStore } from '../../store';
25
- const stretchStyle = {
26
- flex: 1
27
- };
28
- export class BlockListItem extends Component {
29
- getMarginHorizontal() {
30
- const {
31
- blockAlignment,
32
- marginHorizontal,
33
- parentBlockAlignment,
34
- hasParents,
35
- blockName,
36
- parentBlockName,
37
- parentWidth,
38
- blockWidth
39
- } = this.props;
40
- const {
41
- isFullWidth,
42
- isWideWidth,
43
- isWider,
44
- isContainerRelated
45
- } = alignmentHelpers;
46
-
47
- if (isFullWidth(blockAlignment)) {
48
- if (!hasParents) {
49
- return 0;
50
- }
51
-
52
- return marginHorizontal;
53
- }
54
-
55
- if (isWideWidth(blockAlignment)) {
56
- return marginHorizontal;
57
- }
58
-
59
- const screenWidth = Math.floor(Dimensions.get('window').width);
60
-
61
- if (isFullWidth(parentBlockAlignment) && !isWider(blockWidth, 'medium')) {
62
- if (isContainerRelated(blockName) || isWider(screenWidth, 'mobile')) {
63
- return marginHorizontal;
64
- }
65
-
66
- return marginHorizontal * 2;
67
- }
68
-
69
- if (isContainerRelated(parentBlockName) && !isContainerRelated(blockName)) {
70
- const isScreenWidthEqual = parentWidth === screenWidth;
71
-
72
- if (isScreenWidthEqual || isWider(screenWidth, 'mobile')) {
73
- return marginHorizontal;
74
- }
75
- }
76
-
77
- return marginHorizontal;
78
- }
79
-
80
- getContentStyles(readableContentViewStyle) {
81
- const {
82
- blockAlignment,
83
- blockName,
84
- hasParents,
85
- parentBlockName
86
- } = this.props;
87
- const {
88
- isFullWidth,
89
- isContainerRelated
90
- } = alignmentHelpers;
91
- return [readableContentViewStyle, isFullWidth(blockAlignment) && !hasParents && {
92
- width: styles.fullAlignment.width
93
- }, !blockAlignment && hasParents && !isContainerRelated(parentBlockName) && isContainerRelated(blockName) && {
94
- paddingHorizontal: styles.fullAlignmentPadding.paddingLeft
95
- }];
96
- }
20
+ import { useEditorWrapperStyles } from '../../hooks/use-editor-wrapper-styles';
21
+ /**
22
+ * BlockListItemContent component. Renders a block with an optional insertion point.
23
+ *
24
+ * @param {Object} props Component properties.
25
+ * @param {number} props.blockWidth The width of the block.
26
+ * @param {string} props.clientId The block client ID.
27
+ * @param {string} props.contentResizeMode The content resize mode, e.g "stretch".
28
+ * @param {Object} props.contentStyle Styles for the block content
29
+ * @param {Object} props.index Block item index
30
+ * @param {boolean} props.isStackedHorizontally Whether the block is stacked horizontally.
31
+ * @param {number} props.marginHorizontal The horizontal margin.
32
+ * @param {number} props.marginVertical The vertical margin.
33
+ * @param {Function} props.onAddBlock On add block callback.
34
+ * @param {Function} props.onDeleteBlock On delete block callback.
35
+ * @param {number} props.parentWidth The width of the parent block.
36
+ * @param {string} props.rootClientId The root client ID.
37
+ * @param {Function} props.shouldShowInnerBlockAppender Whether to show the inner block appender.
38
+ *
39
+ * @return {WPComponent} The rendered block list item content.
40
+ */
97
41
 
98
- renderContent() {
42
+ function BlockListItemContent(_ref) {
43
+ let {
44
+ blockWidth,
45
+ clientId,
46
+ contentResizeMode,
47
+ contentStyle,
48
+ index,
49
+ isStackedHorizontally,
50
+ marginHorizontal,
51
+ marginVertical,
52
+ onAddBlock,
53
+ onDeleteBlock,
54
+ parentWidth,
55
+ rootClientId,
56
+ shouldShowInnerBlockAppender
57
+ } = _ref;
58
+ const {
59
+ blockAlignment,
60
+ blockName,
61
+ hasParents,
62
+ parentBlockAlignment,
63
+ parentBlockName,
64
+ shouldShowInsertionPointAfter,
65
+ shouldShowInsertionPointBefore
66
+ } = useSelect(select => {
99
67
  const {
100
- blockAlignment,
101
- clientId,
102
- isReadOnly,
103
- shouldShowInsertionPointBefore,
104
- shouldShowInsertionPointAfter,
105
- contentResizeMode,
106
- shouldShowInnerBlockAppender,
107
- parentWidth,
108
- marginHorizontal,
109
- blockName,
110
- blockWidth,
111
- ...restProps
112
- } = this.props;
113
- const readableContentViewStyle = contentResizeMode === 'stretch' && stretchStyle;
68
+ getBlockAttributes,
69
+ getBlockInsertionPoint,
70
+ getBlockName,
71
+ getBlockOrder,
72
+ isBlockInsertionPointVisible
73
+ } = select(blockEditorStore);
74
+ const blockClientIds = getBlockOrder(rootClientId);
75
+ const insertionPoint = getBlockInsertionPoint();
76
+ const insertionPointVisibleInCurrentRoot = !isStackedHorizontally && isBlockInsertionPointVisible() && insertionPoint.rootClientId === rootClientId;
77
+ const isListEmpty = blockClientIds.length === 0;
78
+ const isInsertionPointBeforeBlock = blockClientIds[insertionPoint.index] === clientId;
79
+ const isInsertionPointAtEnd = blockClientIds.length === insertionPoint.index;
80
+ const isBlockLastInList = blockClientIds[insertionPoint.index - 1] === clientId;
81
+ const showInsertionPointBefore = insertionPointVisibleInCurrentRoot && (isListEmpty || isInsertionPointBeforeBlock);
82
+ const showInsertionPointAfter = insertionPointVisibleInCurrentRoot && isInsertionPointAtEnd && isBlockLastInList;
83
+ const blockHasParents = !!rootClientId;
84
+ const name = getBlockName(clientId);
85
+ const parentName = getBlockName(rootClientId);
114
86
  const {
115
- isContainerRelated
116
- } = alignmentHelpers;
117
- return createElement(ReadableContentView, {
118
- align: blockAlignment,
119
- style: [readableContentViewStyle, isContainerRelated(blockName) && parentWidth && {
120
- maxWidth: parentWidth + 2 * marginHorizontal
121
- }]
122
- }, createElement(View, {
123
- style: this.getContentStyles(readableContentViewStyle),
124
- pointerEvents: isReadOnly ? 'box-only' : 'auto'
125
- }, shouldShowInsertionPointBefore && createElement(BlockInsertionPoint, null), createElement(BlockListBlock, _extends({
126
- key: clientId,
127
- showTitle: false,
128
- clientId: clientId,
129
- parentWidth: parentWidth
130
- }, restProps, {
131
- marginHorizontal: this.getMarginHorizontal(),
132
- blockWidth: blockWidth
133
- })), !shouldShowInnerBlockAppender() && shouldShowInsertionPointAfter && createElement(BlockInsertionPoint, null)));
134
- }
135
-
136
- render() {
87
+ align
88
+ } = getBlockAttributes(clientId) || {};
137
89
  const {
138
- parentWidth,
139
- blockWidth,
140
- isGridItem
141
- } = this.props;
90
+ align: parentBlockAlign
91
+ } = getBlockAttributes(rootClientId) || {};
92
+ return {
93
+ blockAlignment: align,
94
+ blockName: name,
95
+ hasParents: blockHasParents,
96
+ parentBlockAlignment: parentBlockAlign,
97
+ parentBlockName: parentName,
98
+ shouldShowInsertionPointAfter: showInsertionPointAfter,
99
+ shouldShowInsertionPointBefore: showInsertionPointBefore
100
+ };
101
+ }, [isStackedHorizontally, rootClientId, clientId]);
102
+ const [wrapperStyles, margin] = useEditorWrapperStyles({
103
+ align: blockAlignment,
104
+ blockName,
105
+ blockWidth,
106
+ contentResizeMode,
107
+ hasParents,
108
+ marginHorizontal,
109
+ parentBlockAlignment,
110
+ parentBlockName,
111
+ parentWidth
112
+ });
113
+ const shouldShowBlockInsertionPointAfter = !shouldShowInnerBlockAppender() && shouldShowInsertionPointAfter;
114
+ return createElement(View, {
115
+ style: wrapperStyles
116
+ }, shouldShowInsertionPointBefore && createElement(BlockInsertionPoint, {
117
+ testID: `block-insertion-point-before-row-${index + 1}`
118
+ }), createElement(Block, {
119
+ blockWidth: blockWidth,
120
+ clientId: clientId,
121
+ contentStyle: contentStyle,
122
+ isStackedHorizontally: isStackedHorizontally,
123
+ marginHorizontal: margin,
124
+ marginVertical: marginVertical,
125
+ onAddBlock: onAddBlock,
126
+ parentBlockAlignment: parentBlockAlignment,
127
+ onDeleteBlock: onDeleteBlock,
128
+ parentWidth: parentWidth,
129
+ rootClientId: rootClientId
130
+ }), shouldShowBlockInsertionPointAfter && createElement(BlockInsertionPoint, {
131
+ testID: `block-insertion-point-after-row-${index + 1}`
132
+ }));
133
+ }
134
+ /**
135
+ * BlockListItem component. Renders a block list item either as a grid item or as a standalone item.
136
+ *
137
+ * @param {Object} props Component properties.
138
+ * @param {boolean} props.isGridItem Whether the block is a grid item.
139
+ * @param {number} props.numOfColumns The number of columns for grid layout.
140
+ * @param {number} props.parentWidth The width of the parent block.
141
+ * @param {number} props.tileCount The total number of tiles in the grid.
142
+ * @param {number} props.tileIndex The index of the current tile in the grid.
143
+ * @param {number} props.blockWidth The width of the block.
144
+ * @param {string} props.clientId The block client ID.
145
+ * @param {string} props.contentResizeMode The content resize mode, e.g "stretch".
146
+ * @param {Object} props.contentStyle Styles for the block content
147
+ * @param {Object} props.index Block item index
148
+ * @param {boolean} props.isStackedHorizontally Whether the block is stacked horizontally.
149
+ * @param {number} props.marginHorizontal The horizontal margin.
150
+ * @param {number} props.marginVertical The vertical margin.
151
+ * @param {Function} props.onAddBlock On add block callback.
152
+ * @param {Function} props.onDeleteBlock On delete block callback.
153
+ * @param {string} props.rootClientId The root client ID.
154
+ * @param {Function} props.shouldShowInnerBlockAppender Whether to show the inner block appender.
155
+ *
156
+ * @return {WPComponent|null} The rendered block list item or null if the block width is not provided.
157
+ */
142
158
 
143
- if (!blockWidth) {
144
- return null;
145
- }
146
159
 
147
- if (isGridItem) {
148
- const {
149
- numOfColumns,
150
- tileCount,
151
- tileIndex
152
- } = this.props;
153
- return createElement(Grid, {
154
- maxWidth: parentWidth,
155
- numOfColumns: numOfColumns,
156
- tileCount: tileCount,
157
- index: tileIndex
158
- }, this.renderContent());
159
- }
160
+ function BlockListItem(props) {
161
+ const {
162
+ isGridItem,
163
+ numOfColumns,
164
+ tileCount,
165
+ tileIndex,
166
+ ...restProps
167
+ } = props;
168
+
169
+ if (!(props !== null && props !== void 0 && props.blockWidth)) {
170
+ return null;
171
+ }
160
172
 
161
- return this.renderContent();
173
+ if (isGridItem) {
174
+ return createElement(Grid, {
175
+ maxWidth: props === null || props === void 0 ? void 0 : props.parentWidth,
176
+ numOfColumns: numOfColumns,
177
+ tileCount: tileCount,
178
+ index: tileIndex
179
+ }, createElement(BlockListItemContent, restProps));
162
180
  }
163
181
 
182
+ return createElement(BlockListItemContent, restProps);
164
183
  }
165
- export default compose([withSelect((select, _ref) => {
166
- let {
167
- rootClientId,
168
- isStackedHorizontally,
169
- clientId
170
- } = _ref;
171
- const {
172
- getBlockOrder,
173
- getBlockInsertionPoint,
174
- isBlockInsertionPointVisible,
175
- getSettings,
176
- getBlockParents,
177
- getBlock
178
- } = select(blockEditorStore);
179
- const blockClientIds = getBlockOrder(rootClientId);
180
- const insertionPoint = getBlockInsertionPoint();
181
- const blockInsertionPointIsVisible = isBlockInsertionPointVisible();
182
- const shouldShowInsertionPointBefore = !isStackedHorizontally && blockInsertionPointIsVisible && insertionPoint.rootClientId === rootClientId && ( // If list is empty, show the insertion point (via the default appender)
183
- blockClientIds.length === 0 || // Or if the insertion point is right before the denoted block.
184
- blockClientIds[insertionPoint.index] === clientId);
185
- const shouldShowInsertionPointAfter = !isStackedHorizontally && blockInsertionPointIsVisible && insertionPoint.rootClientId === rootClientId && // If the insertion point is at the end of the list.
186
- blockClientIds.length === insertionPoint.index && // And the denoted block is the last one on the list, show the indicator at the end of the block.
187
- blockClientIds[insertionPoint.index - 1] === clientId;
188
- const isReadOnly = getSettings().readOnly;
189
- const {
190
- attributes,
191
- name
192
- } = getBlock(clientId) || {};
193
- const {
194
- align
195
- } = attributes || {};
196
- const parents = getBlockParents(clientId, true);
197
- const hasParents = !!parents.length;
198
- const parentBlock = hasParents ? getBlock(parents[0]) : {};
199
- const {
200
- align: parentBlockAlignment
201
- } = (parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.attributes) || {};
202
- const {
203
- name: parentBlockName
204
- } = parentBlock || {};
205
- return {
206
- shouldShowInsertionPointBefore,
207
- shouldShowInsertionPointAfter,
208
- isReadOnly,
209
- hasParents,
210
- blockAlignment: align,
211
- parentBlockAlignment,
212
- blockName: name,
213
- parentBlockName
214
- };
215
- })])(BlockListItem);
184
+
185
+ export default BlockListItem;
216
186
  //# sourceMappingURL=block-list-item.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item.native.js"],"names":["View","Dimensions","Component","withSelect","compose","ReadableContentView","alignmentHelpers","BlockListBlock","BlockInsertionPoint","Grid","styles","store","blockEditorStore","stretchStyle","flex","BlockListItem","getMarginHorizontal","blockAlignment","marginHorizontal","parentBlockAlignment","hasParents","blockName","parentBlockName","parentWidth","blockWidth","props","isFullWidth","isWideWidth","isWider","isContainerRelated","screenWidth","Math","floor","get","width","isScreenWidthEqual","getContentStyles","readableContentViewStyle","fullAlignment","paddingHorizontal","fullAlignmentPadding","paddingLeft","renderContent","clientId","isReadOnly","shouldShowInsertionPointBefore","shouldShowInsertionPointAfter","contentResizeMode","shouldShowInnerBlockAppender","restProps","maxWidth","render","isGridItem","numOfColumns","tileCount","tileIndex","select","rootClientId","isStackedHorizontally","getBlockOrder","getBlockInsertionPoint","isBlockInsertionPointVisible","getSettings","getBlockParents","getBlock","blockClientIds","insertionPoint","blockInsertionPointIsVisible","length","index","readOnly","attributes","name","align","parents","parentBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { ReadableContentView, alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockInsertionPoint from './insertion-point';\nimport Grid from './grid-item';\n\nimport styles from './block-list-item.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nconst stretchStyle = {\n\tflex: 1,\n};\n\nexport class BlockListItem extends Component {\n\tgetMarginHorizontal() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tmarginHorizontal,\n\t\t\tparentBlockAlignment,\n\t\t\thasParents,\n\t\t\tblockName,\n\t\t\tparentBlockName,\n\t\t\tparentWidth,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\t\tconst { isFullWidth, isWideWidth, isWider, isContainerRelated } =\n\t\t\talignmentHelpers;\n\n\t\tif ( isFullWidth( blockAlignment ) ) {\n\t\t\tif ( ! hasParents ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn marginHorizontal;\n\t\t}\n\t\tif ( isWideWidth( blockAlignment ) ) {\n\t\t\treturn marginHorizontal;\n\t\t}\n\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\t\tif (\n\t\t\tisFullWidth( parentBlockAlignment ) &&\n\t\t\t! isWider( blockWidth, 'medium' )\n\t\t) {\n\t\t\tif (\n\t\t\t\tisContainerRelated( blockName ) ||\n\t\t\t\tisWider( screenWidth, 'mobile' )\n\t\t\t) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t\treturn marginHorizontal * 2;\n\t\t}\n\n\t\tif (\n\t\t\tisContainerRelated( parentBlockName ) &&\n\t\t\t! isContainerRelated( blockName )\n\t\t) {\n\t\t\tconst isScreenWidthEqual = parentWidth === screenWidth;\n\t\t\tif ( isScreenWidthEqual || isWider( screenWidth, 'mobile' ) ) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t}\n\n\t\treturn marginHorizontal;\n\t}\n\n\tgetContentStyles( readableContentViewStyle ) {\n\t\tconst { blockAlignment, blockName, hasParents, parentBlockName } =\n\t\t\tthis.props;\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\n\t\treturn [\n\t\t\treadableContentViewStyle,\n\t\t\tisFullWidth( blockAlignment ) &&\n\t\t\t\t! hasParents && {\n\t\t\t\t\twidth: styles.fullAlignment.width,\n\t\t\t\t},\n\t\t\t! blockAlignment &&\n\t\t\t\thasParents &&\n\t\t\t\t! isContainerRelated( parentBlockName ) &&\n\t\t\t\tisContainerRelated( blockName ) && {\n\t\t\t\t\tpaddingHorizontal: styles.fullAlignmentPadding.paddingLeft,\n\t\t\t\t},\n\t\t];\n\t}\n\n\trenderContent() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tclientId,\n\t\t\tisReadOnly,\n\t\t\tshouldShowInsertionPointBefore,\n\t\t\tshouldShowInsertionPointAfter,\n\t\t\tcontentResizeMode,\n\t\t\tshouldShowInnerBlockAppender,\n\t\t\tparentWidth,\n\t\t\tmarginHorizontal,\n\t\t\tblockName,\n\t\t\tblockWidth,\n\t\t\t...restProps\n\t\t} = this.props;\n\n\t\tconst readableContentViewStyle =\n\t\t\tcontentResizeMode === 'stretch' && stretchStyle;\n\t\tconst { isContainerRelated } = alignmentHelpers;\n\n\t\treturn (\n\t\t\t<ReadableContentView\n\t\t\t\talign={ blockAlignment }\n\t\t\t\tstyle={ [\n\t\t\t\t\treadableContentViewStyle,\n\t\t\t\t\tisContainerRelated( blockName ) &&\n\t\t\t\t\t\tparentWidth && {\n\t\t\t\t\t\t\tmaxWidth: parentWidth + 2 * marginHorizontal,\n\t\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ this.getContentStyles( readableContentViewStyle ) }\n\t\t\t\t\tpointerEvents={ isReadOnly ? 'box-only' : 'auto' }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowInsertionPointBefore && (\n\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\tshowTitle={ false }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\tmarginHorizontal={ this.getMarginHorizontal() }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! shouldShowInnerBlockAppender() &&\n\t\t\t\t\t\tshouldShowInsertionPointAfter && (\n\t\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t</ReadableContentView>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { parentWidth, blockWidth, isGridItem } = this.props;\n\n\t\tif ( ! blockWidth ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( isGridItem ) {\n\t\t\tconst { numOfColumns, tileCount, tileIndex } = this.props;\n\t\t\treturn (\n\t\t\t\t<Grid\n\t\t\t\t\tmaxWidth={ parentWidth }\n\t\t\t\t\tnumOfColumns={ numOfColumns }\n\t\t\t\t\ttileCount={ tileCount }\n\t\t\t\t\tindex={ tileIndex }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderContent() }\n\t\t\t\t</Grid>\n\t\t\t);\n\t\t}\n\t\treturn this.renderContent();\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, isStackedHorizontally, clientId } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\t\t\tconst shouldShowInsertionPointBefore =\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\tblockClientIds[ insertionPoint.index ] === clientId );\n\n\t\t\tconst shouldShowInsertionPointAfter =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If the insertion point is at the end of the list.\n\t\t\t\tblockClientIds.length === insertionPoint.index &&\n\t\t\t\t// And the denoted block is the last one on the list, show the indicator at the end of the block.\n\t\t\t\tblockClientIds[ insertionPoint.index - 1 ] === clientId;\n\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst { attributes, name } = getBlock( clientId ) || {};\n\t\t\tconst { align } = attributes || {};\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst hasParents = !! parents.length;\n\t\t\tconst parentBlock = hasParents ? getBlock( parents[ 0 ] ) : {};\n\t\t\tconst { align: parentBlockAlignment } =\n\t\t\t\tparentBlock?.attributes || {};\n\t\t\tconst { name: parentBlockName } = parentBlock || {};\n\n\t\t\treturn {\n\t\t\t\tshouldShowInsertionPointBefore,\n\t\t\t\tshouldShowInsertionPointAfter,\n\t\t\t\tisReadOnly,\n\t\t\t\thasParents,\n\t\t\t\tblockAlignment: align,\n\t\t\t\tparentBlockAlignment,\n\t\t\t\tblockName: name,\n\t\t\t\tparentBlockName,\n\t\t\t};\n\t\t}\n\t),\n] )( BlockListItem );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item.native.js"],"names":["View","useSelect","Block","Grid","BlockInsertionPoint","store","blockEditorStore","useEditorWrapperStyles","BlockListItemContent","blockWidth","clientId","contentResizeMode","contentStyle","index","isStackedHorizontally","marginHorizontal","marginVertical","onAddBlock","onDeleteBlock","parentWidth","rootClientId","shouldShowInnerBlockAppender","blockAlignment","blockName","hasParents","parentBlockAlignment","parentBlockName","shouldShowInsertionPointAfter","shouldShowInsertionPointBefore","select","getBlockAttributes","getBlockInsertionPoint","getBlockName","getBlockOrder","isBlockInsertionPointVisible","blockClientIds","insertionPoint","insertionPointVisibleInCurrentRoot","isListEmpty","length","isInsertionPointBeforeBlock","isInsertionPointAtEnd","isBlockLastInList","showInsertionPointBefore","showInsertionPointAfter","blockHasParents","name","parentName","align","parentBlockAlign","wrapperStyles","margin","shouldShowBlockInsertionPointAfter","BlockListItem","props","isGridItem","numOfColumns","tileCount","tileIndex","restProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Block from './block';\nimport Grid from './grid-item';\nimport BlockInsertionPoint from './insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport { useEditorWrapperStyles } from '../../hooks/use-editor-wrapper-styles';\n\n/**\n * BlockListItemContent component. Renders a block with an optional insertion point.\n *\n * @param {Object} props Component properties.\n * @param {number} props.blockWidth The width of the block.\n * @param {string} props.clientId The block client ID.\n * @param {string} props.contentResizeMode The content resize mode, e.g \"stretch\".\n * @param {Object} props.contentStyle Styles for the block content\n * @param {Object} props.index Block item index\n * @param {boolean} props.isStackedHorizontally Whether the block is stacked horizontally.\n * @param {number} props.marginHorizontal The horizontal margin.\n * @param {number} props.marginVertical The vertical margin.\n * @param {Function} props.onAddBlock On add block callback.\n * @param {Function} props.onDeleteBlock On delete block callback.\n * @param {number} props.parentWidth The width of the parent block.\n * @param {string} props.rootClientId The root client ID.\n * @param {Function} props.shouldShowInnerBlockAppender Whether to show the inner block appender.\n *\n * @return {WPComponent} The rendered block list item content.\n */\nfunction BlockListItemContent( {\n\tblockWidth,\n\tclientId,\n\tcontentResizeMode,\n\tcontentStyle,\n\tindex,\n\tisStackedHorizontally,\n\tmarginHorizontal,\n\tmarginVertical,\n\tonAddBlock,\n\tonDeleteBlock,\n\tparentWidth,\n\trootClientId,\n\tshouldShowInnerBlockAppender,\n} ) {\n\tconst {\n\t\tblockAlignment,\n\t\tblockName,\n\t\thasParents,\n\t\tparentBlockAlignment,\n\t\tparentBlockName,\n\t\tshouldShowInsertionPointAfter,\n\t\tshouldShowInsertionPointBefore,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\n\t\t\tconst insertionPointVisibleInCurrentRoot =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tisBlockInsertionPointVisible() &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId;\n\n\t\t\tconst isListEmpty = blockClientIds.length === 0;\n\t\t\tconst isInsertionPointBeforeBlock =\n\t\t\t\tblockClientIds[ insertionPoint.index ] === clientId;\n\t\t\tconst isInsertionPointAtEnd =\n\t\t\t\tblockClientIds.length === insertionPoint.index;\n\t\t\tconst isBlockLastInList =\n\t\t\t\tblockClientIds[ insertionPoint.index - 1 ] === clientId;\n\n\t\t\tconst showInsertionPointBefore =\n\t\t\t\tinsertionPointVisibleInCurrentRoot &&\n\t\t\t\t( isListEmpty || isInsertionPointBeforeBlock );\n\n\t\t\tconst showInsertionPointAfter =\n\t\t\t\tinsertionPointVisibleInCurrentRoot &&\n\t\t\t\tisInsertionPointAtEnd &&\n\t\t\t\tisBlockLastInList;\n\n\t\t\tconst blockHasParents = !! rootClientId;\n\t\t\tconst name = getBlockName( clientId );\n\t\t\tconst parentName = getBlockName( rootClientId );\n\t\t\tconst { align } = getBlockAttributes( clientId ) || {};\n\t\t\tconst { align: parentBlockAlign } =\n\t\t\t\tgetBlockAttributes( rootClientId ) || {};\n\n\t\t\treturn {\n\t\t\t\tblockAlignment: align,\n\t\t\t\tblockName: name,\n\t\t\t\thasParents: blockHasParents,\n\t\t\t\tparentBlockAlignment: parentBlockAlign,\n\t\t\t\tparentBlockName: parentName,\n\t\t\t\tshouldShowInsertionPointAfter: showInsertionPointAfter,\n\t\t\t\tshouldShowInsertionPointBefore: showInsertionPointBefore,\n\t\t\t};\n\t\t},\n\t\t[ isStackedHorizontally, rootClientId, clientId ]\n\t);\n\n\tconst [ wrapperStyles, margin ] = useEditorWrapperStyles( {\n\t\talign: blockAlignment,\n\t\tblockName,\n\t\tblockWidth,\n\t\tcontentResizeMode,\n\t\thasParents,\n\t\tmarginHorizontal,\n\t\tparentBlockAlignment,\n\t\tparentBlockName,\n\t\tparentWidth,\n\t} );\n\n\tconst shouldShowBlockInsertionPointAfter =\n\t\t! shouldShowInnerBlockAppender() && shouldShowInsertionPointAfter;\n\n\treturn (\n\t\t<View style={ wrapperStyles }>\n\t\t\t{ shouldShowInsertionPointBefore && (\n\t\t\t\t<BlockInsertionPoint\n\t\t\t\t\ttestID={ `block-insertion-point-before-row-${ index + 1 }` }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Block\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\tmarginHorizontal={ margin }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t{ shouldShowBlockInsertionPointAfter && (\n\t\t\t\t<BlockInsertionPoint\n\t\t\t\t\ttestID={ `block-insertion-point-after-row-${ index + 1 }` }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\n/**\n * BlockListItem component. Renders a block list item either as a grid item or as a standalone item.\n *\n * @param {Object} props Component properties.\n * @param {boolean} props.isGridItem Whether the block is a grid item.\n * @param {number} props.numOfColumns The number of columns for grid layout.\n * @param {number} props.parentWidth The width of the parent block.\n * @param {number} props.tileCount The total number of tiles in the grid.\n * @param {number} props.tileIndex The index of the current tile in the grid.\n * @param {number} props.blockWidth The width of the block.\n * @param {string} props.clientId The block client ID.\n * @param {string} props.contentResizeMode The content resize mode, e.g \"stretch\".\n * @param {Object} props.contentStyle Styles for the block content\n * @param {Object} props.index Block item index\n * @param {boolean} props.isStackedHorizontally Whether the block is stacked horizontally.\n * @param {number} props.marginHorizontal The horizontal margin.\n * @param {number} props.marginVertical The vertical margin.\n * @param {Function} props.onAddBlock On add block callback.\n * @param {Function} props.onDeleteBlock On delete block callback.\n * @param {string} props.rootClientId The root client ID.\n * @param {Function} props.shouldShowInnerBlockAppender Whether to show the inner block appender.\n *\n * @return {WPComponent|null} The rendered block list item or null if the block width is not provided.\n */\nfunction BlockListItem( props ) {\n\tconst { isGridItem, numOfColumns, tileCount, tileIndex, ...restProps } =\n\t\tprops;\n\n\tif ( ! props?.blockWidth ) {\n\t\treturn null;\n\t}\n\n\tif ( isGridItem ) {\n\t\treturn (\n\t\t\t<Grid\n\t\t\t\tmaxWidth={ props?.parentWidth }\n\t\t\t\tnumOfColumns={ numOfColumns }\n\t\t\t\ttileCount={ tileCount }\n\t\t\t\tindex={ tileIndex }\n\t\t\t>\n\t\t\t\t<BlockListItemContent { ...restProps } />\n\t\t\t</Grid>\n\t\t);\n\t}\n\n\treturn <BlockListItemContent { ...restProps } />;\n}\n\nexport default BlockListItem;\n"]}
@@ -0,0 +1,44 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import { View } from 'react-native';
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+
11
+ import { usePreferredColorSchemeStyle } from '@wordpress/compose';
12
+ import { alignmentHelpers } from '@wordpress/components';
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ import styles from './block.scss';
18
+
19
+ function BlockOutline(_ref) {
20
+ let {
21
+ align,
22
+ blockWidth,
23
+ isParentSelected,
24
+ isSelected,
25
+ name,
26
+ screenWidth
27
+ } = _ref;
28
+ const {
29
+ isFullWidth,
30
+ isContainerRelated
31
+ } = alignmentHelpers;
32
+ const isScreenWidthWider = blockWidth < screenWidth;
33
+ const styleSolidBorder = [styles.solidBorder, isFullWidth(align) && isScreenWidthWider && styles.borderFullWidth, isFullWidth(align) && isContainerRelated(name) && isScreenWidthWider && styles.containerBorderFullWidth, usePreferredColorSchemeStyle(styles.solidBorderColor, styles.solidBorderColorDark)];
34
+ const styleDashedBorder = [styles.dashedBorder, usePreferredColorSchemeStyle(styles.dashedBorderColor, styles.dashedBorderColorDark)];
35
+ return createElement(Fragment, null, isSelected && createElement(View, {
36
+ pointerEvents: "box-none",
37
+ style: styleSolidBorder
38
+ }), isParentSelected && createElement(View, {
39
+ style: styleDashedBorder
40
+ }));
41
+ }
42
+
43
+ export default BlockOutline;
44
+ //# sourceMappingURL=block-outline.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-outline.native.js"],"names":["View","usePreferredColorSchemeStyle","alignmentHelpers","styles","BlockOutline","align","blockWidth","isParentSelected","isSelected","name","screenWidth","isFullWidth","isContainerRelated","isScreenWidthWider","styleSolidBorder","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","styleDashedBorder","dashedBorder","dashedBorderColor","dashedBorderColorDark"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AACA,SAASC,gBAAT,QAAiC,uBAAjC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,SAASC,YAAT,OAOI;AAAA,MAPmB;AACtBC,IAAAA,KADsB;AAEtBC,IAAAA,UAFsB;AAGtBC,IAAAA,gBAHsB;AAItBC,IAAAA,UAJsB;AAKtBC,IAAAA,IALsB;AAMtBC,IAAAA;AANsB,GAOnB;AACH,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAsCV,gBAA5C;AACA,QAAMW,kBAAkB,GAAGP,UAAU,GAAGI,WAAxC;AAEA,QAAMI,gBAAgB,GAAG,CACxBX,MAAM,CAACY,WADiB,EAExBJ,WAAW,CAAEN,KAAF,CAAX,IAAwBQ,kBAAxB,IAA8CV,MAAM,CAACa,eAF7B,EAGxBL,WAAW,CAAEN,KAAF,CAAX,IACCO,kBAAkB,CAAEH,IAAF,CADnB,IAECI,kBAFD,IAGCV,MAAM,CAACc,wBANgB,EAOxBhB,4BAA4B,CAC3BE,MAAM,CAACe,gBADoB,EAE3Bf,MAAM,CAACgB,oBAFoB,CAPJ,CAAzB;AAYA,QAAMC,iBAAiB,GAAG,CACzBjB,MAAM,CAACkB,YADkB,EAEzBpB,4BAA4B,CAC3BE,MAAM,CAACmB,iBADoB,EAE3BnB,MAAM,CAACoB,qBAFoB,CAFH,CAA1B;AAQA,SACC,8BACGf,UAAU,IACX,cAAC,IAAD;AAAM,IAAA,aAAa,EAAC,UAApB;AAA+B,IAAA,KAAK,EAAGM;AAAvC,IAFF,EAIGP,gBAAgB,IAAI,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGa;AAAd,IAJvB,CADD;AAQA;;AAED,eAAehB,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\n\nfunction BlockOutline( {\n\talign,\n\tblockWidth,\n\tisParentSelected,\n\tisSelected,\n\tname,\n\tscreenWidth,\n} ) {\n\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\tconst isScreenWidthWider = blockWidth < screenWidth;\n\n\tconst styleSolidBorder = [\n\t\tstyles.solidBorder,\n\t\tisFullWidth( align ) && isScreenWidthWider && styles.borderFullWidth,\n\t\tisFullWidth( align ) &&\n\t\t\tisContainerRelated( name ) &&\n\t\t\tisScreenWidthWider &&\n\t\t\tstyles.containerBorderFullWidth,\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.solidBorderColor,\n\t\t\tstyles.solidBorderColorDark\n\t\t),\n\t];\n\tconst styleDashedBorder = [\n\t\tstyles.dashedBorder,\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.dashedBorderColor,\n\t\t\tstyles.dashedBorderColorDark\n\t\t),\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<View pointerEvents=\"box-none\" style={ styleSolidBorder } />\n\t\t\t) }\n\t\t\t{ isParentSelected && <View style={ styleDashedBorder } /> }\n\t\t</>\n\t);\n}\n\nexport default BlockOutline;\n"]}