@wordpress/block-library 9.2.0 → 9.4.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 (623) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +20 -8
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/index.js +4 -0
  5. package/build/audio/index.js.map +1 -1
  6. package/build/audio/transforms.js +1 -1
  7. package/build/audio/transforms.js.map +1 -1
  8. package/build/block/edit.js +38 -24
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/index.js +5 -1
  11. package/build/block/index.js.map +1 -1
  12. package/build/button/edit.js +1 -1
  13. package/build/button/edit.js.map +1 -1
  14. package/build/buttons/index.js +26 -0
  15. package/build/buttons/index.js.map +1 -1
  16. package/build/categories/edit.js +20 -3
  17. package/build/categories/edit.js.map +1 -1
  18. package/build/categories/index.js +8 -0
  19. package/build/categories/index.js.map +1 -1
  20. package/build/columns/index.js +2 -2
  21. package/build/columns/index.js.map +1 -1
  22. package/build/cover/edit/inspector-controls.js +2 -1
  23. package/build/cover/edit/inspector-controls.js.map +1 -1
  24. package/build/embed/embed-preview.js +4 -4
  25. package/build/embed/embed-preview.js.map +1 -1
  26. package/build/embed/variations.js +39 -34
  27. package/build/embed/variations.js.map +1 -1
  28. package/build/file/edit.js +14 -6
  29. package/build/file/edit.js.map +1 -1
  30. package/build/file/index.js +4 -0
  31. package/build/file/index.js.map +1 -1
  32. package/build/file/transforms.js +2 -3
  33. package/build/file/transforms.js.map +1 -1
  34. package/build/footnotes/index.js +1 -1
  35. package/build/footnotes/index.js.map +1 -1
  36. package/build/form-input/edit.js +2 -0
  37. package/build/form-input/edit.js.map +1 -1
  38. package/build/gallery/deprecated.js +6 -54
  39. package/build/gallery/deprecated.js.map +1 -1
  40. package/build/gallery/edit.js +9 -8
  41. package/build/gallery/edit.js.map +1 -1
  42. package/build/gallery/index.js +12 -2
  43. package/build/gallery/index.js.map +1 -1
  44. package/build/gallery/save.js +0 -11
  45. package/build/gallery/save.js.map +1 -1
  46. package/build/gallery/shared.js +0 -27
  47. package/build/gallery/shared.js.map +1 -1
  48. package/build/gallery/transforms.js +29 -80
  49. package/build/gallery/transforms.js.map +1 -1
  50. package/build/group/deprecated.js +2 -5
  51. package/build/group/deprecated.js.map +1 -1
  52. package/build/group/index.js +1 -0
  53. package/build/group/index.js.map +1 -1
  54. package/build/group/placeholder.js +5 -0
  55. package/build/group/placeholder.js.map +1 -1
  56. package/build/heading/index.js +14 -1
  57. package/build/heading/index.js.map +1 -1
  58. package/build/image/edit.js +14 -22
  59. package/build/image/edit.js.map +1 -1
  60. package/build/image/image.js +54 -28
  61. package/build/image/image.js.map +1 -1
  62. package/build/image/index.js +7 -0
  63. package/build/image/index.js.map +1 -1
  64. package/build/image/transforms.js +1 -1
  65. package/build/image/transforms.js.map +1 -1
  66. package/build/image/view.js +65 -49
  67. package/build/image/view.js.map +1 -1
  68. package/build/latest-comments/index.js +9 -0
  69. package/build/latest-comments/index.js.map +1 -1
  70. package/build/list/edit.js +3 -3
  71. package/build/list/edit.js.map +1 -1
  72. package/build/list-item/edit.js +3 -3
  73. package/build/list-item/edit.js.map +1 -1
  74. package/build/list-item/hooks/index.js +0 -7
  75. package/build/list-item/hooks/index.js.map +1 -1
  76. package/build/list-item/hooks/use-merge.js +8 -1
  77. package/build/list-item/hooks/use-merge.js.map +1 -1
  78. package/build/list-item/index.js +11 -1
  79. package/build/list-item/index.js.map +1 -1
  80. package/build/loginout/index.js +3 -0
  81. package/build/loginout/index.js.map +1 -1
  82. package/build/media-text/edit.js +3 -2
  83. package/build/media-text/edit.js.map +1 -1
  84. package/build/media-text/index.js +12 -0
  85. package/build/media-text/index.js.map +1 -1
  86. package/build/navigation/edit/navigation-menu-delete-control.js +1 -0
  87. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  88. package/build/navigation/use-navigation-menu.js +5 -1
  89. package/build/navigation/use-navigation-menu.js.map +1 -1
  90. package/build/navigation-link/link-ui.js +13 -17
  91. package/build/navigation-link/link-ui.js.map +1 -1
  92. package/build/navigation-submenu/edit.js +1 -12
  93. package/build/navigation-submenu/edit.js.map +1 -1
  94. package/build/page-list/convert-to-links-modal.js +1 -1
  95. package/build/page-list/convert-to-links-modal.js.map +1 -1
  96. package/build/page-list/edit.js +2 -1
  97. package/build/page-list/edit.js.map +1 -1
  98. package/build/page-list-item/edit.js +4 -1
  99. package/build/page-list-item/edit.js.map +1 -1
  100. package/build/paragraph/index.js +6 -0
  101. package/build/paragraph/index.js.map +1 -1
  102. package/build/paragraph/transforms.js +6 -0
  103. package/build/paragraph/transforms.js.map +1 -1
  104. package/build/post-author/index.js +8 -0
  105. package/build/post-author/index.js.map +1 -1
  106. package/build/post-author-biography/index.js +3 -0
  107. package/build/post-author-biography/index.js.map +1 -1
  108. package/build/post-author-name/index.js +3 -0
  109. package/build/post-author-name/index.js.map +1 -1
  110. package/build/post-content/index.js +3 -0
  111. package/build/post-content/index.js.map +1 -1
  112. package/build/post-date/edit.js +3 -1
  113. package/build/post-date/edit.js.map +1 -1
  114. package/build/post-date/index.js +3 -0
  115. package/build/post-date/index.js.map +1 -1
  116. package/build/post-excerpt/edit.js +1 -0
  117. package/build/post-excerpt/edit.js.map +1 -1
  118. package/build/post-excerpt/index.js +3 -0
  119. package/build/post-excerpt/index.js.map +1 -1
  120. package/build/post-featured-image/index.js +3 -0
  121. package/build/post-featured-image/index.js.map +1 -1
  122. package/build/post-terms/index.js +3 -0
  123. package/build/post-terms/index.js.map +1 -1
  124. package/build/post-title/edit.js +5 -1
  125. package/build/post-title/edit.js.map +1 -1
  126. package/build/post-title/index.js +3 -0
  127. package/build/post-title/index.js.map +1 -1
  128. package/build/query/edit/inspector-controls/author-control.js +3 -1
  129. package/build/query/edit/inspector-controls/author-control.js.map +1 -1
  130. package/build/query/edit/inspector-controls/index.js +27 -8
  131. package/build/query/edit/inspector-controls/index.js.map +1 -1
  132. package/build/query/edit/inspector-controls/order-control.js +1 -0
  133. package/build/query/edit/inspector-controls/order-control.js.map +1 -1
  134. package/build/query/edit/inspector-controls/parent-control.js +2 -1
  135. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  136. package/build/query/edit/inspector-controls/sticky-control.js +1 -0
  137. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  138. package/build/query/edit/inspector-controls/taxonomy-controls.js +5 -2
  139. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  140. package/build/query/edit/query-content.js +11 -2
  141. package/build/query/edit/query-content.js.map +1 -1
  142. package/build/query/edit/query-placeholder.js +1 -14
  143. package/build/query/edit/query-placeholder.js.map +1 -1
  144. package/build/query/edit/query-toolbar.js +54 -61
  145. package/build/query/edit/query-toolbar.js.map +1 -1
  146. package/build/query/index.js +34 -0
  147. package/build/query/index.js.map +1 -1
  148. package/build/query/utils.js +5 -1
  149. package/build/query/utils.js.map +1 -1
  150. package/build/query/variations.js +9 -55
  151. package/build/query/variations.js.map +1 -1
  152. package/build/query-pagination-numbers/edit.js +1 -0
  153. package/build/query-pagination-numbers/edit.js.map +1 -1
  154. package/build/query-title/edit.js +11 -19
  155. package/build/query-title/edit.js.map +1 -1
  156. package/build/query-title/use-archive-label.js +95 -0
  157. package/build/query-title/use-archive-label.js.map +1 -0
  158. package/build/quote/index.js +15 -1
  159. package/build/quote/index.js.map +1 -1
  160. package/build/search/index.js +3 -0
  161. package/build/search/index.js.map +1 -1
  162. package/build/site-logo/edit.js +4 -1
  163. package/build/site-logo/edit.js.map +1 -1
  164. package/build/site-tagline/edit.js +5 -2
  165. package/build/site-tagline/edit.js.map +1 -1
  166. package/build/site-tagline/index.js +6 -1
  167. package/build/site-tagline/index.js.map +1 -1
  168. package/build/site-title/edit.js +4 -1
  169. package/build/site-title/edit.js.map +1 -1
  170. package/build/site-title/index.js +6 -1
  171. package/build/site-title/index.js.map +1 -1
  172. package/build/social-link/edit.js +27 -7
  173. package/build/social-link/edit.js.map +1 -1
  174. package/build/social-link/icons/soundcloud.js +1 -1
  175. package/build/social-link/icons/soundcloud.js.map +1 -1
  176. package/build/social-links/index.js +12 -0
  177. package/build/social-links/index.js.map +1 -1
  178. package/build/table/edit.js +8 -17
  179. package/build/table/edit.js.map +1 -1
  180. package/build/tag-cloud/edit.js +4 -1
  181. package/build/tag-cloud/edit.js.map +1 -1
  182. package/build/template-part/edit/index.js +5 -3
  183. package/build/template-part/edit/index.js.map +1 -1
  184. package/build/template-part/edit/inner-blocks.js +8 -3
  185. package/build/template-part/edit/inner-blocks.js.map +1 -1
  186. package/build/template-part/edit/placeholder.js +23 -3
  187. package/build/template-part/edit/placeholder.js.map +1 -1
  188. package/build/template-part/edit/title-modal.js +21 -9
  189. package/build/template-part/edit/title-modal.js.map +1 -1
  190. package/build/term-description/index.js +12 -0
  191. package/build/term-description/index.js.map +1 -1
  192. package/build/utils/hooks.js +17 -1
  193. package/build/utils/hooks.js.map +1 -1
  194. package/build/video/deprecated.js +4 -0
  195. package/build/video/deprecated.js.map +1 -1
  196. package/build/video/edit.js +17 -7
  197. package/build/video/edit.js.map +1 -1
  198. package/build/video/index.js +4 -0
  199. package/build/video/index.js.map +1 -1
  200. package/build/video/transforms.js +1 -1
  201. package/build/video/transforms.js.map +1 -1
  202. package/build-module/audio/edit.js +20 -8
  203. package/build-module/audio/edit.js.map +1 -1
  204. package/build-module/audio/index.js +4 -0
  205. package/build-module/audio/index.js.map +1 -1
  206. package/build-module/audio/transforms.js +1 -1
  207. package/build-module/audio/transforms.js.map +1 -1
  208. package/build-module/block/edit.js +38 -24
  209. package/build-module/block/edit.js.map +1 -1
  210. package/build-module/block/index.js +5 -1
  211. package/build-module/block/index.js.map +1 -1
  212. package/build-module/button/edit.js +1 -1
  213. package/build-module/button/edit.js.map +1 -1
  214. package/build-module/buttons/index.js +26 -0
  215. package/build-module/buttons/index.js.map +1 -1
  216. package/build-module/categories/edit.js +21 -4
  217. package/build-module/categories/edit.js.map +1 -1
  218. package/build-module/categories/index.js +8 -0
  219. package/build-module/categories/index.js.map +1 -1
  220. package/build-module/columns/index.js +2 -2
  221. package/build-module/columns/index.js.map +1 -1
  222. package/build-module/cover/edit/inspector-controls.js +2 -1
  223. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  224. package/build-module/embed/embed-preview.js +4 -4
  225. package/build-module/embed/embed-preview.js.map +1 -1
  226. package/build-module/embed/variations.js +40 -35
  227. package/build-module/embed/variations.js.map +1 -1
  228. package/build-module/file/edit.js +15 -7
  229. package/build-module/file/edit.js.map +1 -1
  230. package/build-module/file/index.js +4 -0
  231. package/build-module/file/index.js.map +1 -1
  232. package/build-module/file/transforms.js +2 -3
  233. package/build-module/file/transforms.js.map +1 -1
  234. package/build-module/footnotes/index.js +1 -1
  235. package/build-module/footnotes/index.js.map +1 -1
  236. package/build-module/form-input/edit.js +2 -0
  237. package/build-module/form-input/edit.js.map +1 -1
  238. package/build-module/gallery/deprecated.js +6 -54
  239. package/build-module/gallery/deprecated.js.map +1 -1
  240. package/build-module/gallery/edit.js +10 -9
  241. package/build-module/gallery/edit.js.map +1 -1
  242. package/build-module/gallery/index.js +11 -1
  243. package/build-module/gallery/index.js.map +1 -1
  244. package/build-module/gallery/save.js +0 -11
  245. package/build-module/gallery/save.js.map +1 -1
  246. package/build-module/gallery/shared.js +0 -25
  247. package/build-module/gallery/shared.js.map +1 -1
  248. package/build-module/gallery/transforms.js +29 -80
  249. package/build-module/gallery/transforms.js.map +1 -1
  250. package/build-module/group/deprecated.js +2 -5
  251. package/build-module/group/deprecated.js.map +1 -1
  252. package/build-module/group/index.js +1 -0
  253. package/build-module/group/index.js.map +1 -1
  254. package/build-module/group/placeholder.js +5 -0
  255. package/build-module/group/placeholder.js.map +1 -1
  256. package/build-module/heading/index.js +14 -1
  257. package/build-module/heading/index.js.map +1 -1
  258. package/build-module/image/edit.js +13 -21
  259. package/build-module/image/edit.js.map +1 -1
  260. package/build-module/image/image.js +50 -24
  261. package/build-module/image/image.js.map +1 -1
  262. package/build-module/image/index.js +7 -0
  263. package/build-module/image/index.js.map +1 -1
  264. package/build-module/image/transforms.js +1 -1
  265. package/build-module/image/transforms.js.map +1 -1
  266. package/build-module/image/view.js +65 -49
  267. package/build-module/image/view.js.map +1 -1
  268. package/build-module/latest-comments/index.js +9 -0
  269. package/build-module/latest-comments/index.js.map +1 -1
  270. package/build-module/list/edit.js +3 -3
  271. package/build-module/list/edit.js.map +1 -1
  272. package/build-module/list-item/edit.js +3 -3
  273. package/build-module/list-item/edit.js.map +1 -1
  274. package/build-module/list-item/hooks/index.js +0 -1
  275. package/build-module/list-item/hooks/index.js.map +1 -1
  276. package/build-module/list-item/hooks/use-merge.js +8 -1
  277. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  278. package/build-module/list-item/index.js +11 -1
  279. package/build-module/list-item/index.js.map +1 -1
  280. package/build-module/loginout/index.js +3 -0
  281. package/build-module/loginout/index.js.map +1 -1
  282. package/build-module/media-text/edit.js +3 -2
  283. package/build-module/media-text/edit.js.map +1 -1
  284. package/build-module/media-text/index.js +12 -0
  285. package/build-module/media-text/index.js.map +1 -1
  286. package/build-module/navigation/edit/navigation-menu-delete-control.js +1 -0
  287. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  288. package/build-module/navigation/use-navigation-menu.js +5 -1
  289. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  290. package/build-module/navigation-link/link-ui.js +13 -17
  291. package/build-module/navigation-link/link-ui.js.map +1 -1
  292. package/build-module/navigation-submenu/edit.js +1 -12
  293. package/build-module/navigation-submenu/edit.js.map +1 -1
  294. package/build-module/page-list/convert-to-links-modal.js +1 -1
  295. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  296. package/build-module/page-list/edit.js +2 -1
  297. package/build-module/page-list/edit.js.map +1 -1
  298. package/build-module/page-list-item/edit.js +4 -1
  299. package/build-module/page-list-item/edit.js.map +1 -1
  300. package/build-module/paragraph/index.js +6 -0
  301. package/build-module/paragraph/index.js.map +1 -1
  302. package/build-module/paragraph/transforms.js +6 -0
  303. package/build-module/paragraph/transforms.js.map +1 -1
  304. package/build-module/post-author/index.js +8 -0
  305. package/build-module/post-author/index.js.map +1 -1
  306. package/build-module/post-author-biography/index.js +3 -0
  307. package/build-module/post-author-biography/index.js.map +1 -1
  308. package/build-module/post-author-name/index.js +3 -0
  309. package/build-module/post-author-name/index.js.map +1 -1
  310. package/build-module/post-content/index.js +3 -0
  311. package/build-module/post-content/index.js.map +1 -1
  312. package/build-module/post-date/edit.js +4 -2
  313. package/build-module/post-date/edit.js.map +1 -1
  314. package/build-module/post-date/index.js +3 -0
  315. package/build-module/post-date/index.js.map +1 -1
  316. package/build-module/post-excerpt/edit.js +1 -0
  317. package/build-module/post-excerpt/edit.js.map +1 -1
  318. package/build-module/post-excerpt/index.js +3 -0
  319. package/build-module/post-excerpt/index.js.map +1 -1
  320. package/build-module/post-featured-image/index.js +3 -0
  321. package/build-module/post-featured-image/index.js.map +1 -1
  322. package/build-module/post-terms/index.js +3 -0
  323. package/build-module/post-terms/index.js.map +1 -1
  324. package/build-module/post-title/edit.js +5 -1
  325. package/build-module/post-title/edit.js.map +1 -1
  326. package/build-module/post-title/index.js +3 -0
  327. package/build-module/post-title/index.js.map +1 -1
  328. package/build-module/query/edit/inspector-controls/author-control.js +3 -1
  329. package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
  330. package/build-module/query/edit/inspector-controls/index.js +28 -9
  331. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  332. package/build-module/query/edit/inspector-controls/order-control.js +1 -0
  333. package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
  334. package/build-module/query/edit/inspector-controls/parent-control.js +2 -1
  335. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  336. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
  337. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  338. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +6 -4
  339. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  340. package/build-module/query/edit/query-content.js +11 -2
  341. package/build-module/query/edit/query-content.js.map +1 -1
  342. package/build-module/query/edit/query-placeholder.js +1 -14
  343. package/build-module/query/edit/query-placeholder.js.map +1 -1
  344. package/build-module/query/edit/query-toolbar.js +55 -62
  345. package/build-module/query/edit/query-toolbar.js.map +1 -1
  346. package/build-module/query/index.js +34 -0
  347. package/build-module/query/index.js.map +1 -1
  348. package/build-module/query/utils.js +5 -1
  349. package/build-module/query/utils.js.map +1 -1
  350. package/build-module/query/variations.js +4 -50
  351. package/build-module/query/variations.js.map +1 -1
  352. package/build-module/query-pagination-numbers/edit.js +1 -0
  353. package/build-module/query-pagination-numbers/edit.js.map +1 -1
  354. package/build-module/query-title/edit.js +12 -20
  355. package/build-module/query-title/edit.js.map +1 -1
  356. package/build-module/query-title/use-archive-label.js +88 -0
  357. package/build-module/query-title/use-archive-label.js.map +1 -0
  358. package/build-module/quote/index.js +15 -1
  359. package/build-module/quote/index.js.map +1 -1
  360. package/build-module/search/index.js +3 -0
  361. package/build-module/search/index.js.map +1 -1
  362. package/build-module/site-logo/edit.js +4 -1
  363. package/build-module/site-logo/edit.js.map +1 -1
  364. package/build-module/site-tagline/edit.js +5 -2
  365. package/build-module/site-tagline/edit.js.map +1 -1
  366. package/build-module/site-tagline/index.js +6 -1
  367. package/build-module/site-tagline/index.js.map +1 -1
  368. package/build-module/site-title/edit.js +4 -1
  369. package/build-module/site-title/edit.js.map +1 -1
  370. package/build-module/site-title/index.js +6 -1
  371. package/build-module/site-title/index.js.map +1 -1
  372. package/build-module/social-link/edit.js +28 -8
  373. package/build-module/social-link/edit.js.map +1 -1
  374. package/build-module/social-link/icons/soundcloud.js +1 -1
  375. package/build-module/social-link/icons/soundcloud.js.map +1 -1
  376. package/build-module/social-links/index.js +12 -0
  377. package/build-module/social-links/index.js.map +1 -1
  378. package/build-module/table/edit.js +9 -18
  379. package/build-module/table/edit.js.map +1 -1
  380. package/build-module/tag-cloud/edit.js +4 -1
  381. package/build-module/tag-cloud/edit.js.map +1 -1
  382. package/build-module/template-part/edit/index.js +5 -3
  383. package/build-module/template-part/edit/index.js.map +1 -1
  384. package/build-module/template-part/edit/inner-blocks.js +8 -3
  385. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  386. package/build-module/template-part/edit/placeholder.js +23 -3
  387. package/build-module/template-part/edit/placeholder.js.map +1 -1
  388. package/build-module/template-part/edit/title-modal.js +21 -9
  389. package/build-module/template-part/edit/title-modal.js.map +1 -1
  390. package/build-module/term-description/index.js +12 -0
  391. package/build-module/term-description/index.js.map +1 -1
  392. package/build-module/utils/hooks.js +16 -1
  393. package/build-module/utils/hooks.js.map +1 -1
  394. package/build-module/video/deprecated.js +4 -0
  395. package/build-module/video/deprecated.js.map +1 -1
  396. package/build-module/video/edit.js +18 -8
  397. package/build-module/video/edit.js.map +1 -1
  398. package/build-module/video/index.js +4 -0
  399. package/build-module/video/index.js.map +1 -1
  400. package/build-module/video/transforms.js +1 -1
  401. package/build-module/video/transforms.js.map +1 -1
  402. package/build-style/categories/editor-rtl.css +4 -0
  403. package/build-style/categories/editor.css +4 -0
  404. package/build-style/categories/style-rtl.css +4 -0
  405. package/build-style/categories/style.css +4 -0
  406. package/build-style/editor-rtl.css +16 -12
  407. package/build-style/editor.css +16 -12
  408. package/build-style/image/editor-rtl.css +8 -4
  409. package/build-style/image/editor.css +8 -4
  410. package/build-style/image/style-rtl.css +19 -0
  411. package/build-style/image/style.css +19 -0
  412. package/build-style/list/style-rtl.css +1 -1
  413. package/build-style/list/style.css +1 -1
  414. package/build-style/navigation/style-rtl.css +1 -4
  415. package/build-style/navigation/style.css +1 -4
  416. package/build-style/post-comments-form/style-rtl.css +12 -11
  417. package/build-style/post-comments-form/style.css +12 -11
  418. package/build-style/query/editor-rtl.css +3 -7
  419. package/build-style/query/editor.css +3 -7
  420. package/build-style/search/editor-rtl.css +1 -1
  421. package/build-style/search/editor.css +1 -1
  422. package/build-style/social-links/style-rtl.css +93 -93
  423. package/build-style/social-links/style.css +93 -93
  424. package/build-style/style-rtl.css +131 -109
  425. package/build-style/style.css +131 -109
  426. package/build-style/term-description/style-rtl.css +1 -0
  427. package/build-style/term-description/style.css +1 -0
  428. package/package.json +35 -35
  429. package/src/audio/block.json +4 -0
  430. package/src/audio/edit.js +19 -7
  431. package/src/audio/transforms.js +1 -1
  432. package/src/block/block.json +5 -1
  433. package/src/block/edit.js +58 -28
  434. package/src/block/test/edit.native.js +6 -2
  435. package/src/button/edit.js +1 -1
  436. package/src/button/index.php +14 -1
  437. package/src/buttons/block.json +20 -0
  438. package/src/buttons/index.js +6 -0
  439. package/src/categories/block.json +8 -0
  440. package/src/categories/edit.js +32 -4
  441. package/src/categories/editor.scss +4 -0
  442. package/src/categories/index.php +4 -1
  443. package/src/categories/style.scss +4 -0
  444. package/src/columns/index.js +1 -1
  445. package/src/cover/edit/inspector-controls.js +1 -0
  446. package/src/embed/embed-preview.js +4 -6
  447. package/src/embed/test/__snapshots__/index.native.js.snap +8 -8
  448. package/src/embed/test/index.js +1 -1
  449. package/src/embed/test/index.native.js +24 -23
  450. package/src/embed/variations.js +43 -35
  451. package/src/file/block.json +4 -0
  452. package/src/file/edit.js +19 -6
  453. package/src/file/transforms.js +1 -2
  454. package/src/footnotes/index.js +1 -2
  455. package/src/form-input/edit.js +2 -0
  456. package/src/gallery/block.json +10 -0
  457. package/src/gallery/deprecated.js +6 -55
  458. package/src/gallery/edit.js +13 -10
  459. package/src/gallery/gallery-styles.native.scss +0 -2
  460. package/src/gallery/index.js +1 -1
  461. package/src/gallery/save.js +0 -10
  462. package/src/gallery/shared.js +0 -28
  463. package/src/gallery/transforms.js +56 -99
  464. package/src/group/block.json +1 -0
  465. package/src/group/deprecated.js +3 -7
  466. package/src/group/placeholder.js +7 -0
  467. package/src/heading/block.json +12 -0
  468. package/src/heading/index.js +1 -0
  469. package/src/image/block.json +7 -0
  470. package/src/image/edit.js +11 -20
  471. package/src/image/editor.scss +6 -1
  472. package/src/image/image.js +91 -49
  473. package/src/image/index.php +58 -20
  474. package/src/image/style.scss +22 -0
  475. package/src/image/test/edit.native.js +1 -0
  476. package/src/image/transforms.js +1 -1
  477. package/src/image/view.js +69 -49
  478. package/src/latest-comments/block.json +9 -0
  479. package/src/list/edit.js +3 -3
  480. package/src/list/style.scss +1 -1
  481. package/src/list-item/block.json +11 -1
  482. package/src/list-item/edit.js +3 -3
  483. package/src/list-item/hooks/index.js +0 -1
  484. package/src/list-item/hooks/use-merge.js +19 -5
  485. package/src/loginout/block.json +3 -0
  486. package/src/media-text/block.json +12 -0
  487. package/src/media-text/edit.js +3 -2
  488. package/src/navigation/edit/navigation-menu-delete-control.js +1 -0
  489. package/src/navigation/index.php +1 -1
  490. package/src/navigation/style.scss +4 -9
  491. package/src/navigation/test/use-navigation-menu.js +54 -15
  492. package/src/navigation/use-navigation-menu.js +5 -1
  493. package/src/navigation-link/link-ui.js +8 -14
  494. package/src/navigation-submenu/edit.js +2 -14
  495. package/src/page-list/convert-to-links-modal.js +1 -1
  496. package/src/page-list/edit.js +2 -1
  497. package/src/page-list-item/edit.js +4 -4
  498. package/src/paragraph/block.json +6 -0
  499. package/src/post-author/index.js +8 -0
  500. package/src/post-author-biography/block.json +3 -0
  501. package/src/post-author-name/block.json +3 -0
  502. package/src/post-comments-form/style.scss +16 -13
  503. package/src/post-content/block.json +3 -0
  504. package/src/post-date/block.json +3 -0
  505. package/src/post-date/edit.js +5 -1
  506. package/src/post-date/index.php +8 -2
  507. package/src/post-excerpt/block.json +3 -0
  508. package/src/post-excerpt/edit.js +1 -0
  509. package/src/post-featured-image/block.json +3 -0
  510. package/src/post-terms/block.json +3 -0
  511. package/src/post-title/block.json +3 -0
  512. package/src/post-title/edit.js +5 -5
  513. package/src/query/edit/inspector-controls/author-control.js +2 -0
  514. package/src/query/edit/inspector-controls/index.js +44 -16
  515. package/src/query/edit/inspector-controls/order-control.js +1 -0
  516. package/src/query/edit/inspector-controls/parent-control.js +1 -0
  517. package/src/query/edit/inspector-controls/sticky-control.js +1 -0
  518. package/src/query/edit/inspector-controls/taxonomy-controls.js +8 -3
  519. package/src/query/edit/query-content.js +17 -3
  520. package/src/query/edit/query-placeholder.js +1 -21
  521. package/src/query/edit/query-toolbar.js +60 -72
  522. package/src/query/editor.scss +4 -9
  523. package/src/query/index.js +40 -0
  524. package/src/query/utils.js +4 -0
  525. package/src/query/variations.js +4 -46
  526. package/src/query-pagination-numbers/edit.js +1 -0
  527. package/src/query-title/edit.js +10 -17
  528. package/src/query-title/use-archive-label.js +99 -0
  529. package/src/quote/block.json +15 -1
  530. package/src/search/block.json +3 -0
  531. package/src/search/editor.scss +1 -1
  532. package/src/site-logo/edit.js +4 -1
  533. package/src/site-tagline/block.json +6 -1
  534. package/src/site-tagline/edit.js +5 -2
  535. package/src/site-title/edit.js +4 -1
  536. package/src/site-title/index.js +6 -1
  537. package/src/social-link/edit.js +29 -3
  538. package/src/social-link/icons/soundcloud.js +1 -1
  539. package/src/social-link/socials-with-bg.scss +1 -1
  540. package/src/social-link/socials-without-bg.scss +1 -1
  541. package/src/social-links/block.json +12 -0
  542. package/src/social-links/style.scss +2 -2
  543. package/src/table/edit.js +11 -24
  544. package/src/tag-cloud/edit.js +7 -1
  545. package/src/template-part/edit/index.js +5 -3
  546. package/src/template-part/edit/inner-blocks.js +8 -5
  547. package/src/template-part/edit/placeholder.js +31 -6
  548. package/src/template-part/edit/title-modal.js +19 -5
  549. package/src/term-description/block.json +12 -0
  550. package/src/term-description/style.scss +2 -0
  551. package/src/utils/hooks.js +19 -2
  552. package/src/video/block.json +4 -0
  553. package/src/video/edit.js +23 -8
  554. package/src/video/transforms.js +1 -1
  555. package/tsconfig.tsbuildinfo +1 -1
  556. package/build/gallery/edit-wrapper.js +0 -37
  557. package/build/gallery/edit-wrapper.js.map +0 -1
  558. package/build/gallery/v1/constants.js +0 -10
  559. package/build/gallery/v1/constants.js.map +0 -1
  560. package/build/gallery/v1/edit.js +0 -399
  561. package/build/gallery/v1/edit.js.map +0 -1
  562. package/build/gallery/v1/gallery-button.native.js +0 -55
  563. package/build/gallery/v1/gallery-button.native.js.map +0 -1
  564. package/build/gallery/v1/gallery-image.js +0 -285
  565. package/build/gallery/v1/gallery-image.js.map +0 -1
  566. package/build/gallery/v1/gallery-image.native.js +0 -297
  567. package/build/gallery/v1/gallery-image.native.js.map +0 -1
  568. package/build/gallery/v1/gallery.js +0 -112
  569. package/build/gallery/v1/gallery.js.map +0 -1
  570. package/build/gallery/v1/gallery.native.js +0 -139
  571. package/build/gallery/v1/gallery.native.js.map +0 -1
  572. package/build/gallery/v1/save.js +0 -81
  573. package/build/gallery/v1/save.js.map +0 -1
  574. package/build/gallery/v1/shared.js +0 -17
  575. package/build/gallery/v1/shared.js.map +0 -1
  576. package/build/gallery/v1/tiles.native.js +0 -83
  577. package/build/gallery/v1/tiles.native.js.map +0 -1
  578. package/build/list-item/hooks/use-split.js +0 -39
  579. package/build/list-item/hooks/use-split.js.map +0 -1
  580. package/build/utils/constants.js +0 -15
  581. package/build/utils/constants.js.map +0 -1
  582. package/build-module/gallery/edit-wrapper.js +0 -31
  583. package/build-module/gallery/edit-wrapper.js.map +0 -1
  584. package/build-module/gallery/v1/constants.js +0 -4
  585. package/build-module/gallery/v1/constants.js.map +0 -1
  586. package/build-module/gallery/v1/edit.js +0 -393
  587. package/build-module/gallery/v1/edit.js.map +0 -1
  588. package/build-module/gallery/v1/gallery-button.native.js +0 -46
  589. package/build-module/gallery/v1/gallery-button.native.js.map +0 -1
  590. package/build-module/gallery/v1/gallery-image.js +0 -279
  591. package/build-module/gallery/v1/gallery-image.js.map +0 -1
  592. package/build-module/gallery/v1/gallery-image.native.js +0 -291
  593. package/build-module/gallery/v1/gallery-image.native.js.map +0 -1
  594. package/build-module/gallery/v1/gallery.js +0 -104
  595. package/build-module/gallery/v1/gallery.js.map +0 -1
  596. package/build-module/gallery/v1/gallery.native.js +0 -131
  597. package/build-module/gallery/v1/gallery.native.js.map +0 -1
  598. package/build-module/gallery/v1/save.js +0 -74
  599. package/build-module/gallery/v1/save.js.map +0 -1
  600. package/build-module/gallery/v1/shared.js +0 -10
  601. package/build-module/gallery/v1/shared.js.map +0 -1
  602. package/build-module/gallery/v1/tiles.native.js +0 -75
  603. package/build-module/gallery/v1/tiles.native.js.map +0 -1
  604. package/build-module/list-item/hooks/use-split.js +0 -32
  605. package/build-module/list-item/hooks/use-split.js.map +0 -1
  606. package/build-module/utils/constants.js +0 -9
  607. package/build-module/utils/constants.js.map +0 -1
  608. package/src/gallery/edit-wrapper.js +0 -27
  609. package/src/gallery/v1/constants.js +0 -3
  610. package/src/gallery/v1/edit.js +0 -450
  611. package/src/gallery/v1/gallery-button.native.js +0 -47
  612. package/src/gallery/v1/gallery-image-style.native.scss +0 -109
  613. package/src/gallery/v1/gallery-image.js +0 -293
  614. package/src/gallery/v1/gallery-image.native.js +0 -348
  615. package/src/gallery/v1/gallery-styles.native.scss +0 -8
  616. package/src/gallery/v1/gallery.js +0 -125
  617. package/src/gallery/v1/gallery.native.js +0 -162
  618. package/src/gallery/v1/save.js +0 -98
  619. package/src/gallery/v1/shared.js +0 -19
  620. package/src/gallery/v1/tiles-styles.native.scss +0 -11
  621. package/src/gallery/v1/tiles.native.js +0 -79
  622. package/src/list-item/hooks/use-split.js +0 -33
  623. package/src/utils/constants.js +0 -8
@@ -22,7 +22,6 @@ import {
22
22
  LINK_DESTINATION_MEDIA,
23
23
  LINK_DESTINATION_NONE,
24
24
  } from './constants';
25
- import { isGalleryV2Enabled } from './shared';
26
25
 
27
26
  const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
28
27
  const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
@@ -408,11 +407,7 @@ const v6 = {
408
407
  );
409
408
  },
410
409
  migrate( attributes ) {
411
- if ( isGalleryV2Enabled() ) {
412
- return runV2Migration( attributes );
413
- }
414
-
415
- return attributes;
410
+ return runV2Migration( attributes );
416
411
  },
417
412
  };
418
413
  const v5 = {
@@ -498,23 +493,7 @@ const v5 = {
498
493
  return ! linkTo || linkTo === 'attachment' || linkTo === 'media';
499
494
  },
500
495
  migrate( attributes ) {
501
- if ( isGalleryV2Enabled() ) {
502
- return runV2Migration( attributes );
503
- }
504
-
505
- let linkTo = attributes.linkTo;
506
-
507
- if ( ! attributes.linkTo ) {
508
- linkTo = 'none';
509
- } else if ( attributes.linkTo === 'attachment' ) {
510
- linkTo = 'post';
511
- } else if ( attributes.linkTo === 'media' ) {
512
- linkTo = 'file';
513
- }
514
- return {
515
- ...attributes,
516
- linkTo,
517
- };
496
+ return runV2Migration( attributes );
518
497
  },
519
498
  save( { attributes } ) {
520
499
  const {
@@ -661,17 +640,7 @@ const v4 = {
661
640
  return ids && ids.some( ( id ) => typeof id === 'string' );
662
641
  },
663
642
  migrate( attributes ) {
664
- if ( isGalleryV2Enabled() ) {
665
- return runV2Migration( attributes );
666
- }
667
-
668
- return {
669
- ...attributes,
670
- ids: ( attributes.ids ?? [] ).map( ( id ) => {
671
- const parsedId = parseInt( id, 10 );
672
- return Number.isInteger( parsedId ) ? parsedId : null;
673
- } ),
674
- };
643
+ return runV2Migration( attributes );
675
644
  },
676
645
  save( { attributes } ) {
677
646
  const {
@@ -867,10 +836,7 @@ const v3 = {
867
836
  );
868
837
  },
869
838
  migrate( attributes ) {
870
- if ( isGalleryV2Enabled() ) {
871
- return runV2Migration( attributes );
872
- }
873
- return attributes;
839
+ return runV2Migration( attributes );
874
840
  },
875
841
  };
876
842
  const v2 = {
@@ -936,18 +902,7 @@ const v2 = {
936
902
  );
937
903
  },
938
904
  migrate( attributes ) {
939
- if ( isGalleryV2Enabled() ) {
940
- return runV2Migration( attributes );
941
- }
942
- return {
943
- ...attributes,
944
- ids: ( attributes.images ?? [] ).map( ( { id } ) => {
945
- if ( ! id ) {
946
- return null;
947
- }
948
- return parseInt( id, 10 );
949
- } ),
950
- };
905
+ return runV2Migration( attributes );
951
906
  },
952
907
  supports: {
953
908
  align: true,
@@ -1100,11 +1055,7 @@ const v1 = {
1100
1055
  );
1101
1056
  },
1102
1057
  migrate( attributes ) {
1103
- if ( isGalleryV2Enabled() ) {
1104
- return runV2Migration( attributes );
1105
- }
1106
-
1107
- return attributes;
1058
+ return runV2Migration( attributes );
1108
1059
  },
1109
1060
  };
1110
1061
 
@@ -14,6 +14,7 @@ import {
14
14
  ToggleControl,
15
15
  RangeControl,
16
16
  Spinner,
17
+ withNotices,
17
18
  } from '@wordpress/components';
18
19
  import {
19
20
  store as blockEditorStore,
@@ -237,7 +238,7 @@ function GalleryEdit( props ) {
237
238
  return (
238
239
  ALLOWED_MEDIA_TYPES.some(
239
240
  ( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0
240
- ) || file.url?.indexOf( 'blob:' ) === 0
241
+ ) || file.blob
241
242
  );
242
243
  }
243
244
 
@@ -249,9 +250,9 @@ function GalleryEdit( props ) {
249
250
  const imageArray = newFileUploads
250
251
  ? Array.from( selectedImages ).map( ( file ) => {
251
252
  if ( ! file.url ) {
252
- return pickRelevantMediaFiles( {
253
- url: createBlobURL( file ),
254
- } );
253
+ return {
254
+ blob: createBlobURL( file ),
255
+ };
255
256
  }
256
257
 
257
258
  return file;
@@ -271,9 +272,9 @@ function GalleryEdit( props ) {
271
272
  .filter( ( file ) => file.url || isValidFileType( file ) )
272
273
  .map( ( file ) => {
273
274
  if ( ! file.url ) {
274
- return pickRelevantMediaFiles( {
275
- url: createBlobURL( file ),
276
- } );
275
+ return {
276
+ blob: file.blob || createBlobURL( file ),
277
+ };
277
278
  }
278
279
 
279
280
  return file;
@@ -307,6 +308,7 @@ function GalleryEdit( props ) {
307
308
  const newBlocks = newImageList.map( ( image ) => {
308
309
  return createBlock( 'core/image', {
309
310
  id: image.id,
311
+ blob: image.blob,
310
312
  url: image.url,
311
313
  caption: image.caption,
312
314
  alt: image.alt,
@@ -632,6 +634,7 @@ function GalleryEdit( props ) {
632
634
  </>
633
635
  );
634
636
  }
635
- export default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(
636
- GalleryEdit
637
- );
637
+ export default compose( [
638
+ withNotices,
639
+ withViewportMatch( { isNarrow: '< small' } ),
640
+ ] )( GalleryEdit );
@@ -1,5 +1,3 @@
1
- @import "./v1/gallery-styles.native.scss";
2
-
3
1
  .galleryAppender {
4
2
  padding-top: $grid-unit-20;
5
3
  }
@@ -8,7 +8,7 @@ import { gallery as icon } from '@wordpress/icons';
8
8
  */
9
9
  import initBlock from '../utils/init-block';
10
10
  import deprecated from './deprecated';
11
- import edit from './edit-wrapper';
11
+ import edit from './edit';
12
12
  import metadata from './block.json';
13
13
  import save from './save';
14
14
  import transforms from './transforms';
@@ -13,17 +13,7 @@ import {
13
13
  __experimentalGetElementClassName,
14
14
  } from '@wordpress/block-editor';
15
15
 
16
- /**
17
- * Internal dependencies
18
- */
19
- import saveWithoutInnerBlocks from './v1/save';
20
- import { isGalleryV2Enabled } from './shared';
21
-
22
16
  export default function saveWithInnerBlocks( { attributes } ) {
23
- if ( ! isGalleryV2Enabled() ) {
24
- return saveWithoutInnerBlocks( { attributes } );
25
- }
26
-
27
17
  const { caption, columns, imageCrop } = attributes;
28
18
 
29
19
  const className = clsx( 'has-nested-images', {
@@ -1,8 +1,3 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { Platform } from '@wordpress/element';
5
-
6
1
  export function defaultColumnsNumber( imageCount ) {
7
2
  return imageCount ? Math.min( 3, imageCount ) : 3;
8
3
  }
@@ -27,26 +22,3 @@ export const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {
27
22
  }
28
23
  return imageProps;
29
24
  };
30
-
31
- function getGalleryBlockV2Enabled() {
32
- // We want to fail early here, at least during beta testing phase, to ensure
33
- // there aren't instances where undefined values cause false negatives.
34
- if ( ! window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean' ) {
35
- throw 'window.wp.galleryBlockV2Enabled is not defined';
36
- }
37
- return window.wp.galleryBlockV2Enabled;
38
- }
39
-
40
- /**
41
- * The new gallery block format is not compatible with the use_BalanceTags option
42
- * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The
43
- * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method
44
- * can be removed when minimum supported WP version >=5.9.
45
- */
46
- export function isGalleryV2Enabled() {
47
- if ( Platform.isNative ) {
48
- return getGalleryBlockV2Enabled();
49
- }
50
-
51
- return true;
52
- }
@@ -13,7 +13,6 @@ import {
13
13
  LINK_DESTINATION_NONE,
14
14
  LINK_DESTINATION_MEDIA,
15
15
  } from './constants';
16
- import { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';
17
16
 
18
17
  const parseShortcodeIds = ( ids ) => {
19
18
  if ( ! ids ) {
@@ -39,7 +38,6 @@ const parseShortcodeIds = ( ids ) => {
39
38
  */
40
39
  function updateThirdPartyTransformToGallery( block ) {
41
40
  if (
42
- isGalleryV2Enabled() &&
43
41
  block.name === 'core/gallery' &&
44
42
  block.attributes?.images.length > 0
45
43
  ) {
@@ -137,37 +135,21 @@ const transforms = {
137
135
 
138
136
  const validImages = attributes.filter( ( { url } ) => url );
139
137
 
140
- if ( isGalleryV2Enabled() ) {
141
- const innerBlocks = validImages.map( ( image ) => {
142
- // Gallery images can't currently be resized so make sure height and width are undefined.
143
- image.width = undefined;
144
- image.height = undefined;
145
- return createBlock( 'core/image', image );
146
- } );
147
-
148
- return createBlock(
149
- 'core/gallery',
150
- {
151
- align,
152
- sizeSlug,
153
- },
154
- innerBlocks
155
- );
156
- }
157
-
158
- return createBlock( 'core/gallery', {
159
- images: validImages.map(
160
- ( { id, url, alt, caption } ) => ( {
161
- id: id.toString(),
162
- url,
163
- alt,
164
- caption,
165
- } )
166
- ),
167
- ids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),
168
- align,
169
- sizeSlug,
138
+ const innerBlocks = validImages.map( ( image ) => {
139
+ // Gallery images can't currently be resized so make sure height and width are undefined.
140
+ image.width = undefined;
141
+ image.height = undefined;
142
+ return createBlock( 'core/image', image );
170
143
  } );
144
+
145
+ return createBlock(
146
+ 'core/gallery',
147
+ {
148
+ align,
149
+ sizeSlug,
150
+ },
151
+ innerBlocks
152
+ );
171
153
  },
172
154
  },
173
155
  {
@@ -220,23 +202,13 @@ const transforms = {
220
202
  );
221
203
  },
222
204
  transform( files ) {
223
- if ( isGalleryV2Enabled() ) {
224
- const innerBlocks = files.map( ( file ) =>
225
- createBlock( 'core/image', {
226
- url: createBlobURL( file ),
227
- } )
228
- );
205
+ const innerBlocks = files.map( ( file ) =>
206
+ createBlock( 'core/image', {
207
+ blob: createBlobURL( file ),
208
+ } )
209
+ );
229
210
 
230
- return createBlock( 'core/gallery', {}, innerBlocks );
231
- }
232
- const block = createBlock( 'core/gallery', {
233
- images: files.map( ( file ) =>
234
- pickRelevantMediaFiles( {
235
- url: createBlobURL( file ),
236
- } )
237
- ),
238
- } );
239
- return block;
211
+ return createBlock( 'core/gallery', {}, innerBlocks );
240
212
  },
241
213
  },
242
214
  ],
@@ -244,57 +216,42 @@ const transforms = {
244
216
  {
245
217
  type: 'block',
246
218
  blocks: [ 'core/image' ],
247
- transform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {
248
- if ( isGalleryV2Enabled() ) {
249
- if ( innerBlocks.length > 0 ) {
250
- return innerBlocks.map(
251
- ( {
252
- attributes: {
253
- url,
254
- alt,
255
- caption,
256
- title,
257
- href,
258
- rel,
259
- linkClass,
260
- id,
261
- sizeSlug: imageSizeSlug,
262
- linkDestination,
263
- linkTarget,
264
- anchor,
265
- className,
266
- },
267
- } ) =>
268
- createBlock( 'core/image', {
269
- align,
270
- url,
271
- alt,
272
- caption,
273
- title,
274
- href,
275
- rel,
276
- linkClass,
277
- id,
278
- sizeSlug: imageSizeSlug,
279
- linkDestination,
280
- linkTarget,
281
- anchor,
282
- className,
283
- } )
284
- );
285
- }
286
- return createBlock( 'core/image', { align } );
287
- }
288
- if ( images.length > 0 ) {
289
- return images.map( ( { url, alt, caption }, index ) =>
290
- createBlock( 'core/image', {
291
- id: ids[ index ],
292
- url,
293
- alt,
294
- caption,
295
- align,
296
- sizeSlug,
297
- } )
219
+ transform: ( { align }, innerBlocks ) => {
220
+ if ( innerBlocks.length > 0 ) {
221
+ return innerBlocks.map(
222
+ ( {
223
+ attributes: {
224
+ url,
225
+ alt,
226
+ caption,
227
+ title,
228
+ href,
229
+ rel,
230
+ linkClass,
231
+ id,
232
+ sizeSlug: imageSizeSlug,
233
+ linkDestination,
234
+ linkTarget,
235
+ anchor,
236
+ className,
237
+ },
238
+ } ) =>
239
+ createBlock( 'core/image', {
240
+ align,
241
+ url,
242
+ alt,
243
+ caption,
244
+ title,
245
+ href,
246
+ rel,
247
+ linkClass,
248
+ id,
249
+ sizeSlug: imageSizeSlug,
250
+ linkDestination,
251
+ linkTarget,
252
+ anchor,
253
+ className,
254
+ } )
298
255
  );
299
256
  }
300
257
  return createBlock( 'core/image', { align } );
@@ -45,6 +45,7 @@
45
45
  "text": true
46
46
  }
47
47
  },
48
+ "shadow": true,
48
49
  "spacing": {
49
50
  "margin": [ "top", "bottom" ],
50
51
  "padding": true,
@@ -109,15 +109,11 @@ const deprecated = [
109
109
  );
110
110
  },
111
111
  isEligible: ( { layout } ) =>
112
- ! layout ||
113
- layout.inherit ||
114
- ( layout.contentSize && layout.type !== 'constrained' ),
112
+ layout?.inherit ||
113
+ ( layout?.contentSize && layout?.type !== 'constrained' ),
115
114
  migrate: ( attributes ) => {
116
115
  const { layout = null } = attributes;
117
- if ( ! layout ) {
118
- return attributes;
119
- }
120
- if ( layout.inherit || layout.contentSize ) {
116
+ if ( layout?.inherit || layout?.contentSize ) {
121
117
  return {
122
118
  ...attributes,
123
119
  layout: {
@@ -139,6 +139,13 @@ function GroupPlaceHolder( { name, onSelect } ) {
139
139
  const blockProps = useBlockProps( {
140
140
  className: 'wp-block-group__placeholder',
141
141
  } );
142
+
143
+ useEffect( () => {
144
+ if ( variations && variations.length === 1 ) {
145
+ onSelect( variations[ 0 ] );
146
+ }
147
+ }, [ onSelect, variations ] );
148
+
142
149
  return (
143
150
  <div { ...blockProps }>
144
151
  <Placeholder
@@ -30,6 +30,18 @@
30
30
  "anchor": true,
31
31
  "className": true,
32
32
  "splitting": true,
33
+ "__experimentalBorder": {
34
+ "color": true,
35
+ "radius": true,
36
+ "style": true,
37
+ "width": true,
38
+ "__experimentalDefaultControls": {
39
+ "color": true,
40
+ "radius": true,
41
+ "style": true,
42
+ "width": true
43
+ }
44
+ },
33
45
  "color": {
34
46
  "gradients": true,
35
47
  "link": true,
@@ -24,6 +24,7 @@ export const settings = {
24
24
  attributes: {
25
25
  content: __( 'Code is Poetry' ),
26
26
  level: 2,
27
+ textAlign: 'center',
27
28
  },
28
29
  },
29
30
  __experimentalLabel( attributes, { context } ) {
@@ -9,6 +9,10 @@
9
9
  "keywords": [ "img", "photo", "picture" ],
10
10
  "textdomain": "default",
11
11
  "attributes": {
12
+ "blob": {
13
+ "type": "string",
14
+ "__experimentalRole": "local"
15
+ },
12
16
  "url": {
13
17
  "type": "string",
14
18
  "source": "attribute",
@@ -102,6 +106,9 @@
102
106
  "filter": {
103
107
  "duotone": true
104
108
  },
109
+ "spacing": {
110
+ "margin": true
111
+ },
105
112
  "__experimentalBorder": {
106
113
  "color": true,
107
114
  "radius": true,
package/src/image/edit.js CHANGED
@@ -56,17 +56,6 @@ export const pickRelevantMediaFiles = ( image, size ) => {
56
56
  return imageProps;
57
57
  };
58
58
 
59
- /**
60
- * Is the URL a temporary blob URL? A blob URL is one that is used temporarily
61
- * while the image is being uploaded and will not have an id yet allocated.
62
- *
63
- * @param {number=} id The id of the image.
64
- * @param {string=} url The url of the image.
65
- *
66
- * @return {boolean} Is the URL a Blob URL
67
- */
68
- const isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );
69
-
70
59
  /**
71
60
  * Is the url for the image hosted externally. An externally hosted image has no
72
61
  * id and is not a blob url.
@@ -118,9 +107,7 @@ export function ImageEdit( {
118
107
  align,
119
108
  metadata,
120
109
  } = attributes;
121
- const [ temporaryURL, setTemporaryURL ] = useState( () => {
122
- return isTemporaryImage( id, url ) ? url : undefined;
123
- } );
110
+ const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
124
111
 
125
112
  const altRef = useRef();
126
113
  useEffect( () => {
@@ -157,8 +144,8 @@ export function ImageEdit( {
157
144
  src: undefined,
158
145
  id: undefined,
159
146
  url: undefined,
147
+ blob: undefined,
160
148
  } );
161
- setTemporaryURL( undefined );
162
149
  }
163
150
 
164
151
  function onSelectImage( media ) {
@@ -169,7 +156,9 @@ export function ImageEdit( {
169
156
  id: undefined,
170
157
  title: undefined,
171
158
  caption: undefined,
159
+ blob: undefined,
172
160
  } );
161
+ setTemporaryURL();
173
162
 
174
163
  return;
175
164
  }
@@ -179,8 +168,6 @@ export function ImageEdit( {
179
168
  return;
180
169
  }
181
170
 
182
- setTemporaryURL();
183
-
184
171
  const { imageDefaultSize } = getSettings();
185
172
 
186
173
  // Try to use the previous selected image size if its available
@@ -254,24 +241,28 @@ export function ImageEdit( {
254
241
  mediaAttributes.href = href;
255
242
 
256
243
  setAttributes( {
244
+ blob: undefined,
257
245
  ...mediaAttributes,
258
246
  ...additionalAttributes,
259
247
  linkDestination,
260
248
  } );
249
+ setTemporaryURL();
261
250
  }
262
251
 
263
252
  function onSelectURL( newURL ) {
264
253
  if ( newURL !== url ) {
265
254
  setAttributes( {
255
+ blob: undefined,
266
256
  url: newURL,
267
257
  id: undefined,
268
258
  sizeSlug: getSettings().imageDefaultSize,
269
259
  } );
260
+ setTemporaryURL();
270
261
  }
271
262
  }
272
263
 
273
264
  useUploadMediaFromBlobURL( {
274
- url,
265
+ url: temporaryURL,
275
266
  allowedTypes: ALLOWED_MEDIA_TYPES,
276
267
  onChange: onSelectImage,
277
268
  onError: onUploadError,
@@ -292,7 +283,7 @@ export function ImageEdit( {
292
283
  const shadowProps = getShadowClassesAndStyles( attributes );
293
284
 
294
285
  const classes = clsx( className, {
295
- 'is-transient': temporaryURL,
286
+ 'is-transient': !! temporaryURL,
296
287
  'is-resized': !! width || !! height,
297
288
  [ `size-${ sizeSlug }` ]: sizeSlug,
298
289
  'has-custom-border':
@@ -317,7 +308,7 @@ export function ImageEdit( {
317
308
  return {
318
309
  lockUrlControls:
319
310
  !! metadata?.bindings?.url &&
320
- ! blockBindingsSource?.canUserEditValue( {
311
+ ! blockBindingsSource?.canUserEditValue?.( {
321
312
  select,
322
313
  context,
323
314
  args: metadata?.bindings?.url?.args,
@@ -3,7 +3,7 @@
3
3
  .wp-block-image.wp-block-image {
4
4
 
5
5
  // Show Placeholder style on-select.
6
- &.is-selected .components-placeholder {
6
+ &.is-selected .block-editor-media-placeholder {
7
7
  // Block UI appearance.
8
8
  color: $gray-900;
9
9
  background-color: $white;
@@ -70,6 +70,11 @@ figure.wp-block-image:not(.wp-block) {
70
70
  }
71
71
  }
72
72
 
73
+ // Shown while image is being uploded but cannot be previewed.
74
+ .wp-block-image__placeholder {
75
+ aspect-ratio: 4 / 3;
76
+ }
77
+
73
78
  // This is necessary for the editor resize handles to accurately work on a non-floated, non-resized, small image.
74
79
  .wp-block-image .components-resizable-box__container {
75
80
  // Using "display: table" because: