@wordpress/block-library 9.6.1 → 9.7.1-next.5368f64a9.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 (409) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/archives/edit.js +1 -1
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/audio/edit.js +2 -1
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/block/edit.js +5 -8
  7. package/build/block/edit.js.map +1 -1
  8. package/build/button/edit.js +1 -1
  9. package/build/button/edit.js.map +1 -1
  10. package/build/buttons/index.js +1 -1
  11. package/build/categories/index.js +1 -0
  12. package/build/categories/index.js.map +1 -1
  13. package/build/comment-edit-link/index.js +13 -2
  14. package/build/comment-edit-link/index.js.map +1 -1
  15. package/build/comment-reply-link/index.js +13 -2
  16. package/build/comment-reply-link/index.js.map +1 -1
  17. package/build/comments/edit/comments-legacy.js +1 -0
  18. package/build/comments/edit/comments-legacy.js.map +1 -1
  19. package/build/cover/deprecated.js +1 -1
  20. package/build/cover/deprecated.js.map +1 -1
  21. package/build/cover/edit/block-controls.js +4 -2
  22. package/build/cover/edit/block-controls.js.map +1 -1
  23. package/build/cover/edit/index.js +6 -3
  24. package/build/cover/edit/index.js.map +1 -1
  25. package/build/cover/edit/inspector-controls.js +4 -12
  26. package/build/cover/edit/inspector-controls.js.map +1 -1
  27. package/build/details/index.js +3 -1
  28. package/build/details/index.js.map +1 -1
  29. package/build/details/transforms.js +24 -0
  30. package/build/details/transforms.js.map +1 -0
  31. package/build/embed/edit.js +5 -11
  32. package/build/embed/edit.js.map +1 -1
  33. package/build/embed/embed-placeholder.js +2 -0
  34. package/build/embed/embed-placeholder.js.map +1 -1
  35. package/build/embed/embed-preview.js +16 -4
  36. package/build/embed/embed-preview.js.map +1 -1
  37. package/build/file/edit.js +12 -1
  38. package/build/file/edit.js.map +1 -1
  39. package/build/file/transforms.js +18 -4
  40. package/build/file/transforms.js.map +1 -1
  41. package/build/freeform/edit.js +4 -4
  42. package/build/freeform/edit.js.map +1 -1
  43. package/build/freeform/modal.js +3 -0
  44. package/build/freeform/modal.js.map +1 -1
  45. package/build/home-link/edit.js +3 -9
  46. package/build/home-link/edit.js.map +1 -1
  47. package/build/image/edit.js +95 -45
  48. package/build/image/edit.js.map +1 -1
  49. package/build/image/image.js +39 -24
  50. package/build/image/image.js.map +1 -1
  51. package/build/image/transforms.js +0 -13
  52. package/build/image/transforms.js.map +1 -1
  53. package/build/image/use-max-width-observer.js +35 -0
  54. package/build/image/use-max-width-observer.js.map +1 -0
  55. package/build/image/utils.js +11 -0
  56. package/build/image/utils.js.map +1 -1
  57. package/build/latest-posts/edit.js +1 -1
  58. package/build/latest-posts/edit.js.map +1 -1
  59. package/build/media-text/deprecated.js +144 -3
  60. package/build/media-text/deprecated.js.map +1 -1
  61. package/build/media-text/edit.js +5 -5
  62. package/build/media-text/edit.js.map +1 -1
  63. package/build/media-text/image-fill.js +12 -0
  64. package/build/media-text/image-fill.js.map +1 -0
  65. package/build/media-text/media-container.js +21 -18
  66. package/build/media-text/media-container.js.map +1 -1
  67. package/build/media-text/media-container.native.js +0 -7
  68. package/build/media-text/media-container.native.js.map +1 -1
  69. package/build/media-text/save.js +5 -6
  70. package/build/media-text/save.js.map +1 -1
  71. package/build/missing/edit.js +3 -2
  72. package/build/missing/edit.js.map +1 -1
  73. package/build/navigation/edit/deleted-navigation-warning.js +14 -7
  74. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  75. package/build/navigation/edit/index.js +1 -0
  76. package/build/navigation/edit/index.js.map +1 -1
  77. package/build/navigation/edit/menu-inspector-controls.js +2 -1
  78. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  79. package/build/navigation/edit/navigation-menu-delete-control.js +1 -0
  80. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  81. package/build/navigation/edit/placeholder/index.js +1 -0
  82. package/build/navigation/edit/placeholder/index.js.map +1 -1
  83. package/build/navigation/edit/responsive-wrapper.js +2 -0
  84. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  85. package/build/navigation/edit/unsaved-inner-blocks.js +4 -4
  86. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  87. package/build/navigation-link/link-ui.js +2 -1
  88. package/build/navigation-link/link-ui.js.map +1 -1
  89. package/build/page-list/convert-to-links-modal.js +2 -0
  90. package/build/page-list/convert-to-links-modal.js.map +1 -1
  91. package/build/page-list/edit.js +4 -1
  92. package/build/page-list/edit.js.map +1 -1
  93. package/build/post-comments-form/form.js +1 -0
  94. package/build/post-comments-form/form.js.map +1 -1
  95. package/build/post-featured-image/dimension-controls.js +6 -8
  96. package/build/post-featured-image/dimension-controls.js.map +1 -1
  97. package/build/post-featured-image/edit.js +2 -4
  98. package/build/post-featured-image/edit.js.map +1 -1
  99. package/build/post-title/index.js +4 -1
  100. package/build/post-title/index.js.map +1 -1
  101. package/build/query/edit/enhanced-pagination-modal.js +3 -2
  102. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  103. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  104. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  105. package/build/query/edit/inspector-controls/index.js +2 -10
  106. package/build/query/edit/inspector-controls/index.js.map +1 -1
  107. package/build/query/edit/query-content.js +9 -3
  108. package/build/query/edit/query-content.js.map +1 -1
  109. package/build/query/edit/query-placeholder.js +2 -0
  110. package/build/query/edit/query-placeholder.js.map +1 -1
  111. package/build/site-logo/edit.js +9 -13
  112. package/build/site-logo/edit.js.map +1 -1
  113. package/build/site-title/index.js +4 -1
  114. package/build/site-title/index.js.map +1 -1
  115. package/build/social-link/edit.js +4 -1
  116. package/build/social-link/edit.js.map +1 -1
  117. package/build/social-links/edit.js +10 -9
  118. package/build/social-links/edit.js.map +1 -1
  119. package/build/template-part/edit/advanced-controls.js.map +1 -1
  120. package/build/template-part/edit/index.js +1 -1
  121. package/build/template-part/edit/index.js.map +1 -1
  122. package/build/template-part/edit/inner-blocks.js +10 -1
  123. package/build/template-part/edit/inner-blocks.js.map +1 -1
  124. package/build/template-part/edit/placeholder.js +2 -0
  125. package/build/template-part/edit/placeholder.js.map +1 -1
  126. package/build/utils/hooks.js +10 -10
  127. package/build/utils/hooks.js.map +1 -1
  128. package/build/video/edit.js +16 -12
  129. package/build/video/edit.js.map +1 -1
  130. package/build/video/tracks-editor.js +3 -0
  131. package/build/video/tracks-editor.js.map +1 -1
  132. package/build-module/archives/edit.js +1 -1
  133. package/build-module/archives/edit.js.map +1 -1
  134. package/build-module/audio/edit.js +2 -1
  135. package/build-module/audio/edit.js.map +1 -1
  136. package/build-module/block/edit.js +6 -9
  137. package/build-module/block/edit.js.map +1 -1
  138. package/build-module/button/edit.js +1 -1
  139. package/build-module/button/edit.js.map +1 -1
  140. package/build-module/buttons/index.js +1 -1
  141. package/build-module/categories/index.js +1 -0
  142. package/build-module/categories/index.js.map +1 -1
  143. package/build-module/comment-edit-link/index.js +13 -2
  144. package/build-module/comment-edit-link/index.js.map +1 -1
  145. package/build-module/comment-reply-link/index.js +13 -2
  146. package/build-module/comment-reply-link/index.js.map +1 -1
  147. package/build-module/comments/edit/comments-legacy.js +1 -0
  148. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  149. package/build-module/cover/deprecated.js +1 -1
  150. package/build-module/cover/deprecated.js.map +1 -1
  151. package/build-module/cover/edit/block-controls.js +4 -2
  152. package/build-module/cover/edit/block-controls.js.map +1 -1
  153. package/build-module/cover/edit/index.js +6 -3
  154. package/build-module/cover/edit/index.js.map +1 -1
  155. package/build-module/cover/edit/inspector-controls.js +5 -13
  156. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  157. package/build-module/details/index.js +3 -1
  158. package/build-module/details/index.js.map +1 -1
  159. package/build-module/details/transforms.js +18 -0
  160. package/build-module/details/transforms.js.map +1 -0
  161. package/build-module/embed/edit.js +6 -12
  162. package/build-module/embed/edit.js.map +1 -1
  163. package/build-module/embed/embed-placeholder.js +2 -0
  164. package/build-module/embed/embed-placeholder.js.map +1 -1
  165. package/build-module/embed/embed-preview.js +16 -4
  166. package/build-module/embed/embed-preview.js.map +1 -1
  167. package/build-module/file/edit.js +12 -1
  168. package/build-module/file/edit.js.map +1 -1
  169. package/build-module/file/transforms.js +18 -4
  170. package/build-module/file/transforms.js.map +1 -1
  171. package/build-module/freeform/edit.js +4 -4
  172. package/build-module/freeform/edit.js.map +1 -1
  173. package/build-module/freeform/modal.js +3 -0
  174. package/build-module/freeform/modal.js.map +1 -1
  175. package/build-module/home-link/edit.js +3 -9
  176. package/build-module/home-link/edit.js.map +1 -1
  177. package/build-module/image/edit.js +99 -48
  178. package/build-module/image/edit.js.map +1 -1
  179. package/build-module/image/image.js +40 -25
  180. package/build-module/image/image.js.map +1 -1
  181. package/build-module/image/transforms.js +0 -13
  182. package/build-module/image/transforms.js.map +1 -1
  183. package/build-module/image/use-max-width-observer.js +29 -0
  184. package/build-module/image/use-max-width-observer.js.map +1 -0
  185. package/build-module/image/utils.js +11 -1
  186. package/build-module/image/utils.js.map +1 -1
  187. package/build-module/latest-posts/edit.js +1 -1
  188. package/build-module/latest-posts/edit.js.map +1 -1
  189. package/build-module/media-text/deprecated.js +144 -3
  190. package/build-module/media-text/deprecated.js.map +1 -1
  191. package/build-module/media-text/edit.js +5 -5
  192. package/build-module/media-text/edit.js.map +1 -1
  193. package/build-module/media-text/image-fill.js +6 -0
  194. package/build-module/media-text/image-fill.js.map +1 -0
  195. package/build-module/media-text/media-container.js +21 -17
  196. package/build-module/media-text/media-container.js.map +1 -1
  197. package/build-module/media-text/media-container.native.js +0 -1
  198. package/build-module/media-text/media-container.native.js.map +1 -1
  199. package/build-module/media-text/save.js +5 -6
  200. package/build-module/media-text/save.js.map +1 -1
  201. package/build-module/missing/edit.js +3 -2
  202. package/build-module/missing/edit.js.map +1 -1
  203. package/build-module/navigation/edit/deleted-navigation-warning.js +15 -8
  204. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  205. package/build-module/navigation/edit/index.js +1 -0
  206. package/build-module/navigation/edit/index.js.map +1 -1
  207. package/build-module/navigation/edit/menu-inspector-controls.js +2 -1
  208. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  209. package/build-module/navigation/edit/navigation-menu-delete-control.js +1 -0
  210. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  211. package/build-module/navigation/edit/placeholder/index.js +1 -0
  212. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  213. package/build-module/navigation/edit/responsive-wrapper.js +2 -0
  214. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  215. package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -4
  216. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  217. package/build-module/navigation-link/link-ui.js +4 -3
  218. package/build-module/navigation-link/link-ui.js.map +1 -1
  219. package/build-module/page-list/convert-to-links-modal.js +2 -0
  220. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  221. package/build-module/page-list/edit.js +4 -1
  222. package/build-module/page-list/edit.js.map +1 -1
  223. package/build-module/post-comments-form/form.js +1 -0
  224. package/build-module/post-comments-form/form.js.map +1 -1
  225. package/build-module/post-featured-image/dimension-controls.js +6 -8
  226. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  227. package/build-module/post-featured-image/edit.js +3 -5
  228. package/build-module/post-featured-image/edit.js.map +1 -1
  229. package/build-module/post-title/index.js +4 -1
  230. package/build-module/post-title/index.js.map +1 -1
  231. package/build-module/query/edit/enhanced-pagination-modal.js +3 -2
  232. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  233. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  234. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  235. package/build-module/query/edit/inspector-controls/index.js +2 -10
  236. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  237. package/build-module/query/edit/query-content.js +10 -4
  238. package/build-module/query/edit/query-content.js.map +1 -1
  239. package/build-module/query/edit/query-placeholder.js +2 -0
  240. package/build-module/query/edit/query-placeholder.js.map +1 -1
  241. package/build-module/site-logo/edit.js +10 -14
  242. package/build-module/site-logo/edit.js.map +1 -1
  243. package/build-module/site-title/index.js +4 -1
  244. package/build-module/site-title/index.js.map +1 -1
  245. package/build-module/social-link/edit.js +4 -1
  246. package/build-module/social-link/edit.js.map +1 -1
  247. package/build-module/social-links/edit.js +11 -10
  248. package/build-module/social-links/edit.js.map +1 -1
  249. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  250. package/build-module/template-part/edit/index.js +1 -1
  251. package/build-module/template-part/edit/index.js.map +1 -1
  252. package/build-module/template-part/edit/inner-blocks.js +10 -1
  253. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  254. package/build-module/template-part/edit/placeholder.js +2 -0
  255. package/build-module/template-part/edit/placeholder.js.map +1 -1
  256. package/build-module/utils/hooks.js +10 -10
  257. package/build-module/utils/hooks.js.map +1 -1
  258. package/build-module/video/edit.js +16 -13
  259. package/build-module/video/edit.js.map +1 -1
  260. package/build-module/video/tracks-editor.js +3 -0
  261. package/build-module/video/tracks-editor.js.map +1 -1
  262. package/build-style/button/editor-rtl.css +0 -4
  263. package/build-style/button/editor.css +0 -4
  264. package/build-style/buttons/editor-rtl.css +2 -5
  265. package/build-style/buttons/editor.css +2 -5
  266. package/build-style/buttons/style-rtl.css +2 -2
  267. package/build-style/buttons/style.css +2 -2
  268. package/build-style/comment-edit-link/style-rtl.css +94 -0
  269. package/build-style/comment-edit-link/style.css +94 -0
  270. package/build-style/comment-reply-link/style-rtl.css +94 -0
  271. package/build-style/comment-reply-link/style.css +94 -0
  272. package/build-style/comments-pagination/editor-rtl.css +2 -2
  273. package/build-style/comments-pagination/editor.css +2 -2
  274. package/build-style/common-rtl.css +2 -2
  275. package/build-style/common.css +2 -2
  276. package/build-style/cover/editor-rtl.css +0 -6
  277. package/build-style/cover/editor.css +0 -6
  278. package/build-style/editor-rtl.css +35 -99
  279. package/build-style/editor.css +35 -101
  280. package/build-style/group/editor-rtl.css +0 -1
  281. package/build-style/group/editor.css +0 -1
  282. package/build-style/image/editor-rtl.css +6 -27
  283. package/build-style/image/editor.css +6 -27
  284. package/build-style/media-text/editor-rtl.css +3 -1
  285. package/build-style/media-text/editor.css +3 -1
  286. package/build-style/media-text/style-rtl.css +20 -0
  287. package/build-style/media-text/style.css +20 -0
  288. package/build-style/navigation/editor-rtl.css +1 -2
  289. package/build-style/navigation/editor.css +1 -2
  290. package/build-style/post-featured-image/style-rtl.css +1 -1
  291. package/build-style/post-featured-image/style.css +1 -1
  292. package/build-style/post-title/style-rtl.css +21 -0
  293. package/build-style/post-title/style.css +21 -0
  294. package/build-style/query-pagination/editor-rtl.css +2 -16
  295. package/build-style/query-pagination/editor.css +2 -18
  296. package/build-style/query-pagination/style-rtl.css +0 -11
  297. package/build-style/query-pagination/style.css +0 -13
  298. package/build-style/site-title/editor-rtl.css +0 -4
  299. package/build-style/site-title/editor.css +0 -4
  300. package/build-style/site-title/style-rtl.css +21 -0
  301. package/build-style/site-title/style.css +21 -0
  302. package/build-style/social-links/editor-rtl.css +17 -0
  303. package/build-style/social-links/editor.css +17 -0
  304. package/build-style/style-rtl.css +75 -16
  305. package/build-style/style.css +75 -18
  306. package/build-style/video/editor-rtl.css +0 -29
  307. package/build-style/video/editor.css +0 -29
  308. package/package.json +42 -35
  309. package/src/archives/edit.js +1 -1
  310. package/src/audio/edit.js +1 -0
  311. package/src/block/edit.js +9 -11
  312. package/src/button/edit.js +1 -1
  313. package/src/button/editor.scss +0 -5
  314. package/src/buttons/block.json +1 -1
  315. package/src/buttons/editor.scss +2 -8
  316. package/src/buttons/style.scss +2 -2
  317. package/src/categories/block.json +1 -0
  318. package/src/categories/index.php +13 -2
  319. package/src/comment-edit-link/block.json +13 -2
  320. package/src/comment-edit-link/style.scss +4 -0
  321. package/src/comment-reply-link/block.json +13 -2
  322. package/src/comment-reply-link/style.scss +4 -0
  323. package/src/comments/edit/comments-legacy.js +1 -0
  324. package/src/comments-pagination/editor.scss +1 -1
  325. package/src/cover/deprecated.js +3 -2
  326. package/src/cover/edit/block-controls.js +2 -0
  327. package/src/cover/edit/index.js +6 -1
  328. package/src/cover/edit/inspector-controls.js +3 -15
  329. package/src/cover/editor.scss +0 -5
  330. package/src/cover/test/edit.js +30 -26
  331. package/src/details/index.js +2 -0
  332. package/src/details/transforms.js +26 -0
  333. package/src/embed/edit.js +0 -7
  334. package/src/embed/embed-placeholder.js +10 -2
  335. package/src/embed/embed-preview.js +22 -2
  336. package/src/file/edit.js +11 -0
  337. package/src/file/index.php +1 -1
  338. package/src/file/transforms.js +26 -6
  339. package/src/freeform/edit.js +4 -4
  340. package/src/freeform/editor.scss +1 -1
  341. package/src/freeform/modal.js +7 -1
  342. package/src/gallery/editor.scss +1 -1
  343. package/src/group/editor.scss +0 -1
  344. package/src/home-link/edit.js +4 -7
  345. package/src/image/edit.js +130 -47
  346. package/src/image/editor.scss +7 -41
  347. package/src/image/image.js +100 -67
  348. package/src/image/index.php +1 -1
  349. package/src/image/transforms.js +0 -23
  350. package/src/image/use-max-width-observer.js +32 -0
  351. package/src/image/utils.js +13 -1
  352. package/src/latest-posts/edit.js +1 -1
  353. package/src/media-text/deprecated.js +159 -3
  354. package/src/media-text/edit.js +5 -5
  355. package/src/media-text/editor.scss +3 -1
  356. package/src/media-text/image-fill.js +11 -0
  357. package/src/media-text/index.php +53 -43
  358. package/src/media-text/media-container.js +25 -25
  359. package/src/media-text/media-container.native.js +0 -2
  360. package/src/media-text/save.js +9 -13
  361. package/src/media-text/style.scss +21 -0
  362. package/src/media-text/test/image-fill.js +19 -0
  363. package/src/missing/edit.js +8 -3
  364. package/src/navigation/edit/deleted-navigation-warning.js +23 -13
  365. package/src/navigation/edit/index.js +1 -0
  366. package/src/navigation/edit/menu-inspector-controls.js +3 -1
  367. package/src/navigation/edit/navigation-menu-delete-control.js +1 -0
  368. package/src/navigation/edit/placeholder/index.js +1 -0
  369. package/src/navigation/edit/responsive-wrapper.js +2 -0
  370. package/src/navigation/edit/unsaved-inner-blocks.js +4 -4
  371. package/src/navigation/editor.scss +11 -4
  372. package/src/navigation/index.php +1 -1
  373. package/src/navigation-link/link-ui.js +4 -3
  374. package/src/page-list/convert-to-links-modal.js +6 -1
  375. package/src/page-list/edit.js +6 -1
  376. package/src/page-list/index.php +3 -1
  377. package/src/post-comments-form/form.js +1 -0
  378. package/src/post-featured-image/dimension-controls.js +4 -4
  379. package/src/post-featured-image/edit.js +3 -6
  380. package/src/post-featured-image/style.scss +1 -1
  381. package/src/post-title/block.json +4 -1
  382. package/src/post-title/style.scss +24 -0
  383. package/src/query/edit/enhanced-pagination-modal.js +7 -3
  384. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  385. package/src/query/edit/inspector-controls/index.js +2 -9
  386. package/src/query/edit/query-content.js +7 -0
  387. package/src/query/edit/query-placeholder.js +2 -0
  388. package/src/query/index.php +1 -1
  389. package/src/query-pagination/editor.scss +1 -21
  390. package/src/query-pagination/style.scss +0 -15
  391. package/src/search/index.php +1 -1
  392. package/src/site-logo/edit.js +11 -20
  393. package/src/site-title/block.json +4 -1
  394. package/src/site-title/editor.scss +0 -4
  395. package/src/site-title/style.scss +24 -0
  396. package/src/social-link/edit.js +2 -0
  397. package/src/social-links/edit.js +17 -10
  398. package/src/social-links/editor.scss +24 -5
  399. package/src/style.scss +2 -0
  400. package/src/tag-cloud/index.php +7 -2
  401. package/src/template-part/edit/advanced-controls.js +0 -1
  402. package/src/template-part/edit/index.js +12 -10
  403. package/src/template-part/edit/inner-blocks.js +20 -1
  404. package/src/template-part/edit/placeholder.js +6 -1
  405. package/src/utils/hooks.js +11 -11
  406. package/src/video/edit.js +24 -21
  407. package/src/video/editor.scss +0 -45
  408. package/src/video/tracks-editor.js +3 -0
  409. package/src/media-text/test/media-container.js +0 -24
@@ -155,6 +155,34 @@ describe( 'Cover block', () => {
155
155
  'is-position-top-left'
156
156
  );
157
157
  } );
158
+
159
+ test( 'clears media when clear media button clicked', async () => {
160
+ await setup( {
161
+ url: 'http://localhost/my-image.jpg',
162
+ } );
163
+
164
+ await selectBlock( 'Block: Cover' );
165
+ expect(
166
+ within( screen.getByLabelText( 'Block: Cover' ) ).getByRole(
167
+ 'img'
168
+ )
169
+ ).toBeInTheDocument();
170
+
171
+ await userEvent.click(
172
+ screen.getByRole( 'button', { name: 'Replace' } )
173
+ );
174
+ await userEvent.click(
175
+ screen.getByRole( 'menuitem', {
176
+ name: 'Reset',
177
+ } )
178
+ );
179
+
180
+ expect(
181
+ within( screen.getByLabelText( 'Block: Cover' ) ).queryByRole(
182
+ 'img'
183
+ )
184
+ ).not.toBeInTheDocument();
185
+ } );
158
186
  } );
159
187
 
160
188
  describe( 'Inspector controls', () => {
@@ -242,30 +270,6 @@ describe( 'Cover block', () => {
242
270
  expect( screen.getByAltText( 'Me' ) ).toBeInTheDocument();
243
271
  } );
244
272
 
245
- test( 'clears media when clear media button clicked', async () => {
246
- await setup( {
247
- url: 'http://localhost/my-image.jpg',
248
- } );
249
-
250
- await selectBlock( 'Block: Cover' );
251
- expect(
252
- within( screen.getByLabelText( 'Block: Cover' ) ).getByRole(
253
- 'img'
254
- )
255
- ).toBeInTheDocument();
256
-
257
- await userEvent.click(
258
- screen.getByRole( 'button', {
259
- name: 'Clear Media',
260
- } )
261
- );
262
- expect(
263
- within( screen.getByLabelText( 'Block: Cover' ) ).queryByRole(
264
- 'img'
265
- )
266
- ).not.toBeInTheDocument();
267
- } );
268
-
269
273
  describe( 'Color panel', () => {
270
274
  test( 'applies selected opacity to block when number control value changed', async () => {
271
275
  const { container } = await setup();
@@ -372,10 +376,10 @@ describe( 'Cover block', () => {
372
376
  } )
373
377
  );
374
378
  await userEvent.clear(
375
- screen.getByLabelText( 'Minimum height of cover' )
379
+ screen.getByLabelText( 'Minimum height' )
376
380
  );
377
381
  await userEvent.type(
378
- screen.getByLabelText( 'Minimum height of cover' ),
382
+ screen.getByLabelText( 'Minimum height' ),
379
383
  '300'
380
384
  );
381
385
 
@@ -11,6 +11,7 @@ import initBlock from '../utils/init-block';
11
11
  import metadata from './block.json';
12
12
  import edit from './edit';
13
13
  import save from './save';
14
+ import transforms from './transforms';
14
15
 
15
16
  const { name } = metadata;
16
17
  export { metadata, name };
@@ -35,6 +36,7 @@ export const settings = {
35
36
  },
36
37
  save,
37
38
  edit,
39
+ transforms,
38
40
  };
39
41
 
40
42
  export const init = () => initBlock( { name, metadata, settings } );
@@ -0,0 +1,26 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createBlock, cloneBlock } from '@wordpress/blocks';
5
+
6
+ export default {
7
+ from: [
8
+ {
9
+ type: 'block',
10
+ isMultiBlock: true,
11
+ blocks: [ '*' ],
12
+ isMatch( {}, blocks ) {
13
+ return ! (
14
+ blocks.length === 1 && blocks[ 0 ].name === 'core/details'
15
+ );
16
+ },
17
+ __experimentalConvert( blocks ) {
18
+ return createBlock(
19
+ 'core/details',
20
+ {},
21
+ blocks.map( ( block ) => cloneBlock( block ) )
22
+ );
23
+ },
24
+ },
25
+ ],
26
+ };
package/src/embed/edit.js CHANGED
@@ -14,7 +14,6 @@ import { embedContentIcon } from './icons';
14
14
  import EmbedLoading from './embed-loading';
15
15
  import EmbedPlaceholder from './embed-placeholder';
16
16
  import EmbedPreview from './embed-preview';
17
- import { Caption } from '../utils/caption';
18
17
 
19
18
  /**
20
19
  * External dependencies
@@ -277,14 +276,8 @@ const EmbedEdit = ( props ) => {
277
276
  icon={ icon }
278
277
  label={ label }
279
278
  insertBlocksAfter={ insertBlocksAfter }
280
- />
281
- <Caption
282
279
  attributes={ attributes }
283
280
  setAttributes={ setAttributes }
284
- isSelected={ isSelected }
285
- insertBlocksAfter={ insertBlocksAfter }
286
- label={ __( 'Embed caption text' ) }
287
- showToolbarButton={ isSelected }
288
281
  />
289
282
  </View>
290
283
  </>
@@ -65,10 +65,18 @@ const EmbedPlaceholder = ( {
65
65
  spacing={ 3 }
66
66
  justify="flex-start"
67
67
  >
68
- <Button variant="secondary" onClick={ tryAgain }>
68
+ <Button
69
+ __next40pxDefaultSize
70
+ variant="secondary"
71
+ onClick={ tryAgain }
72
+ >
69
73
  { _x( 'Try again', 'button label' ) }
70
74
  </Button>{ ' ' }
71
- <Button variant="secondary" onClick={ fallback }>
75
+ <Button
76
+ __next40pxDefaultSize
77
+ variant="secondary"
78
+ onClick={ fallback }
79
+ >
72
80
  { _x( 'Convert to link', 'button label' ) }
73
81
  </Button>
74
82
  </HStack>
@@ -21,6 +21,7 @@ import { getAuthority } from '@wordpress/url';
21
21
  * Internal dependencies
22
22
  */
23
23
  import WpEmbedPreview from './wp-embed-preview';
24
+ import { Caption } from '../utils/caption';
24
25
 
25
26
  class EmbedPreview extends Component {
26
27
  constructor() {
@@ -52,8 +53,19 @@ class EmbedPreview extends Component {
52
53
  }
53
54
 
54
55
  render() {
55
- const { preview, previewable, url, type, className, icon, label } =
56
- this.props;
56
+ const {
57
+ preview,
58
+ previewable,
59
+ url,
60
+ type,
61
+ className,
62
+ icon,
63
+ label,
64
+ insertBlocksAfter,
65
+ attributes,
66
+ setAttributes,
67
+ isSelected,
68
+ } = this.props;
57
69
  const { scripts } = preview;
58
70
  const { interactive } = this.state;
59
71
 
@@ -123,6 +135,14 @@ class EmbedPreview extends Component {
123
135
  </p>
124
136
  </Placeholder>
125
137
  ) }
138
+ <Caption
139
+ attributes={ attributes }
140
+ setAttributes={ setAttributes }
141
+ isSelected={ isSelected }
142
+ insertBlocksAfter={ insertBlocksAfter }
143
+ label={ __( 'Embed caption text' ) }
144
+ showToolbarButton={ isSelected }
145
+ />
126
146
  </figure>
127
147
  );
128
148
  }
package/src/file/edit.js CHANGED
@@ -109,6 +109,16 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
109
109
 
110
110
  function onSelectFile( newMedia ) {
111
111
  if ( ! newMedia || ! newMedia.url ) {
112
+ // Reset attributes.
113
+ setAttributes( {
114
+ href: undefined,
115
+ fileName: undefined,
116
+ textLinkHref: undefined,
117
+ id: undefined,
118
+ fileId: undefined,
119
+ displayPreview: undefined,
120
+ previewHeight: undefined,
121
+ } );
112
122
  setTemporaryURL();
113
123
  return;
114
124
  }
@@ -230,6 +240,7 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
230
240
  accept="*"
231
241
  onSelect={ onSelectFile }
232
242
  onError={ onUploadError }
243
+ onReset={ () => onSelectFile( undefined ) }
233
244
  />
234
245
  <ClipboardToolbarButton
235
246
  text={ href }
@@ -21,7 +21,7 @@ function render_block_core_file( $attributes, $content ) {
21
21
  if ( ! empty( $attributes['displayPreview'] ) ) {
22
22
  $suffix = wp_scripts_get_suffix();
23
23
  if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
24
- $module_url = gutenberg_url( '/build/interactivity/file.min.js' );
24
+ $module_url = gutenberg_url( '/build-module/block-library/file/view.min.js' );
25
25
  }
26
26
 
27
27
  wp_register_script_module(
@@ -24,12 +24,32 @@ const transforms = {
24
24
  const blobURL = createBlobURL( file );
25
25
 
26
26
  // File will be uploaded in componentDidMount()
27
- blocks.push(
28
- createBlock( 'core/file', {
29
- blob: blobURL,
30
- fileName: file.name,
31
- } )
32
- );
27
+ if ( file.type.startsWith( 'video/' ) ) {
28
+ blocks.push(
29
+ createBlock( 'core/video', {
30
+ blob: createBlobURL( file ),
31
+ } )
32
+ );
33
+ } else if ( file.type.startsWith( 'image/' ) ) {
34
+ blocks.push(
35
+ createBlock( 'core/image', {
36
+ blob: createBlobURL( file ),
37
+ } )
38
+ );
39
+ } else if ( file.type.startsWith( 'audio/' ) ) {
40
+ blocks.push(
41
+ createBlock( 'core/audio', {
42
+ blob: createBlobURL( file ),
43
+ } )
44
+ );
45
+ } else {
46
+ blocks.push(
47
+ createBlock( 'core/file', {
48
+ blob: blobURL,
49
+ fileName: file.name,
50
+ } )
51
+ );
52
+ }
33
53
  } );
34
54
 
35
55
  return blocks;
@@ -75,10 +75,10 @@ function ClassicEdit( {
75
75
  onReplace,
76
76
  } ) {
77
77
  const { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );
78
- const didMount = useRef( false );
78
+ const didMountRef = useRef( false );
79
79
 
80
80
  useEffect( () => {
81
- if ( ! didMount.current ) {
81
+ if ( ! didMountRef.current ) {
82
82
  return;
83
83
  }
84
84
 
@@ -96,7 +96,7 @@ function ClassicEdit( {
96
96
  useEffect( () => {
97
97
  const { baseURL, suffix } = window.wpEditorL10n.tinymce;
98
98
 
99
- didMount.current = true;
99
+ didMountRef.current = true;
100
100
 
101
101
  window.tinymce.EditorManager.overrideDefaults( {
102
102
  base_url: baseURL,
@@ -230,7 +230,7 @@ function ClassicEdit( {
230
230
  onReadyStateChange
231
231
  );
232
232
  wp.oldEditor.remove( `editor-${ clientId }` );
233
- didMount.current = false;
233
+ didMountRef.current = false;
234
234
  };
235
235
  }, [] );
236
236
 
@@ -299,7 +299,7 @@ div[data-type="core/freeform"] {
299
299
  top: 0;
300
300
  border: $border-width solid $gray-300;
301
301
  border-bottom: none;
302
- border-radius: $radius-block-ui;
302
+ border-radius: $radius-small;
303
303
  margin-bottom: $grid-unit-10;
304
304
 
305
305
  // On mobile, toolbars go edge to edge.
@@ -25,6 +25,7 @@ function ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {
25
25
 
26
26
  return (
27
27
  <Button
28
+ size="small"
28
29
  onClick={ onClick }
29
30
  icon={ fullscreen }
30
31
  isPressed={ isModalFullScreen }
@@ -120,12 +121,17 @@ export default function ModalEdit( props ) {
120
121
  expanded={ false }
121
122
  >
122
123
  <FlexItem>
123
- <Button variant="tertiary" onClick={ onClose }>
124
+ <Button
125
+ __next40pxDefaultSize
126
+ variant="tertiary"
127
+ onClick={ onClose }
128
+ >
124
129
  { __( 'Cancel' ) }
125
130
  </Button>
126
131
  </FlexItem>
127
132
  <FlexItem>
128
133
  <Button
134
+ __next40pxDefaultSize
129
135
  variant="primary"
130
136
  onClick={ () => {
131
137
  setAttributes( {
@@ -139,7 +139,7 @@
139
139
  z-index: z-index(".block-library-gallery-item__inline-menu");
140
140
  transition: box-shadow 0.2s ease-out;
141
141
  @include reduce-motion("transition");
142
- border-radius: $radius-block-ui;
142
+ border-radius: $radius-small;
143
143
  background: $white;
144
144
  border: $border-width solid $gray-900;
145
145
 
@@ -43,7 +43,6 @@
43
43
  pointer-events: none;
44
44
  min-height: $grid-unit-60 - $border-width - $border-width;
45
45
  border: $border-width dashed currentColor;
46
- border-radius: $radius-block-ui;
47
46
  }
48
47
 
49
48
  // Let the parent be selectable in the placeholder area.
@@ -19,13 +19,10 @@ import { useEffect } from '@wordpress/element';
19
19
  const preventDefault = ( event ) => event.preventDefault();
20
20
 
21
21
  export default function HomeEdit( { attributes, setAttributes, context } ) {
22
- const { homeUrl } = useSelect( ( select ) => {
23
- const {
24
- getUnstableBase, // Site index.
25
- } = select( coreStore );
26
- return {
27
- homeUrl: getUnstableBase()?.home,
28
- };
22
+ const homeUrl = useSelect( ( select ) => {
23
+ // Site index.
24
+ return select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
25
+ ?.home;
29
26
  }, [] );
30
27
  const { __unstableMarkNextChangeAsNotPersistent } =
31
28
  useDispatch( blockEditorStore );
package/src/image/edit.js CHANGED
@@ -6,14 +6,14 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { isBlobURL } from '@wordpress/blob';
10
- import { store as blocksStore } from '@wordpress/blocks';
9
+ import { isBlobURL, createBlobURL } from '@wordpress/blob';
10
+ import { store as blocksStore, createBlock } from '@wordpress/blocks';
11
11
  import { Placeholder } from '@wordpress/components';
12
12
  import { useDispatch, useSelect } from '@wordpress/data';
13
13
  import {
14
14
  BlockIcon,
15
- MediaPlaceholder,
16
15
  useBlockProps,
16
+ MediaPlaceholder,
17
17
  store as blockEditorStore,
18
18
  __experimentalUseBorderProps as useBorderProps,
19
19
  __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,
@@ -23,6 +23,7 @@ import { useEffect, useRef, useState } from '@wordpress/element';
23
23
  import { __, sprintf } from '@wordpress/i18n';
24
24
  import { image as icon, plugins as pluginsIcon } from '@wordpress/icons';
25
25
  import { store as noticesStore } from '@wordpress/notices';
26
+ import { useResizeObserver } from '@wordpress/compose';
26
27
 
27
28
  /**
28
29
  * Internal dependencies
@@ -30,6 +31,8 @@ import { store as noticesStore } from '@wordpress/notices';
30
31
  import { unlock } from '../lock-unlock';
31
32
  import { useUploadMediaFromBlobURL } from '../utils/hooks';
32
33
  import Image from './image';
34
+ import { isValidFileType } from './utils';
35
+ import { useMaxWidthObserver } from './use-max-width-observer';
33
36
 
34
37
  /**
35
38
  * Module constants
@@ -107,8 +110,23 @@ export function ImageEdit( {
107
110
  align,
108
111
  metadata,
109
112
  } = attributes;
113
+
110
114
  const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
111
115
 
116
+ const containerRef = useRef();
117
+ // Only observe the max width from the parent container when the parent layout is not flex nor grid.
118
+ // This won't work for them because the container width changes with the image.
119
+ // TODO: Find a way to observe the container width for flex and grid layouts.
120
+ const isMaxWidthContainerWidth =
121
+ ! parentLayout ||
122
+ ( parentLayout.type !== 'flex' && parentLayout.type !== 'grid' );
123
+ const [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();
124
+
125
+ const [ placeholderResizeListener, { width: placeholderWidth } ] =
126
+ useResizeObserver();
127
+
128
+ const isSmallContainer = placeholderWidth && placeholderWidth < 160;
129
+
112
130
  const altRef = useRef();
113
131
  useEffect( () => {
114
132
  altRef.current = alt;
@@ -119,7 +137,7 @@ export function ImageEdit( {
119
137
  captionRef.current = caption;
120
138
  }, [ caption ] );
121
139
 
122
- const { __unstableMarkNextChangeAsNotPersistent } =
140
+ const { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =
123
141
  useDispatch( blockEditorStore );
124
142
 
125
143
  useEffect( () => {
@@ -134,7 +152,12 @@ export function ImageEdit( {
134
152
  }
135
153
  }, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );
136
154
 
137
- const { getSettings } = useSelect( blockEditorStore );
155
+ const {
156
+ getSettings,
157
+ getBlockRootClientId,
158
+ getBlockName,
159
+ canInsertBlockType,
160
+ } = useSelect( blockEditorStore );
138
161
  const blockEditingMode = useBlockEditingMode();
139
162
 
140
163
  const { createErrorNotice } = useDispatch( noticesStore );
@@ -148,7 +171,52 @@ export function ImageEdit( {
148
171
  } );
149
172
  }
150
173
 
174
+ function onSelectImagesList( images ) {
175
+ const win = containerRef.current?.ownerDocument.defaultView;
176
+
177
+ if ( images.every( ( file ) => file instanceof win.File ) ) {
178
+ /** @type {File[]} */
179
+ const files = images;
180
+ const rootClientId = getBlockRootClientId( clientId );
181
+
182
+ if ( files.some( ( file ) => ! isValidFileType( file ) ) ) {
183
+ // Copied from the same notice in the gallery block.
184
+ createErrorNotice(
185
+ __(
186
+ 'If uploading to a gallery all files need to be image formats'
187
+ ),
188
+ { id: 'gallery-upload-invalid-file', type: 'snackbar' }
189
+ );
190
+ }
191
+
192
+ const imageBlocks = files
193
+ .filter( ( file ) => isValidFileType( file ) )
194
+ .map( ( file ) =>
195
+ createBlock( 'core/image', {
196
+ blob: createBlobURL( file ),
197
+ } )
198
+ );
199
+
200
+ if ( getBlockName( rootClientId ) === 'core/gallery' ) {
201
+ replaceBlock( clientId, imageBlocks );
202
+ } else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {
203
+ const galleryBlock = createBlock(
204
+ 'core/gallery',
205
+ {},
206
+ imageBlocks
207
+ );
208
+
209
+ replaceBlock( clientId, galleryBlock );
210
+ }
211
+ }
212
+ }
213
+
151
214
  function onSelectImage( media ) {
215
+ if ( Array.isArray( media ) ) {
216
+ onSelectImagesList( media );
217
+ return;
218
+ }
219
+
152
220
  if ( ! media || ! media.url ) {
153
221
  setAttributes( {
154
222
  url: undefined,
@@ -292,7 +360,10 @@ export function ImageEdit( {
292
360
  Object.keys( borderProps.style ).length > 0 ),
293
361
  } );
294
362
 
295
- const blockProps = useBlockProps( { className: classes } );
363
+ const blockProps = useBlockProps( {
364
+ ref: containerRef,
365
+ className: classes,
366
+ } );
296
367
 
297
368
  // Much of this description is duplicated from MediaPlaceholder.
298
369
  const { lockUrlControls = false, lockUrlControlsMessage } = useSelect(
@@ -322,7 +393,7 @@ export function ImageEdit( {
322
393
  : __( 'Connected to dynamic data' ),
323
394
  };
324
395
  },
325
- [ isSingleSelected, metadata?.bindings?.url ]
396
+ [ context, isSingleSelected, metadata?.bindings?.url ]
326
397
  );
327
398
  const placeholder = ( content ) => {
328
399
  return (
@@ -331,13 +402,17 @@ export function ImageEdit( {
331
402
  [ borderProps.className ]:
332
403
  !! borderProps.className && ! isSingleSelected,
333
404
  } ) }
334
- withIllustration
335
- icon={ lockUrlControls ? pluginsIcon : icon }
336
- label={ __( 'Image' ) }
405
+ icon={
406
+ ! isSmallContainer &&
407
+ ( lockUrlControls ? pluginsIcon : icon )
408
+ }
409
+ withIllustration={ ! isSingleSelected || isSmallContainer }
410
+ label={ ! isSmallContainer && __( 'Image' ) }
337
411
  instructions={
338
412
  ! lockUrlControls &&
413
+ ! isSmallContainer &&
339
414
  __(
340
- 'Upload an image file, pick one from your media library, or add one with a URL.'
415
+ 'Upload or drag an image file here, or pick one from your library.'
341
416
  )
342
417
  }
343
418
  style={ {
@@ -352,47 +427,55 @@ export function ImageEdit( {
352
427
  ...shadowProps.style,
353
428
  } }
354
429
  >
355
- { lockUrlControls ? (
356
- <span className="block-bindings-media-placeholder-message">
357
- { lockUrlControlsMessage }
358
- </span>
359
- ) : (
360
- content
361
- ) }
430
+ { lockUrlControls &&
431
+ ! isSmallContainer &&
432
+ lockUrlControlsMessage }
433
+
434
+ { ! lockUrlControls && ! isSmallContainer && content }
435
+ { placeholderResizeListener }
362
436
  </Placeholder>
363
437
  );
364
438
  };
365
439
 
366
440
  return (
367
- <figure { ...blockProps }>
368
- <Image
369
- temporaryURL={ temporaryURL }
370
- attributes={ attributes }
371
- setAttributes={ setAttributes }
372
- isSingleSelected={ isSingleSelected }
373
- insertBlocksAfter={ insertBlocksAfter }
374
- onReplace={ onReplace }
375
- onSelectImage={ onSelectImage }
376
- onSelectURL={ onSelectURL }
377
- onUploadError={ onUploadError }
378
- context={ context }
379
- clientId={ clientId }
380
- blockEditingMode={ blockEditingMode }
381
- parentLayoutType={ parentLayout?.type }
382
- />
383
- <MediaPlaceholder
384
- icon={ <BlockIcon icon={ icon } /> }
385
- onSelect={ onSelectImage }
386
- onSelectURL={ onSelectURL }
387
- onError={ onUploadError }
388
- placeholder={ placeholder }
389
- accept="image/*"
390
- allowedTypes={ ALLOWED_MEDIA_TYPES }
391
- value={ { id, src } }
392
- mediaPreview={ mediaPreview }
393
- disableMediaButtons={ temporaryURL || url }
394
- />
395
- </figure>
441
+ <>
442
+ <figure { ...blockProps }>
443
+ <Image
444
+ temporaryURL={ temporaryURL }
445
+ attributes={ attributes }
446
+ setAttributes={ setAttributes }
447
+ isSingleSelected={ isSingleSelected }
448
+ insertBlocksAfter={ insertBlocksAfter }
449
+ onReplace={ onReplace }
450
+ onSelectImage={ onSelectImage }
451
+ onSelectURL={ onSelectURL }
452
+ onUploadError={ onUploadError }
453
+ context={ context }
454
+ clientId={ clientId }
455
+ blockEditingMode={ blockEditingMode }
456
+ parentLayoutType={ parentLayout?.type }
457
+ maxContentWidth={ maxContentWidth }
458
+ />
459
+ <MediaPlaceholder
460
+ icon={ <BlockIcon icon={ icon } /> }
461
+ onSelect={ onSelectImage }
462
+ onSelectURL={ onSelectURL }
463
+ onError={ onUploadError }
464
+ placeholder={ placeholder }
465
+ accept="image/*"
466
+ allowedTypes={ ALLOWED_MEDIA_TYPES }
467
+ handleUpload={ ( files ) => files.length === 1 }
468
+ value={ { id, src } }
469
+ mediaPreview={ mediaPreview }
470
+ disableMediaButtons={ temporaryURL || url }
471
+ />
472
+ </figure>
473
+ {
474
+ // The listener cannot be placed as the first element as it will break the in-between inserter.
475
+ // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
476
+ isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver
477
+ }
478
+ </>
396
479
  );
397
480
  }
398
481